CN114969020A - 一种数据处理方法、装置、设备及介质 - Google Patents

一种数据处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN114969020A
CN114969020A CN202110202921.6A CN202110202921A CN114969020A CN 114969020 A CN114969020 A CN 114969020A CN 202110202921 A CN202110202921 A CN 202110202921A CN 114969020 A CN114969020 A CN 114969020A
Authority
CN
China
Prior art keywords
data
database
key
key value
relational database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110202921.6A
Other languages
English (en)
Inventor
赵鹏昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110202921.6A priority Critical patent/CN114969020A/zh
Publication of CN114969020A publication Critical patent/CN114969020A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例涉及一种数据处理方法、装置、设备及介质,其中该方法包括:接收数据访问请求;数据访问请求中携带待访问数据的访问字段;当访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询第一主键对应的数据;其中,混合存储系统包括:关系型数据库、键值数据库和倒排索引数据库;当访问字段为关键词时,在倒排索引数据库中查询关键词对应的第二主键,并在键值数据库和/或关系型数据库中查询第二主键对应的数据;最后基于查询到的数据响应数据访问请求。在上述技术方案中,能够根据主键快速地查询得到数据,有效提升查询效率。

Description

一种数据处理方法、装置、设备及介质
技术领域
本公开涉及数据检索技术领域,尤其涉及一种数据处理方法、装置、设备及介质。
背景技术
在对关系型数据库进行数据查询的业务中,经常会出现根据非索引字段查询数据的场景。当以非索引字段来对数据进行查询时,数据库需要进行全表扫描才能得到查询结果,全表扫描非常耗时,查询性能非常低效。随着用户数据量和产品数据量规模的增大,一次全表扫描的查询甚至可能会导致系统崩溃等灾难性后果。目前,虽然通过在数据库中建立相关索引的方式,能够在一定程序上提高查询效率,但是提高的效果并不理想,比如当面对用户查询条件非常灵活的各类即席查询时,关系型数据库依然表现的力不从心。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据处理方法、装置、设备及介质。
第一方面,本公开实施例提供了一种数据处理方法,包括:接收数据访问请求;其中,所述数据访问请求中携带待访问数据的访问字段;当所述访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据;其中,所述混合存储系统包括:所述关系型数据库、所述键值数据库和倒排索引数据库;当所述访问字段为关键词时,在所述倒排索引数据库中查询所述关键词对应的第二主键,并在所述键值数据库和/或所述关系型数据库中查询所述第二主键对应的数据;基于查询到的数据响应所述数据访问请求。
可选的,所述键值数据库和所述倒排索引数据库为所述关系型数据库的从库;其中,所述键值数据库用于将所述关系型数据库中的业务数据存储为键值对,所述键值对中的主键是所述业务数据中的字段,且用于标识所述业务数据,所述键值对中的键值是通过所述主键标识的所述业务数据;所述倒排索引数据库用于缓存倒排索引,且所述倒排索引用于记录具有编号的文档中包含的所述关系型数据库中业务数据的词条。
可选的,所述在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据,包括:在所述键值数据库中查询与所述第一主键对应的键值;如果所述键值数据库中存在与所述第一主键对应的键值,将所述第一主键对应的键值确定为第一数据;如果所述键值数据库中不存在与所述第一主键对应的键值,基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据。
可选的,在所述基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据之后,所述方法还包括:将所述第二数据写入所述键值数据库,并对所述第一数据和所述第二数据进行打包;所述基于查询到的数据响应所述数据访问请求,包括:将所述第一数据和所述第二数据的打包结果作为所述数据访问请求的响应结果。
可选的,在所述基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据之后,所述方法还包括:将所述第二数据作为所述第一主键的键值,缓存至所述键值数据库中。
可选的,所述方法还包括:根据预设的资源配置参数,确定将所述倒排索引数据库中的文档的编号,作为所述倒排索引数据库的返回结果;所述在所述倒排索引数据库中查询所述关键词对应的第二主键,包括:在所述倒排索引数据库的文档中查找包含所述关键词的目标文档,将所述目标文档的编号确定为返回给所述键值数据库的第二主键。
可选的,所述方法还包括:接收数据变更请求;其中,所述数据变更请求是增加、删除或修改数据的请求;根据所述数据变更请求对所述关系型数据库中的数据进行变更,并同步调用所述键值数据库,将所述关系型数据中变更数据对应的键值对缓存到所述键值数据库。
可选的,所述方法还包括:当所述关系型数据库完成数据变更时,生成变更日志;其中,所述变更日志用于记录所述关系型数据库中的所述变更数据;通过消费所述变更日志的方式,对所述倒排索引数据库中与所述变更数据相关的倒排索引进行变更。
第二方面,本公开实施例还提供了一种数据处理装置,包括:请求接收模块,用于接收数据访问请求;其中,所述数据访问请求中携带待访问数据的访问字段;第一查询模块,用于当所述访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据;其中,所述混合存储系统包括:所述关系型数据库、所述键值数据库和倒排索引数据库;第二查询模块,用于当所述访问字段为关键词时,在所述倒排索引数据库中查询所述关键词对应的第二主键,并在所述键值数据库和/或所述关系型数据库中查询所述第二主键对应的数据;响应模块,用于基于查询到的数据响应所述数据访问请求。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如第一方面所提供的数据处理方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如第一方面所提供的数据处理方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的数据处理方法、装置、设备及介质,首先接收数据访问请求;当数据访问请求中携带的访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询第一主键对应的数据;其中,混合存储系统包括:关系型数据库、键值数据库和倒排索引数据库;当访问字段为关键词时,在倒排索引数据库中查询关键词对应的第二主键,并在键值数据库和/或关系型数据库中查询第二主键对应的数据;最后基于查询到的数据响应数据访问请求。
在上述技术方案中,通过在关系型数据库的基础上引入键值数据库和倒排索引数据库,能够无需在关系型数据库中建立索引,而是充分利用键值数据库采用键值对的存储优势,以及通过倒排索引数据库提供关键词对应的第二主键,避免在关系型数据库中进行全表扫描;进而,通过键值数据库优越的查询性能,能够根据主键快速地查询得到数据,有效提升查询效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据处理方法的流程示意图;
图2为本公开实施例提供的一种混合存储系统的架构示意图;
图3为本公开实施例提供的一种数据访问的交互图;
图4为本公开实施例提供的一种数据变更的交互图;
图5为本公开实施例提供的一种数据处理装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在诸如MySQL等关系型数据库根据非索引字段进行查询数据的业务场景中,数据查询性能非常低效。为了改善查询性能的问题,目前可以在数据库中建立相关索引,然而该方式提高查询效率的效果并不理想;此外更重要的是,过多的索引导致关系型数据库中被占用的存储空间呈几何增长,严重限制数据存储能力,并且还影响关系型数据库的修改能力。可见,现有建立索引的方式,不但无法有效地提高查询性能,还会带来数据存储和修改等额外问题。
为改善上述问题中的至少一个,本公开实施例提供了一种数据处理方法、装置、设备及介质,该技术可应用于任何需要数据查询或数据检索的场景,诸如应用于通过手机、电脑等电子设备,对MySQL(关系型数据库管理系统)进行即席查询等场景,为便于理解,以下对本公开实施例进行详细介绍。
图1为本公开实施例提供的一种数据处理方法的流程示意图,该方法可以由数据处理装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:
步骤S102,接收数据访问请求;其中,数据访问请求中携带待访问数据的访问字段。
在本实施例中,数据访问请求可以是数据访问方在数据访问设备发起的用于指示数据处理装置对数据库中的数据进行访问操作的数据请求。数据访问请求中携带的访问字段是数据访问方发起数据访问请求时输入的针对待访问数据的字段。
通常,数据访问请求有针对数据库表的简单主键的数据访问请求和用于进行全文搜索的复杂条件的数据访问请求,相应地,数据访问请求中携带的访问字段可以包括:唯一的标识待访问数据的主键、数据访问方使用即席查询时自定义的关键词。
步骤S104,当访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询第一主键对应的数据;其中,混合存储系统包括:关系型数据库、键值数据库和倒排索引数据库。
参照图2所示的混合存储系统的架构图,混合存储系统包括互相配合的关系型数据库、键值数据库和倒排索引数据库;键值数据库和倒排索引数据库为关系型数据库的从库。其中,键值数据库(如Redis)用于将关系型数据库中的业务数据存储为键值对,键值对中的主键是业务数据中的字段,且用于唯一的标识业务数据,键值是通过主键标识的业务数据。键值数据库中的一个键值对,对应关系型数据库中的一条业务数据。
倒排索引数据库用于缓存倒排索引,且倒排索引用于记录具有编号的文档中包含的关系型数据库中业务数据的词条;也就是说,倒排索引用于记录有哪些文档包含了某个词条,通过倒排索引可以快速地根据词条找到包含该词条的所有文档。
对于数据访问方发起的不同的数据访问请求,查询方式上也将存在一定差别。在本实施例中,当数据访问请求中携带的访问字段为第一主键时,可以在键值数据库中查询与第一主键对应的数据,如果在键值数据库中查询不到数据,则通过关系型数据库回源,最后将从键值数据库中查询到的数据与从关系型数据库中查询到的数据共同返回给数据访问方。本实施例通过关系型数据库与键值数据库相配合,无需在关系型数据库中建立索引,有效避免了索引对存储空间的占用过大问题;同时,键值数据库采用键值对的数据存储方式,在非热点情况下,可以达到50万左右的QPS(Query Per Second,每秒查询率),利用查询性能优越的键值数据库,提升了数据访问效率。
步骤S106,当访问字段为关键词时,在倒排索引数据库中查询关键词对应的第二主键,并在键值数据库和/或关系型数据库中查询第二主键对应的数据。
在本实施例中,当数据访问请求中携带的访问字段为关键词时,可以先在倒排索引数据库中查询关键词对应的第二主键,而后参照步骤S104,在键值数据库和/或关系型数据库中查询第二主键对应的数据。
现有技术中,基于倒排索引方式的数据搜索存在至少1秒的延迟;然而,本实施例通过在倒排索引数据库的基础上引入键值数据库,倒排索引数据库无需执行耗时较长的数据搜索过程,而是只需要返回第二主键即可,通过查询性能优越的键值数据库根据第二键值进行数据查询,能够保证查询得到数据的实时性。
步骤S108,基于查询到的数据响应数据访问请求。
具体地,将从混合存储系统中查询到的数据发送至数据访问方,以响应数据访问请求。
在本公开实施例提供的数据处理方法中,通过在关系型数据库的基础上引入键值数据库和倒排索引数据库,能够无需在关系型数据库中建立索引,而是充分利用键值数据库采用键值对的存储优势,以及通过倒排索引数据库提供关键词对应的第二主键,避免在关系型数据库中进行全表扫描;进而,通过键值数据库优越的查询性能,能够根据第一主键或第二主键快速地查询得到数据,有效提升查询效率。
为更好地理解,本实施例对上述提供的数据处理方法展开详细描述。
在实际应用中,一般是通过输入接口接收数据访问方发送的数据访问请求;根据该数据访问请求的输入接口解析数据访问请求中携带的访问字段。需要说明的是,可以通过不同的接口输入携带不同访问字段的数据访问请求,相应地,对于携带不同访问字段的数据访问请求,可以通过不同的数据访问方法去获取待访问的数据。参照图3所示的数据访问交互图,提供了当访问字段为第一主键时,由键值数据库和关系型数据库之间相互配合实现数据访问的过程,以及当访问字段为关键词时,由倒排索引数据库与键值数据库、关系型数据库之间相互配合实现数据访问的过程;以下分别对上述两种数据访问的过程展开描述。
在一种实施例中,接收数据访问请求的接口可能是批量获取接口,通过该批量获取接口接收到的数据访问请求中,携带批量的访问字段,且各访问字段均为第一主键,比如,访问字段为多个学生的学号,一个第一主键对应一个学号。基于此,结合图3,本实施例提供一种在键值数据库和/或关系型数据库中查询第一主键对应的数据的实现方法,参照如下步骤1至4:
步骤1,在键值数据库中查询与第一主键对应的键值。
在本实施例中,关系型数据库对其存储的业务数据赋予主键,并将主键和该主键唯一标识的业务数据缓存入键值数据库中。在键值数据库中,每条数据均按主键(PrimaryKey)和键值(Value)这样的键值对结构存储于数据表中,且键值数据库中记录的数据与关系型数据库中对应的业务数据一致。
步骤2,如果键值数据库中存在与第一主键对应的键值,将第一主键对应的键值确定为第一数据。
在批量查询的情况下,数据访问请求中携带的第一主键有多个;对于能够在键值数据库中查询到的第一主键对应的键值,将该键值所表示的数据确定为第一数据;对于在键值数据库中无法查询到第一主键对应键值的情况,则参照如下步骤3。
步骤3,如果键值数据库中不存在与第一主键对应的键值,基于SQL查询方法在关系型数据库中查询与第一主键相对应的第二数据。
对于在键值数据库中无法查询到对应键值的第一主键,则在关系型数据库中查询与第一主键相对应的第二数据。
步骤4,将第二数据写入键值数据库,并对第一数据和第二数据进行打包。而后,将第一数据和第二数据的打包结果作为数据访问请求的响应结果。
此外可以理解的是,如果在键值数据库中能够查询到全部第一主键对应的键值,则直接将第一数据返回作为数据访问请求的响应结果。
在基于SQL查询方法从关系型数据库中查询与第一主键相对应的第二数据之后,还可以将第二数据作为第一主键的键值,缓存至键值数据库中。这样的话,当需要再次访问时,就可以直接从键值数据库的缓存中读取与第一主键对应的数据,进一步提升数据查询效率。
在本实施例提供的基于第一主键的数据访问方法,利用键值数据库不但能够提高数据查询效率,而且,通过键值数据库采用键值对的存储方式对关系型数据库中的业务数据进行缓存,能够明显改善关系型数据库因建立过多索引导致的存储空间占用过大的问题。
在又一种实施例中,接收数据访问请求的接口可能是满足即席查询场景的搜索接口。通过搜索接口接收到的数据访问请求中,携带的访问字段为关键词,比如,待访问数据是某地区的居民信息,则访问字段可能为地区名称和性别等一个或多个自定义的关键词。基于此,结合图3,本实施例提供一种基于倒排索引数据库的数据访问方法,包括:首先在倒排索引数据库中查询关键词对应的第二主键;然后参照上述步骤1至4,在键值数据库和/或关系型数据库中查询第二主键对应的数据。需要说明的是,图3虽然省略描述了在键值数据库和/或关系型数据库中查询第二主键对应的数据的相关过程,但可以理解该过程与基于第一主键查询第一数据和第二数据的过程相同。
本实施例提供一种在倒排索引数据库中查询关键词对应的第二主键的具体实现方式,参照如下所示:根据预设的资源配置参数,确定将倒排索引数据库中的文档的编号,作为倒排索引数据库的返回结果。上述资源配置参数比如ES(Elastic Search)中的“_source”参数。
由于倒排索引数据库中存储的倒排索引用于记录有哪些文档包含了某个词条,通过倒排索引可以快速地根据词条找到包含该词条的所有文档;从而,当根据关键词,通过倒排索引的方式在倒排索引数据库中进行数据查询时,会得到包含该关键词的所有文档。如果直接将所有文档打包,作为数据访问请求的相应结果,那么将存在秒级别的搜索延迟和极高的带宽消耗。
在此情况下,本实施例根据资源配置参数确定倒排索引数据库将文档的编号作为返回结果;其中,资源配置参数是用于体现倒排索引数据库的返回结果的参数。在不设置资源配置参数的情况下,倒排索引数据库会默认返回全部的文档;在设置资源配置参数的情况下,倒排索引数据库会根据资源配置参数的具体值,返回与之对应的数据,本实施例中的资源配置参数经过具体值的配置,确定倒排索引数据库的返回结果为文档的编号。显然,通过资源配置参数能够优化倒排索引数据库的返回响应速度。
根据资源配置参数的预先配置,确定倒排索引数据库的返回结果是文档的编号;基于此,在倒排索引数据库中查询关键词对应的第二主键的具体实现方式为:在倒排索引数据库的文档中查找包含关键词的目标文档,将目标文档的编号确定为返回给键值数据库的第二主键。
而后,在键值数据库中查询与第二主键对应的键值;如果在键值数据库中能够查询到全部第二主键对应的键值,则将查询到的数据作为数据访问请求的响应结果;如果在键值数据库中未能查询到全部第二主键对应的键值,则针对未查询到对应键值的第二主键,在关系型数据库中查询与该部分第二主键相对应的数据,并将在键值数据库中查询到的数据与在关系型数据库中查询到的数据进行打包,将打包结果作为数据访问请求的响应结果。
面对数据访问方的即席查询,传统的关系型数据库在没有建立合适索引的情况下,可能会造成扫描全表的慢查询,存在即席查询低效问题。相比于此,本实施例提供的数据访问方法,再关系型数据库的基础上引入了倒排索引数据库与键值数据库,首先通过倒排索引数据库返回第二主键,而后利用第二主键在键值数据库和/或关系型数据库中进行数据查询,该方式充分降低了倒排索引带来的搜索延迟;经发明人实际运行发现,本实施例中倒排索引数据库与键值数据库相配合实现的数据访问方式,能够将原来秒级的搜索延迟降低到200ms左右,有效改善了关系型数据库即席查询的低效问题。
在实际应用中,数据随着业务变更而变更后,关系型数据库、键值数据库和倒排索引数据库之间的数据同步是很关键的一个步骤。参照图4所示的数据变更的交互图,本实施例提供的数据处理方法还包括:
(1)接收数据变更请求;其中,数据变更请求是增加、删除或修改数据的请求。具体的,关系型数据库接收数据变更方对业务数据进行增加、删除或修改的数据变更请求。
(2)根据数据变更请求对关系型数据库中的数据进行变更,并同步调用键值数据库,将关系型数据中变更数据对应的键值对缓存到键值数据库。
具体的,根据数据变更请求,以事务的模式对关系型数据库中的数据进行变更;其中,事务是为了保证数据的一致性和完整性,由一系列数据操作或指令组成的一个不可分割的逻辑单元;当事务成功执行时,该事务中对所有数据所做的变更均会成为关系型数据库中持久性的变更。本实施例能够充分利用关系型数据库的特性,在变更数据的过程中,并不会感知键值数据库和倒排索引数据库的存在,使得用户可以通过关系型数据库提供的本身支持的事务的特性完成变更。
基于关系型数据中的变更数据,同步调用键值数据库进行数据变更,比如,当关系型数据中的变更数据为增加的新业务数据时,则将新业务数据对应的键值对缓存到键值数据库中;当关系型数据中的变更数据为针对原始业务数据的修改后数据时,则对键值数据库中与原始业务数据对应的键值对进行同步修改,使修改后的键值对与修改后数据保持一致。同步调用键值数据库进行数据变更后,继续为后续的数据查询提供基础。
在关系型数据库变更数据时,通过同步调用键值数据库,能够较好地解决关系型数据库因为支持搜索而建立过多索引,故而导致存储空间占用过大,影响数据修改性能的问题。
(3)当关系型数据库完成数据变更时,生成变更日志;其中,变更日志用于记录关系型数据库中的变更数据。
(4)通过消费变更日志的方式,对倒排索引数据库中与变更数据相关的倒排索引进行变更。此后,当完成倒排索引数据库的数据变更后,由关系型数据库向数据变更方返回成功结果。
具体的,当以事务的模式完成数据变更后,关系型数据库会产生若干变更日志,该变更日志为Binlog;而后,通过消费Binlog的方式对倒排索引数据库进行数据变更,以保证倒排索引数据库与关系型数据库的数据一致性。比如,根据变更日志获取关系型数据中变更数据的词条a,在倒排索引数据库中包含该词条a的文档为文档w,进而,变更相关的倒排索引,以使修改后的倒排索引记录文档w包含词条a。
本实施例通过Binlog异步刷新变更数据到倒排索引数据库中,可以实现数据库系统之间的解离;并且,可以控制倒排索引数据库的数据与关系型数据库中的数据延迟在毫秒级别,和关系型数据库中的主从延迟级别相等。
综上,本公开实施例提供的数据处理方法,充分利用混合存储系统中关系型数据库、键值数据库和倒排索引数据库各自的存储优势,使得即席查询操作可以达到低延迟的实时性,并且可以承载明显高于相对于传统关系型数据库的即席查询流量。
图5为本公开实施例提供的一种数据处理装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中,可通过执行数据处理方法来实现数据访问和数据变更等处理。如图5所示,该装置可以包括:
请求接收模块502,用于接收数据访问请求;其中,数据访问请求中携带待访问数据的访问字段;
第一查询模块504,用于当访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询第一主键对应的数据;其中,混合存储系统包括:关系型数据库、键值数据库和倒排索引数据库;
第二查询模块506,用于当访问字段为关键词时,在倒排索引数据库中查询关键词对应的第二主键,并在键值数据库和/或关系型数据库中查询第二主键对应的数据;
响应模块508,用于基于查询到的数据响应数据访问请求。
在一种实施例中,第一查询模块504具体用于:
在键值数据库中查询与第一主键对应的键值;如果键值数据库中存在与第一主键对应的键值,将第一主键对应的键值确定为第一数据;如果键值数据库中不存在与第一主键对应的键值,基于SQL查询方法在关系型数据库中查询与第一主键相对应的第二数据。
在一种实施例中,第一查询模块504还用于:将第二数据写入键值数据库,并对第一数据和第二数据进行打包;相应的,响应模块508具体用于:将第一数据和第二数据的打包结果作为数据访问请求的响应结果。
在一种实施例中,第一查询模块504还用于:将第二数据作为第一主键的键值,缓存至键值数据库中。
在一种实施例中,上述装置还包括配置模块,该配置模块用于:根据预设的资源配置参数,确定将倒排索引数据库中的文档的编号,作为倒排索引数据库的返回结果;相应地,第二查询模块506具体用于:在倒排索引数据库的文档中查找包含关键词的目标文档,将目标文档的编号确定为返回给键值数据库的第二主键。
在一种实施例中,上述装置还包括数据变更模块;该数据变更模块用于:接收数据变更请求;其中,数据变更请求是增加、删除或修改数据的请求;根据数据变更请求对关系型数据库中的数据进行变更,并同步调用键值数据库,将关系型数据中变更数据对应的键值对缓存到键值数据库。
在一种实施例中,上述数据变更模块还用于:当关系型数据库完成数据变更时,生成变更日志;其中,变更日志用于记录关系型数据库中的变更数据;通过消费变更日志的方式,对倒排索引数据库中与变更数据相关的倒排索引进行变更。
本公开实施例所提供的数据处理装置可执行本公开任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。
本公开实施例还提供一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述实施例中的数据处理方法。
图6为本公开实施例提供的一种电子设备的结构示意图。如图6所示,电子设备600包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备600中的其他组件以执行期望的功能。
存储器602可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器601可以运行所述程序指令,以实现上文所述的本公开的实施例的数据处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备600还可以包括:输入装置603和输出装置604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置603还可以包括例如键盘、鼠标等等。
该输出装置604可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置604可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备600中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备600还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本公开实施例所述数据处理方法的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据处理方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种数据处理方法,其特征在于,包括:
接收数据访问请求;其中,所述数据访问请求中携带待访问数据的访问字段;
当所述访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据;其中,所述混合存储系统包括:所述关系型数据库、所述键值数据库和倒排索引数据库;
当所述访问字段为关键词时,在所述倒排索引数据库中查询所述关键词对应的第二主键,并在所述键值数据库和/或所述关系型数据库中查询所述第二主键对应的数据;
基于查询到的数据响应所述数据访问请求。
2.根据权利要求1所述的方法,其特征在于,所述键值数据库和所述倒排索引数据库为所述关系型数据库的从库;其中,所述键值数据库用于将所述关系型数据库中的业务数据存储为键值对,所述键值对中的主键是所述业务数据中的字段,且用于标识所述业务数据,所述键值对中的键值是通过所述主键标识的所述业务数据;
所述倒排索引数据库用于缓存倒排索引,且所述倒排索引用于记录具有编号的文档中包含的所述关系型数据库中业务数据的词条。
3.根据权利要求1或2所述的方法,其特征在于,所述在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据,包括:
在所述键值数据库中查询与所述第一主键对应的键值;
如果所述键值数据库中存在与所述第一主键对应的键值,将所述第一主键对应的键值确定为第一数据;
如果所述键值数据库中不存在与所述第一主键对应的键值,基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据。
4.根据权利要求3所述的方法,其特征在于,在所述基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据之后,所述方法还包括:
将所述第二数据写入所述键值数据库,并对所述第一数据和所述第二数据进行打包;
所述基于查询到的数据响应所述数据访问请求,包括:
将所述第一数据和所述第二数据的打包结果作为所述数据访问请求的响应结果。
5.根据权利要求3所述的方法,其特征在于,在所述基于SQL查询方法在所述关系型数据库中查询与所述第一主键相对应的第二数据之后,所述方法还包括:
将所述第二数据作为所述第一主键的键值,缓存至所述键值数据库中。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据预设的资源配置参数,确定将所述倒排索引数据库中的文档的编号,作为所述倒排索引数据库的返回结果;
所述在所述倒排索引数据库中查询所述关键词对应的第二主键,包括:
在所述倒排索引数据库的文档中查找包含所述关键词的目标文档,将所述目标文档的编号确定为返回给所述键值数据库的第二主键。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收数据变更请求;其中,所述数据变更请求是增加、删除或修改数据的请求;
根据所述数据变更请求对所述关系型数据库中的数据进行变更,并同步调用所述键值数据库,将所述关系型数据中变更数据对应的键值对缓存到所述键值数据库。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述关系型数据库完成数据变更时,生成变更日志;其中,所述变更日志用于记录所述关系型数据库中的所述变更数据;
通过消费所述变更日志的方式,对所述倒排索引数据库中与所述变更数据相关的倒排索引进行变更。
9.一种数据处理装置,其特征在于,包括:
请求接收模块,用于接收数据访问请求;其中,所述数据访问请求中携带待访问数据的访问字段;
第一查询模块,用于当所述访问字段为第一主键时,在混合存储系统的键值数据库和/或关系型数据库中查询所述第一主键对应的数据;其中,所述混合存储系统包括:所述关系型数据库、所述键值数据库和倒排索引数据库;
第二查询模块,用于当所述访问字段为关键词时,在所述倒排索引数据库中查询所述关键词对应的第二主键,并在所述键值数据库和/或所述关系型数据库中查询所述第二主键对应的数据;
响应模块,用于基于查询到的数据响应所述数据访问请求。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-8中任一所述的数据处理方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-8中任一所述的数据处理方法。
CN202110202921.6A 2021-02-23 2021-02-23 一种数据处理方法、装置、设备及介质 Pending CN114969020A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110202921.6A CN114969020A (zh) 2021-02-23 2021-02-23 一种数据处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110202921.6A CN114969020A (zh) 2021-02-23 2021-02-23 一种数据处理方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114969020A true CN114969020A (zh) 2022-08-30

