CN116628024A - 关系型数据表查询方法、系统、装置及存储介质 - Google Patents
关系型数据表查询方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN116628024A CN116628024A CN202310530684.5A CN202310530684A CN116628024A CN 116628024 A CN116628024 A CN 116628024A CN 202310530684 A CN202310530684 A CN 202310530684A CN 116628024 A CN116628024 A CN 116628024A
- Authority
- CN
- China
- Prior art keywords
- query
- cache
- cache structure
- data table
- relational
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000008859 change Effects 0.000 claims abstract description 51
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 10
- 239000012634 fragment Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 210000001072 colon Anatomy 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及计算机技术领域,尤其涉及一种关系型数据表查询方法、系统、装置及存储介质。
背景技术
随着信息技术和数据技术的发展,数据的价值逐步被挖掘,越来越多的数据被汇聚并应用于各业务领域,从而出现了数据量巨大的超大表。相关技术中,通过分布式数据库的分片分表降低单表数据量进行数据表查询的方式,当数据表的数据量增大到一定量级后,查询性能表将随数据量增大分片数增加成线性下降,并且大量的广播查询还会导致整个分布式数据库性能下降,甚至导致数据库崩溃。同时,在使用缓存技术加载热点数据把耗时较长数据库查询转化为耗时较短的缓存查询的方案中,需要提前规划好热点数据,但在面临频繁变化的业务迭代时,缓存中的热点数据调整代价极大,严重制约需求的响应效率。另外,通过缓存和数据库相结合进行查询的方式,在面临复杂数据关联变化时会导致异常的错误结果,并且难以灵活匹配业务查询类型。因此,如何在面向业务面向复杂、单表数据量极大的情况下实现灵活性以及查询性能兼顾,成为了亟需解决的技术问题。
发明内容
为了解决上述技术问题的至少之一,本发明提出一种关系型数据表查询方法、系统、装置及存储介质,能够灵活高效地响应业务需求变化,并有效提高关系型数据表的查询效率。
一方面,本发明实施例提供了一种关系型数据表查询方法,包括以下步骤:
获取所述关系型数据表的查询条件;其中,根据所述关系型数据表的查询组合条件进行动态配置得到所述查询条件;
根据所述查询条件动态配置第一缓存集群;其中,所述第一缓存集群包括索引缓存结构和实体缓存结构,所述索引缓存结构与所述实体缓存结构相对应;
获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息;
根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群;
根据所述第二缓存集群进行目标业务查询,得到查询结果。
根据本发明的一些实施例,所述根据所述查询条件动态配置第一缓存集群,包括:
根据所述查询条件构建所述索引缓存结构;其中,所述索引缓存结构包括第一关键字和第一数据值;
根据查询需要返回的结果定义所述实体缓存结构;其中,所述实体缓存结构包括第二关键字和第二数据值,所述第二关键字与所述第一数据值对应。
根据本发明的一些实施例,所述根据所述查询条件构建所述索引缓存结构,包括:
根据所述查询条件配置所述第一关键字和所述第一数据值的存储类型;
根据所述存储类型构建所述第一关键字;其中,所述第一关键字包括第一预设前缀和预设业务参数,所述第一预设前缀通过第一预设规则生成;
根据所述存储类型将所述关系型数据表的主键集合存储至所述第一数据值。
根据本发明的一些实施例,所述第二数据值包括哈希集合,所述哈希集合包括第三关键字和第三数据值;
所述根据查询需要返回的结果定义所述实体缓存结构,包括:
根据所述关系型数据表的主键集合构建所述第二关键字;其中,所述第二关键字包括第二预设前缀和所述关系型数据表的主键;
根据第二预设规则构建所述第三关键字;
将所述关系型数据表需要返回的字段信息存储至所述第三数据值。
根据本发明的一些实施例,所述获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息,包括:
将所述关系型数据库的二进制日志事件拷贝到中继日志,得到二进制文件;
解析所述二进制文件得到所述数据变化信息。
根据本发明的一些实施例,所述根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群,包括:
根据缓存结构信息将所述数据变化信息分别发送至所述索引缓存结构以及所述实体缓存结构进行更新,得到所述第二缓存集群。
根据本发明的一些实施例,所述根据所述第二缓存集群进行目标业务查询,得到查询结果,包括:
查询所述第二缓存集群的索引缓存得到对应的主键信息;
根据所述主键信息查询所述第二缓存集群的实体缓存得到返回字段信息;
根据所述返回字段信息返回所述查询结果。
另一方面,本发明实施例还提供了一种关系型数据表查询系统,包括:
第一获取模块,用于获取所述关系型数据表的查询条件;其中,根据所述关系型数据表的查询组合条件进行动态配置得到所述查询条件;
配置模块,用于根据所述查询条件动态配置第一缓存集群;其中,所述第一缓存集群包括索引缓存结构和实体缓存结构,所述索引缓存结构与所述实体缓存结构相对应;
第二获取模块,用于获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息;
同步更新模块,用于根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群;
查询模块,用于根据所述第二缓存集群进行目标业务查询,得到查询结果。
另一方面,本发明实施例还提供了一种关系型数据表查询系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得至少一个所述处理器实现如上述实施例所述的关系型数据表查询方法。
另一方面,本发明实施例还提供了一种计算机存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由所述处理器执行时用于实现如上述实施例所述的关系型数据表查询方法。
根据本发明实施例的一种关系型数据表查询方法,至少具有如下有益效果:本发明实施例首先根据关系型数据表的查询条件动态配置第一缓存集群,第一缓存集群包括索引缓存结构,以及与索引缓存结构相对应的实体缓存结构,通过索引缓存与实体缓存双层结构类的方式,能够有效实现全局索引多样性的灵活支撑,并且通过动态配置索引缓存结构与实体缓存结构,能够实现查询条件的灵活性,有效提高业务响应速度。接着,本发明实施例通过解析关系型数据库的数据库日志得到相关的数据变化信息,以根据数据变化信息对索引缓存结构和实体缓存结构进行同步更新,实现对索引缓存和实体缓存的实时同步,从而能够提供基于全量的索引和实体缓存的高吞吐量的查询服务,并有效缓解热点数据频繁变化、频繁加载缓存带来的风险问题。然后,本发明实施例根据更新得到的第二缓存集群进行目标业务查询得到查询结果,从而能够灵活高效地响应业务需求变化,并有效提高了关系型数据表的查询效率。
附图说明
图1是本发明实施例提供的关系型数据表查询方法流程图;
图2是本发明另一实施例提供的关系型数据表查询方法流程图;
图3是本发明实施例提供的关系型数据表查询方法原理示意图;
图4是本发明实施例提供的通过第二缓存集群进行业务查询的流程示意图;
图5是相关技术中全局(切片)索引原理示意图;
图6是本发明实施例提供的全量缓存原理示意图;
图7是本发明实施例提供的全局(切片)索引与全量缓存存储结构差异示意图;
图8是本发明实施例提供的全局(切片)索引与全量缓存删除数据的差异示意图;
图9是本发明实施例提供的关系型数据表查询系统原理框图;
图10是本发明另一实施例提供的关系型数据表查询系统原理框图。
具体实施方式
本申请实施例所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的相关名词进行解释说明。
关系型数据库:是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。其中,关系型数据库这一系列的行和列被称为表,一组表组成了数据库,通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
缓存:是数据交换的缓冲区(称作Cache),是存贮数据(使用频繁的数据)的临时地方。当用户查询数据,首先在缓存中寻找,如果找到了则直接执行。如果找不到,则去数据库中查找。
Bin log:全称Binary Log,二进制日志文件,其记录了数据库所有执行的DDL和DML等数据库更新的语句,但是不包含select或者show等没有修改任何数据的语句。Binlog是MySQL级别的日志,即所有的存储引擎都会产生Bin log,而redo log或者undo log事务日志只有innoDB存储引擎才有。
随着信息技术和数据技术的发展,数据的价值逐步被挖掘,越来越多的数据被汇聚并应用于各业务领域,从而出现了数据量巨大的超大表。相关技术中,通过分布式数据库的分片分表降低单表数据量进行数据表查询的方式,当数据表的数据量增大到一定量级后,如当表数据量增大到30亿级别以上时,分布式数据库分片分表模式的查询会带来大量的广播查询,查询性能表将随数据量增大分片数增加成线性下降,并且大量的广播查询还会导致整个分布式数据库性能下降,甚至导致数据库崩溃。同时,在使用缓存技术加载热点数据把耗时较长数据库查询转化为耗时较短的缓存查询的方案中,需要提前规划好热点数据,但在面临频繁变化的业务迭代时,缓存中的热点数据调整代价极大,严重制约需求的响应效率,例如,动辄几天的全量数据同步时长对于7*24的高可用的业务系统是难以接受的。另外,通过缓存和数据库相结合进行查询的方式,在面临复杂数据关联变化时会导致异常的错误结果,并且难以灵活匹配业务查询类型。例如,当分片健和索引存在多条记录时,删除其中一条数据,如删除主键为1001数据会导致全局索引缓存数据被删除,剩余的主键为1002数据会丢失,因此全局索引的使用必须满足一对一类型的索引,业务查询往往一对多类型,难以灵活匹配。因此,如何在面向业务面向复杂、单表数据量极大的情况下实现灵活性以及查询性能兼顾,成为了亟需解决的技术问题。
基于此,本发明的一个实施例提供了一种关系型数据表查询方法、系统、装置及存储介质,能够灵活高效地响应业务需求变化,并有效提高关系型数据表的查询效率。参照图1,本发明实施例的方法包括但不限于步骤S110、步骤S120、步骤S130、步骤S140和步骤S150。
具体地,本发明实施例的方法应用过程包括但不限于以下步骤:
S110:获取关系型数据表的查询条件。其中,根据关系型数据表的查询组合条件进行动态配置得到查询条件。
S120:根据查询条件动态配置第一缓存集群。其中,第一缓存集群包括索引缓存结构和实体缓存结构,索引缓存结构与实体缓存结构相对应。
S130:获取关系型数据库的数据库日志,解析数据库日志,得到数据变化信息。
S140:根据数据变化信息同步更新索引缓存结构和实体缓存结构,得到第二缓存集群。
S150:根据第二缓存集群进行目标业务查询,得到查询结果。
在本具体实施例工作过程中,本发明实施例首先获取关系型数据表的查询条件。具体地,本发明实施例中查询条件通过关系型数据表的查询条件进动态配置得到。示例性地,参照图3,本发明实施例首先根据关系型数据表的各个组合查询条件进行动态配置,得到相应的查询条件,如表A查询组合条件1、表A查询组合条件1、表B查询组合条件1等。接着,本发明实施例根据查询条件动态配置第一缓存集群。具体地,本发明实施例中第一缓存集群包括索引缓存结构和实体缓存结构,并且索引缓存结构与实体缓存结构相对应。本发明实施例通过索引缓存和实体索引实现高性能查询,以优化关系型数据表查询性能。同时,本发明实施例中缓存采用索引缓存以及实体缓存双层结构类的“内存数据库”化的架构,并且建立实体换出结构与索引缓存结构的关联关系,使实体换出结构与索引缓存结构相互对应,从而能够实现数据库表到全量缓存数据异构转化,有效提高了提高关系型数据表的查询效率以及灵活性。
容易理解的是,在传统的分布式数据库超大表查询过程中,其核心过程通过汇聚所有分片及片内分表的数据,例如一次业务查询会产生400次数据库查询后汇聚数据,查询性能取决于400次查询耗时最大值,即max(分片1(union分桶1,分桶2,分桶3,分桶4),分片2…,…,分片100)。因此,分片和分桶越多耗时越长,会产生性能瓶颈。而本发明实施例中只需索引缓存和实体缓存各查一次,有效缓解了查询耗时的瓶颈问题。
接着,本发明实施例获取关系型数据库的数据库日志,解析数据库日志,得到数据变化信息。具体地,在关系型数据库的数据记录发生改变时,会生成相关的数据库日志,数据库日志中对数据变化事件进行了记录。因此,本发明实施例首先获取关系型数据库的数据库日志,以通过解析数据库日志,得到对应的数据变化信息。进一步地,本发明实施例根据数据变化信息同步更新索引缓存结构和实体缓存结构,得到第二缓存集群。具体地,本发明实施例中为了能够及时更新第一缓存集群,以灵活匹配业务查询类型。本发明实施例通过解析数据库日志得到的数据变化信息对索引缓存结构以及实体缓存结构中相关的数据进行同步更新,从而能够实现实时数据同步,能够缓解业务变化带来的全量数据同步时间成本,并有效缓解热点数据频繁变化、频繁加载等带来的风险问题。进一步地,本发明实施例根据第二缓存集群进行目标业务查询,得到查询结果。具体地,本发明实施例根据同步更新后的第二缓存集群中的索引缓存和实体缓存对目标业务进行查询,得到相应的查询结果,有效提高关系型数据表的查询效率,并且能够灵活高效地响应业务需求变化。
在本具体实施例中,本发明实施例首先通过动态配置的查询条件建立包括索引缓存结构和实体缓存结构的第一缓存集群。同时,本发明实施例解析关系型数据库的数据库日志,如关系数据库中进行的增删改操作事件记录,并且本发明实施例根据解析得到的数据变化信息实时同步第一缓存集群的索引缓存和实体缓存,得到第二缓存集群。本发明实施例通过第二缓存集群能够提供基于全量的索引缓存和实体缓存的高吞吐量的组合查询服务,有效缓解基于分布式数据库的分片分表查询性能问题以及基于全局索引或者切片索引技术数据丢失问题,从而实现面向超大表查询时性能和灵活性的兼顾平衡。
参照图2,在本发明的一些实施例中,根据查询条件动态配置第一缓存集群,包括但不限于:
S210:根据查询条件构建索引缓存结构。其中,索引缓存结构包括第一关键字和第一数据值。
S220:根据查询需要返回的结果定义实体缓存结构。其中,实体缓存结构包括第二关键字和第二数据值,第二关键字与所述第一数据值对应。
在本具体实施例中,本发明实施例首先根据查询条件构架索引缓存结构。具体地,本发明实施例中索引缓存结构为键值对结构,包括第一关键字(Key)和第一数据值(Value)。本发明实施例根据关系型数据表的查询条件建立索引缓存结构,示例性地,当查询条件是业务号码,本发明实施例中将业务号码设置为索引缓存的第一关键字,即Key。同时,本发明实施例将相应的关系型数据表的主键集合,如产品实例标识等,存放至第一数据值,即索引缓存结构的Value中,从而构建得到索引缓存结构。进一步地,本发明实施例根据查询需要返回的结果定义实体缓存结构。具体地,本发明实施例汇总查询需要返回的结果是指业务查询中所要返回的目标数据或者字段,如需要返回的结果包括业务号码、产品标识等。本发明实施例通过相关的所需返回结果对实体缓存结构进行定义。需要说明的是,本发明实施例中实体缓存结构也为键值对结构,实体缓存结构包括第二关键字和第二数据值。其中,本发明实施例中实体缓存结构中的第二关键字与索引缓存结构中的第一数据值相对应,通过查询索引缓存结构的第一关键字能够得到对应的第一数据值,并根据该第一数据值从实体缓存结构中查询第二关键字,从而得到对应的第二数据值,实现关系型数据表的查询。示例性地,当返回的结果需要包含业务号码、省份来源、状态、产权客户标识等,本发明实施例将关系型数据表的主键信息,如与第一数据值对应的产品实例标识,储存至第二关键字中。同时,本发明实施例将相应的需要返回的字段,如业务号码、省份来源、状态、产权客户标识,分别储存至实体缓存的值结构中,即第二数据值中,从而构建得到实体缓存结构。同时,本发明实施例中实体缓存结构的第二关键字与索引缓存结构的第一数据值对应,从而建立起索引缓存结构与实体缓存结构的关联关系,构建得到索引缓存与实体缓存的双层结构,能够实现数据库表到全量缓存数据异构转化,有效提高关系型数据表查询的灵活性以及效率。
在本发明的一些实施例中,根据查询条件构建索引缓存结构,包括但不限于:
根据查询条件配置第一关键字和第一数据值的存储类型。
根据存储类型构建第一关键字。其中,第一关键字包括第一预设前缀和预设业务参数,第一预设前缀通过第一预设规则生成。
根据存储类型将关系型数据表的主键集合存储至第一数据值。
在本具体实施例中,本发明实施例首先根据查询条件配置第一关键字和第一数据值的存储类型。接着,本发明实施例根据相应的存储类型构建索引缓存结构的第一关键字。具体地,本发明实施例中第一关键字包括第一预设前缀和预设业务参数,如“第一预设前缀+预设业务参数”。需要说明的是,本发明实施例中第一预设前缀通过第一预设规则生成。例如,本发明实施例中第一预设前缀通过三位随机字母规则生成。进一步地,本发明实施例根据配置的第一数据值的存储类型将关系型数据表的主键集合存储至第一数据值。本发明实施例将关系型数据表的主键集合存放至索引存储结构的Value,从而建立起预设业务参数与关系型数据表的主键的关联关系。示例性地,当查询条件是业务号码,本发明实施例首先根据该查询条件动态配置缓存Key结构(第一关键字)为String类型,同时,将Value结构(第一数据值)配置为Set集合。另外,为了使第一关键字具有唯一性,本发明实施例以业务号码结合第一预设前缀的方式,如第一预设前缀+业务号码,构建得到第一关键字。其中,本发明实施例中第一预设前缀基于26个字母的随机三位和冒号规则生成,例如,当预设业务参数为业务号码,则本发明实施例中规则生成的第一关键字可以为“aaa:业务号码”,相应地,当预设业务参数为业务号码和状态,则本发明实施例中规则生成的第一关键字可以为“aab:业务号码:状态”,而当预设业务参数为业务号码、号码类型以及状态,则本发明实施例中规则生成的第一关键字可以为“aac:业务号码:号码类型:状态”。同时,本发明实施例中第一数据值的Set集合存放相关超大表,即关系型数据表,的主键集合,如产品实例标识。本发明实施例通过第一预设规则生成第一预设前缀的方式,使得第一关键字具有唯一性,同时,通过将预设业务参数设置在第一关键字中,并将关系型数据表的主键集合存储至第一数据值,从而构建起预设业务参数与关系型数据表的主键的关联关系,便于后续进行业务查询。
在本发明的一些实施例中,第二数据值包括哈希集合,哈希集合包括第三关键字和第三数据值。相应地,本发明实施例中根据查询需要返回的结果定义实体缓存结构,包括但不限于:
根据关系型数据表的主键集合构建第二关键字。其中,第二关键字包括第二预设前缀和关系型数据表的主键。
根据第二预设规则构建第三关键字。
将关系型数据表需要返回的字段信息存储至第三数据值。
在本具体实施例中,本发明实施例首先根据关系型数据表的主键集合构建第二关键字。具体地,本发明实施例中第二关键字包括第二预设前缀和关系型数据表的主键。其中,本发明实施例中第二预设前缀也可以由预设规则生成。例如,本发明实施例中第二预设前缀由26个字母的随机三位与冒号规则生成,即随机三位字母+关系型数据表的主键。进一步地,本发明实施例中第二数据值包括哈希集合。其中,该集合为一个无序集合,类似于哈希表(unordered_map),但哈希表用来查找元素的,而哈希集合主要是存储元素,判断是否在里面。本发明实施例中哈希集合包括第三关键字和第三数据集。具体地,本发明实施例中首先根据第二预设规则构建第三关键字。其中,第二预设规则可以为根据26个字母中的一位按顺序生成。接着,本发明实施例将关系型数据表需要返回的字段信息存储至第三数据值。具体地,本发明实施例中第三数据值存储的是需要返回的字段,如业务号码、省份来源、产权客户标识等。
示例性地,当本发明实施例中返回的结果需要包括业务号码、省份来源、产品标识、状态、产权客户标识,本发明实施例首先根据关系型数据表的主键集合构建第二关键字。例如,关系型数据表的主键为产品实例标识,则本发明实施例首先基于26个字母的随机三位和冒号规则生成第二预设前缀,如“aaf:产品实例标识”。接着,本发明实施例通过26个字母的一位进行顺序生成,构建哈希集合中的第三关键字,如Key1:a,Key2:b,Key3:c,以此类推。然后,本发明实施例将需要返回的字段信息存储至哈希集合中的第三数据值。容易理解的是,本发明实施例中第三关键字与第三数据值为键值对,即第三关键字与第三数据值一一对应。本发明实施例中将相应的字段信息存储至对应的第三关键字的第三数据值中,如“Key1:a,Value:业务号码”,“Key2:b,Value:省份来源”,“Key3:c,Value:产品标识”,“Key4:d,Value:状态”,“Key5:e,Value:产权客户标识”,以此类推。本发明实施例通过将关系型数据表的主键与需要返回的字段信息进行关联,从而能够快速地根据索引缓存结构查询得到的主键信息,从实体缓存机构查询得到对应的字段信息,有效提高了查询的效率。
需要说明的是,参照图3,在本发明实施例中通过全量缓存配置中心配置全量缓存数据源,并根据查询条件配置缓存索引结构和实体结构,并向数据同步系统推送相关的缓存配置信息。具体地,本发明实施例首先通过全量缓存配置中心配置关系型数据库和缓存信息源信息,接着对关系型数据表信息进行配置。进一步地,本发明实施例自动解析关系型数据库的表字段信息。其中,关系型数据库可以为分布式数据库标准库。接着,本发明实施例定义实体缓存结构以及索引缓存结构,并配置关系型数据库表字段与缓存异构,即索引缓存与实体缓存结构,之间的映射关系。同时,本发明实施例还需要对数据异构的正确性进行验证,以提高数据查询的准确性和可靠性。接着,本发明实施例将相关的缓存配置信息推送至数据同步工具中,进行数据同步。容易理解的是,本发明实施例中基于全量缓存配置中心根据业务查询需求无代码化定义缓存结构、数据库到缓存映射关系,能够快速灵活的自由组合查询条件,满足面向业务模型复杂查询需求,在动态配置缓存结构中,采用字段编码和KEY前缀来保证KEY唯一性和缓存集约性,能够有效提高数据查询的准确性和可靠性。
在本发明的一些实施例中,获取关系型数据库的数据库日志,解析数据库日志,得到数据变化信息,包括但不限于:
将关系型数据库的二进制日志事件拷贝到中继日志,得到二进制文件。
解析二进制文件得到数据变化信息。
在本具体实施例中,本发明实施例首先将关系型数据库的二进制日志事件拷贝到中继日志中,得到相应的二进制文件。接着,本发明实施例通过解析二进制文件得到相应的数据变化信息。具体地,参照图3,本发明实施例中关系数据库中的超大表(关系型数据表)的数据记录发生改变时,将生成二进制文件(binary log)。本发明实施例中同步工具向关系型数据库发送转储协议(dump协议),将关系型数据库的二进制日志事件(binary logevents)拷贝到相应的中继日志(relay log)。进一步地,本发明实施例通过解析该binlog从而得到相应的数据变化信息。容易理解的是,本发明实施例中数据变化信息表征的是关系型数据库中数据的变化信息,如关系型数据库内存储的数据的增删改操作等,以通过解析得到的数据变化信息同步索引缓存和实体缓存。
在本发明的一些实施例中,根据数据变化信息同步更新索引缓存结构和实体缓存结构,得到第二缓存集群,包括但不限于:
根据缓存结构信息将数据变化信息分别发送至索引缓存结构以及实体缓存结构进行更新,得到第二缓存集群。
在本具体实施例中,缓存结构信息为构建的索引缓存结构以及实体缓存结构的机构信息,如各个字段信息与主键之间的关联信息等。本发明实施例通过将相应的数据变化信息发送至对应的索引缓存结构以及实体缓存结构,以对索引缓存结构和实体缓存结构进行同步更新,得到第二缓存集群,从而实现按秒级的实时同步能力。示例性地,本发明实施例首先通过解析关系型数据库的二进制文件得到关系型数据库中存储的相关数据的修改变化,即数据变化信息。然后,本发明实施例根据缓存结构信息确定数据变化信息所对应的索引缓存以及实体缓存。接着,本发明实施例将相应的数据变化信息发送至不同的异构缓存目标,即发送至对应的索引缓存结构以及实体缓存结构,以进行相应的缓存更新,从而实现数据的实时同步更新。
在本发明的一些实施例中,根据第二缓存集群进行目标业务查询,得到查询结果,包括但不限于:
查询第二缓存集群的索引缓存得到对应的主键信息。
根据主键信息查询第二缓存集群的实体缓存得到返回字段信息。
根据返回字段信息返回查询结果。
在本具体实施例中,在根据第二缓存集群进行目标业务查询过程中,本发明实施例首先根据所需查询的业务,查询第二缓存集群汇总的索引缓存得到对应的主键信息。接着本发明实施例根据主键信息查询第二缓存集群中的实体缓存,得到对应的返回字段信息,从而根据返回字段信息返回查询结果。示例性地,参照图4,本发明实施例中的查询条件为业务号码。本发明实施例首先通过相应的业务号码查询产品实例的号码索引缓存,得到相应的产品实例标识,即主键信息。接着,本发明实施例通过获取的产品实例标识查询产品实例缓存实体,即第二缓存集群的实体缓存,得到相应的返回字段,如业务号码、省份来源、产品标识、状态、产权客户标识等。进一步地,本发明实施例根据返回字段信息返回最终的业务查询结果,有效提高了关系数据表的查询效率。
需要说明的是,相较于全局索引或者切片索引通过一层缓存结构,即查询条件为Key分片键为Value,查询条件相同分片键相同的多条记录,删除其中一条会导致数据丢失。而针对于该数据丢失的问题,本发明实施例通过索引缓存与实体缓存双层结构类‘内存数据库’化设计,其中,索引缓存中查询条件为Key,主键为Value,实体缓存主键为Key,其他字段信息Hash结构为该记录的值。由于主键的唯一性,因此能够有效缓解数据丢失影响准确性问题,参照图5和图6,本发明实施例中通过全量缓存数据的结构与全局索引或切片索引的结构不同,本发明实施例中的全量缓存结构中包括索引缓存和实体缓存,其中索引缓存中的Value值存放的是关系型数据表主键的集合,同时,实体缓存中的Key则为相应的主键,从而能够根据相应的业务查询条件查询得到对应的主键信息,并根据主键信息查询得到该主键对应的字段值。另外,参照图7和图8,在本发明实施例中,当需要对某一数据进行删除时,如需要删除样例数据主键为1001的相关数据,则在全局索引删除的方案中首先数据库发起删除主键为1001记录,然后将数据库中主键为1001记录删除,并将全局索引缓存中KEY为12345的记录删除,而将将全局索引缓存中KEY为12345的记录删除后,将会导致主键为1002的全局索引数据丢失。在本发明实施例中,本发明实施例通过全量缓存的方式,以索引缓存和实体缓存结合进行数据的缓存,当需要删除某一样例数据时,如删除主键为1001的相关数据,则关系型数据库先发起删除主键为1001记录,然后将关系数据库中主键为1001记录删除。同时,本发明实施例删除索引缓存中KEY为12345,Value为1001的成员,并删除实体缓存中KEY为1001记录。当需要查询产品实例标识(主键)为1002的相关字段信息时,仍能够通过全量缓存的方式查询得到相关数据,从而有效缓解了数据丢失的问题,有效提高了关系型数据表查询的可靠性。
参照图9,本发明的一个实施例还提供了一种关系型数据表查询系统,包括:
第一获取模块310,用于获取关系型数据表的查询条件。其中,根据关系型数据表的查询组合条件进行动态配置得到所述查询条件。
配置模块320,用于根据查询条件动态配置第一缓存集群。其中,第一缓存集群包括索引缓存结构和实体缓存结构,索引缓存结构与所述实体缓存结构相对应。
第二获取模块330,用于获取关系型数据库的数据库日志,解析数据库日志,得到数据变化信息。
同步更新模块340,用于根据数据变化信息同步更新索引缓存结构和实体缓存结构,得到第二缓存集群。
查询模块350,用于根据第二缓存集群进行目标业务查询,得到查询结果。
参照图10,本发明的一个实施例还提供了一种关系型数据表查询系统,包括:
至少一个处理器410。
至少一个存储器420,用于存储至少一个程序。
当至少一个程序被至少一个处理器410执行,使得至少一个处理器410实现如上述实施例描述的关系型数据表查询方法。
本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,执行以上实施例描述的步骤。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
对于上述方法实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
以上是对本申请的较佳实施进行了具体说明,但本申请并不限于所述实施例,熟悉本领域的技术人员在不违背本申请精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种关系型数据表查询方法,其特征在于,包括以下步骤:
获取所述关系型数据表的查询条件;其中,根据所述关系型数据表的查询组合条件进行动态配置得到所述查询条件;
根据所述查询条件动态配置第一缓存集群;其中,所述第一缓存集群包括索引缓存结构和实体缓存结构,所述索引缓存结构与所述实体缓存结构相对应;
获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息;
根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群;
根据所述第二缓存集群进行目标业务查询,得到查询结果。
2.根据权利要求1所述的关系型数据表查询方法,其特征在于,所述根据所述查询条件动态配置第一缓存集群,包括:
根据所述查询条件构建所述索引缓存结构;其中,所述索引缓存结构包括第一关键字和第一数据值;
根据查询需要返回的结果定义所述实体缓存结构;其中,所述实体缓存结构包括第二关键字和第二数据值,所述第二关键字与所述第一数据值对应。
3.根据权利要求2所述的关系型数据表查询方法,其特征在于,所述根据所述查询条件构建所述索引缓存结构,包括:
根据所述查询条件配置所述第一关键字和所述第一数据值的存储类型;
根据所述存储类型构建所述第一关键字;其中,所述第一关键字包括第一预设前缀和预设业务参数,所述第一预设前缀通过第一预设规则生成;
根据所述存储类型将所述关系型数据表的主键集合存储至所述第一数据值。
4.根据权利要求2所述的关系型数据表查询方法,其特征在于,所述第二数据值包括哈希集合,所述哈希集合包括第三关键字和第三数据值;
所述根据查询需要返回的结果定义所述实体缓存结构,包括:
根据所述关系型数据表的主键集合构建所述第二关键字;其中,所述第二关键字包括第二预设前缀和所述关系型数据表的主键;
根据第二预设规则构建所述第三关键字;
将所述关系型数据表需要返回的字段信息存储至所述第三数据值。
5.根据权利要求1所述的关系型数据表查询方法,其特征在于,所述获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息,包括:
将所述关系型数据库的二进制日志事件拷贝到中继日志,得到二进制文件;
解析所述二进制文件得到所述数据变化信息。
6.根据权利要求5所述的关系型数据表查询方法,其特征在于,所述根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群,包括:
根据缓存结构信息将所述数据变化信息分别发送至所述索引缓存结构以及所述实体缓存结构进行更新,得到所述第二缓存集群。
7.根据权利要求1所述的关系型数据表查询方法,其特征在于,所述根据所述第二缓存集群进行目标业务查询,得到查询结果,包括:
查询所述第二缓存集群的索引缓存得到对应的主键信息;
根据所述主键信息查询所述第二缓存集群的实体缓存得到返回字段信息;
根据所述返回字段信息返回所述查询结果。
8.一种关系型数据表查询系统,其特征在于,包括:
第一获取模块,用于获取所述关系型数据表的查询条件;其中,根据所述关系型数据表的查询组合条件进行动态配置得到所述查询条件;
配置模块,用于根据所述查询条件动态配置第一缓存集群;其中,所述第一缓存集群包括索引缓存结构和实体缓存结构,所述索引缓存结构与所述实体缓存结构相对应;
第二获取模块,用于获取关系型数据库的数据库日志,解析所述数据库日志,得到数据变化信息;
同步更新模块,用于根据所述数据变化信息同步更新所述索引缓存结构和所述实体缓存结构,得到第二缓存集群;
查询模块,用于根据所述第二缓存集群进行目标业务查询,得到查询结果。
9.一种关系型数据表查询系统,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得至少一个所述处理器实现如权利要求1至7任一项所述的关系型数据表查询方法。
10.一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由所述处理器执行时用于实现如权利要求1至7任一项所述的关系型数据表查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530684.5A CN116628024A (zh) | 2023-05-11 | 2023-05-11 | 关系型数据表查询方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530684.5A CN116628024A (zh) | 2023-05-11 | 2023-05-11 | 关系型数据表查询方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116628024A true CN116628024A (zh) | 2023-08-22 |
Family
ID=87601828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530684.5A Pending CN116628024A (zh) | 2023-05-11 | 2023-05-11 | 关系型数据表查询方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628024A (zh) |
-
2023
- 2023-05-11 CN CN202310530684.5A patent/CN116628024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672235B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
US10002148B2 (en) | Memory-aware joins based in a database cluster | |
CA2723731C (en) | Managing storage of individually accessible data units | |
AU2017243870B2 (en) | "Methods and systems for database optimisation" | |
CN102890678A (zh) | 一种基于格雷编码的分布式数据布局方法及查询方法 | |
CN103353901A (zh) | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 | |
WO2019040146A1 (en) | KEY ENTRY SYSTEM WITH COMPETITIVE ACCESS WITHOUT LOCKING AND WITH VERSION MANAGEMENT | |
US20240126762A1 (en) | Creating compressed data slabs that each include compressed data and compression information for storage in a database system | |
CN116628024A (zh) | 关系型数据表查询方法、系统、装置及存储介质 | |
CN114398373A (zh) | 应用于数据库存储的文件数据存储读取方法及装置 | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 | |
KR102127785B1 (ko) | 효율적인 인덱싱을 제공하기 위한 방법, 장치 및 컴퓨터-판독가능 매체에 포함된 컴퓨터 프로그램 | |
US11055266B2 (en) | Efficient key data store entry traversal and result generation | |
EP3436988B1 (en) | "methods and systems for database optimisation" | |
US20200320060A1 (en) | Partition move in case of table update | |
US11727063B2 (en) | Parallel partition-wise insert sub-select | |
CN116756177B (zh) | 一种mysql数据库的多表索引维护方法和系统 | |
CN117149914B (zh) | 一种基于ClickHouse的存储方法 | |
CN113051274B (zh) | 一种海量标签存储系统及方法 | |
KR100739141B1 (ko) | 데이터 업데이트 방법 | |
CN116955416B (zh) | 数据处理方法、系统、设备及存储介质 | |
US11157500B2 (en) | Determination of query operator execution location | |
US20200320077A1 (en) | Partition-wise processing distribution | |
US20210026828A1 (en) | Zero-overhead hash filters |
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 |