Family

ID=82954581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110202921.6A Pending CN114969020A (zh) 2021-02-23 2021-02-23 一种数据处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114969020A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309760A (zh) * 2020-02-10 2020-06-19 江苏满运软件科技有限公司 数据检索方法、系统、设备及存储介质
CN112131214A (zh) * 2019-06-25 2020-12-25 北京京东尚科信息技术有限公司 数据写入、数据查询的方法、系统、设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131214A (zh) * 2019-06-25 2020-12-25 北京京东尚科信息技术有限公司 数据写入、数据查询的方法、系统、设备和存储介质
CN111309760A (zh) * 2020-02-10 2020-06-19 江苏满运软件科技有限公司 数据检索方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
CN100550019C (zh) 面向对象的数据库访问方法及系统
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US7158996B2 (en) Method, system, and program for managing database operations with respect to a database table
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
US11514028B2 (en) Hybrid data storage and load system with ROWID lookup
US7840547B1 (en) Methods and systems for efficient query rewriting
US7984036B2 (en) Processing a text search query in a collection of documents
EP2973018A1 (en) A method to accelerate queries using dynamically generated alternate data formats in flash cache
US8812489B2 (en) Swapping expected and candidate affinities in a query plan cache
CN110175174B (zh) 一种数据查询方法、装置、设备及存储介质
CN109766318B (zh) 文件读取方法及装置
CN112579610A (zh) 多数据源结构分析方法、系统、终端设备及存储介质
US20200242097A1 (en) Method, apparatus, device and storage medium for managing index
US11221999B2 (en) Database key compression
US20130041887A1 (en) Adding entries to an index based on use of the index
US10558636B2 (en) Index page with latch-free access
CN114969020A (zh) 一种数据处理方法、装置、设备及介质
CN114064729A (zh) 一种数据检索方法、装置、设备及存储介质
US20170031909A1 (en) Locality-sensitive hashing for algebraic expressions
US20200081925A1 (en) Method and system for cached early-binding document search
KR20210110123A (ko) 관계형 데이터베이스 구조를 이용한 비관계형 데이터베이스 장치 및 데이터 정형화 방법
WO2024016789A1 (zh) 日志数据查询方法、装置、设备和介质
WO2021215101A1 (ja) データ管理システムおよびデータ管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination