CN116821174A - 一种基于逻辑数据块的数据查询方法及其装置 - Google Patents
一种基于逻辑数据块的数据查询方法及其装置 Download PDFInfo
- Publication number
- CN116821174A CN116821174A CN202310877711.6A CN202310877711A CN116821174A CN 116821174 A CN116821174 A CN 116821174A CN 202310877711 A CN202310877711 A CN 202310877711A CN 116821174 A CN116821174 A CN 116821174A
- Authority
- CN
- China
- Prior art keywords
- data block
- acceleration
- query
- data
- server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000001133 acceleration Effects 0.000 claims abstract description 279
- 238000013507 mapping Methods 0.000 claims abstract description 73
- 238000006243 chemical reaction Methods 0.000 claims description 56
- 238000013499 data model Methods 0.000 claims description 33
- 238000010276 construction Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000011156 evaluation Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 36
- 238000005192 partition Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000010223 real-time analysis Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000010006 flight Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 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/2453—Query optimisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于逻辑数据块的数据查询方法及其装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,所述方法涉及客户端、服务器和执行端,所述方法包括:所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询。确保了并发业务查询的结果正确性,提升了加速效果,实现快速刷新结果集或中间结果集。
Description
技术领域
本申请涉及数据处理领域,特别是一种基于逻辑数据块的数据查询方法及其装置。
背景技术
随着各行各业数字化转型的推进,企业要处理的数据量越来越大,对数据的实时性要求越来越高,海量数据的实时分析诉求越来越突显。在海量数据实时分析场景中,往往存在某些复杂的分析语句耗时特别长,对这些特定语句的查询加速是分析业务中的一个关键诉求。传统的处理方法一般采用分布式计算分而治之,但这需要耗费大量的计算资源,使得成本过高。所以提升单位计算资源下复杂查询的效率,并且适应实时分析中的并发数据修改,已成为一个关键竞争力之一。
在海量数据分析场景中,单位计算资源下复杂查询的加速是一个关键命题。一种常见的处理思路是通过空间换时间,将查询的结果集或中间结果集缓存下来,复杂查询通过访问缓存的结果集或中间结果集来加速。这里需要解决在数据实时修改下,结果集或中间结果集过时,导致从结果集或中间结果集获取的结果不正确。
现有技术方案通过Oracle物化视图实现;Oracle物化视图是通过SQL语句提前计算结果集,并将结果集存储到物化视图对象中,当业务语句需要用到这个结果集时就可以通过优化器做语句改写从物化视图中获取结果集,而无需从原表查询数据再做计算,这能起到加速效果,物化视图在历史库分析场景中比较常用,但物化视图的更新能力有较多限制,使得其对于有更新操作的实时分析场景存在明显的短板。而如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题。
发明内容
鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种基于逻辑数据块的数据查询方法及其装置,包括:
一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
进一步地,所述依据所述查询数据请求通过优化器生成AcScan算子的步骤,包括:
所述执行端依据所述优化器对所述查询数据请求进行代价评估确定是否使用所述服务器内的所述加速数据块;
当确定使用所述加速数据块时,所述执行端确定对应于所述加速数据块的算子树;
所述执行端依据所述算子树生成用于扫描所述加速数据块的所述AcScan算子。
进一步地,所述依据函数G和映射关系列表构建目标加速数据块的步骤,包括:
所述执行端依据函数G在所述服务器中通过映射关系列表确定对应于所述加速数据块的逻辑数据块;
所述执行端依据所述逻辑数据块确定对应于所述逻辑数据块的Scan算子;
所述执行端通过所述Scan算子扫描确定所述逻辑数据块内的数据;
所述执行端将所述数据进行格式转换生成所述目标加速数据块。
进一步地,所述方法还包括:
当完成所述查询时,所述执行端依据所述目标加速数据块或所述加速数据块进行计算生成计算结果;
所述执行端依据所述计算结果生成查询结果,并将所述查询结果发送至所述客户端。
本申请实施例还公开了一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:
所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
进一步地,所述方法还包括:
当对所述逻辑数据块内的数据进行修改后,所述服务器将对应于所述逻辑数据块的所述加速数据块在所述映射关系列表中标记为失效状态,并在所述映射关系列表中与所述加速数据块相关的所有映射关系都标记为失效状态;
所述服务器通过标记为所述失效状态的所述加速数据块确定对应于所述加速数据块的逻辑数据块;
所述服务器标记所述逻辑数据块为第二待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第二待生成数据块的第二新构建加速块;
所述服务器依据所述第二新构建加速块在对应的所述映射关系列表中将所述第二新构建加速块标记为生效状态。
本申请实施例还公开了一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:
所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
本申请实施例还公开了一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一生成模块,用于所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
第一确定模块,用于所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
第一计算模块,用于当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
本申请实施例还公开了一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一构建模块,用于所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
第二构建模块,用于所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
第二确定模块,用于所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
第二生成模块,用于当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
第一标记模块,用于所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
本申请实施例还公开了一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第三生成模块,用于所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
第一反馈模块,用于所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
本申请具有以下优点:
在本申请的实施例中,相对于现有技术中的“如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题”,本申请提供了“逻辑数据块和加速数据块”的解决方案,具体为:“所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系”。通过“逻辑数据块和加速数据块”解决了“如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题”达到了“业务查询可自适应的部分访问加速数据块,部分访问逻辑数据块,可保持局部加速能力,且查询能返回正确结果,满足事务一致性要求。同时通过能够在后台自动构建暂时失效的加速数据块,构建完成后,该加速数据块即可用于业务查询加速。每个加速数据块可独立构建,一个加速数据块构建完成即可用于加速,而无需等待所有的加速数据块构建完成。确保了并发业务查询的结果正确性,提升了加速效果,实现快速刷新结果集或中间结果集”。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
图2是本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
图3是本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
图4是本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
图5是本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
图6是本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
图7是本发明一实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的所述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人通过分析现有技术发现:
现有技术方案一:
通过Oracle物化视图实现;
Oracle物化视图是通过SQL语句提前计算结果集,并将结果集存储到物化视图对象中,当业务语句需要用到这个结果集时就可以通过优化器做语句改写从物化视图中获取结果集,而无需从原表查询数据再做计算,这能起到加速效果,物化视图在历史库分析场景中比较常用,但物化视图的更新能力有较多限制,使得其对于有更新操作的实时分析场景存在明显的短板。
该方案的缺点:
物化视图在原表数据修改后的刷新有多种方式,但都有一些缺点。
1.全量刷新方式:原表数据修改后,物化视图全量刷新,刷新代价很大。
2.基于修改日志的增量刷新方式:记录行级修改日志,刷新时将这些修改日志合并到已有的物化视图中。存放修改日志需要额外开销;此外,当修改量较多时,会使得增量刷新代价也很高;当出现分区表的分区维护等操作时,因无法记录行级修改日志,而无法使用这种刷新方式,需要退回到使用全量刷新方式。
3.基于分区表的分区刷新方式(partition change tracking,PCT):基于分区键等识别出修改的分区,仅对受影响的分区做物化视图刷新操作,不受影响的分区的物化视图可以继续提供加速服务。这里能提供更快的刷新能力,但PCT的使用有如下限制,这些限制使得PCT的使用对业务层感知且不通用。
a)原表必须是分区表。
b)分区类型必须是range或list或第一级为range/list类型的组合分区。
c)分区键只能包含一个字段。
d)物化视图查询列中需要包含分区键字段,或分区标记,或ROWID。
e)若物化视图包含group by,则分区键字段/分区标记/ROWID也必须在group by列中。
因此根据现有技术方案而言,还存在如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题。
参照图1,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:
S110、所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
S120、所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
S130、当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
在本申请的实施例中,相对于现有技术中的“如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题”,本申请提供了“逻辑数据块和加速数据块”的解决方案,具体为:“所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系”。通过“逻辑数据块和加速数据块”解决了“如何保证并发业务查询的结果正确性及加速效果,以及如何能快速刷新结果集或中间结果集是需要从技术上解决的问题”达到了“业务查询可自适应的部分访问加速数据块,部分访问逻辑数据块,可保持局部加速能力,且查询能返回正确结果,满足事务一致性要求。同时通过能够在后台自动构建暂时失效的加速数据块,构建完成后,该加速数据块即可用于业务查询加速。每个加速数据块可独立构建,一个加速数据块构建完成即可用于加速,而无需等待所有的加速数据块构建完成。确保了并发业务查询的结果正确性,提升了加速效果,实现快速刷新结果集或中间结果集”。
下面,将对本示例性实施例中一种基于逻辑数据块的数据查询方法作进一步地说明。
在本发明一实施例中,逻辑数据块:将源数据划分成细粒度的数据块进行存储和管理,每个数据块称为逻辑数据块Slice,这种划分由数据库系统完成,对业务层透明。
在本发明一实施例中,加速数据块:每个逻辑数据块按照定义的转换规则做数据模型转换,生成加速数据块AcSlice。业务通过访问加速数据块起到提速效果,且结果与访问逻辑数据块的结果一致。
在本发明一实施例中,Scan算子:扫描逻辑数据块中数据的方法。
在本发明一实施例中,AcSacn算子:扫描加速数据块中数据的方法。
在本发明一实施例中,将数据库内源数据划分为细粒度的逻辑数据块,称为Slice。通过定义数据模型转换规则函数F(D),由每个逻辑数据块生成加速数据块,称为AcSlice。逻辑数据块和加速数据块可以是一对一或多对一的映射关系,转换规则中可以包含条件只对逻辑数据块中部分数据做模型转换,也可以根据资源配置只对部分逻辑数据块进行转换。
在本发明一实施例中,当查询数据时,定义扫描源数据的逻辑数据块Slice的算子为Scan,扫描转换后的加速数据块AcSlice的算子为AcScan,定义函数G,使得G(AcScan)=Scan,且Scan(Slice)与AcScan(AcSlice)在数据逻辑上等价。
在本发明一实施例中,无论加速数据块构建是否已经完成,当有查询发生时可进入自适应的查询加速流程。该流程可在加速数据块已全部生效,或部分生效的情况下,自适应的扫描加速数据块和逻辑数据块,得到正确的查询结果,且保持尽可能的加速效果。
在本发明一实施例中,当确定所述加速数据块有效时,所述执行端依据所述加速数据块进行计算,并直至完成查询;在加速数据块有效时,可以直接使用加速数据块进行计算。
在本发明一实施例中,所述依据所述查询数据请求通过优化器生成AcScan算子的步骤,包括:
所述执行端依据所述优化器对所述查询数据请求进行代价评估确定是否使用所述服务器内的所述加速数据块;
当确定使用所述加速数据块时,所述执行端确定对应于所述加速数据块的算子树;
所述执行端依据所述算子树生成用于扫描所述加速数据块的所述AcScan算子。
在一具体实施例中,当查询数据时,通过优化器代价评估,若选择使用加速数据块的算子树时,生成扫描加速数据块的AcScan算子;执行端执行AcScan算子扫描加速数据块AcSlice。
在本发明一实施例中,所述依据函数G和映射关系列表构建目标加速数据块的步骤,包括:
所述执行端依据函数G在所述服务器中通过映射关系列表确定对应于所述加速数据块的逻辑数据块;
所述执行端依据所述逻辑数据块确定对应于所述逻辑数据块的Scan算子;
所述执行端通过所述Scan算子扫描确定所述逻辑数据块内的数据;
所述执行端将所述数据进行格式转换生成所述目标加速数据块。
在一具体实施例中,在查询加速执行时,对于已转换的数据,调用AcScan扫描加速数据块AcSlice,对于未转换或AcSlice短暂失效的情况,函数G转为扫描对应的逻辑数据块Slice,从而实现最终结果一致,且对已转换数据实现查询加速。
在一具体实现中,当加速数据块失效,则调用函数G转换为调用Scan算子扫描源数据的逻辑数据块Slice,来替换AcScan算子,保持Scan(Slice)与AcScan(AcSlice)在数据逻辑上等价,这个转换对优化器透明。一旦后台任务完成该加速数据块重建即可回到AcScan算子。由此实现逻辑数据块和加速数据块的自适应切换查询,而不会使业务查询失败,且尽可能获得加速效果;将通过Scan算子扫描逻辑数据块得到的数据转为加速数据块格式,以适应算子树上的后续算子;返回加速数据块用于计算,直到完成查询。
在本发明一实施例中,所述方法还包括:
当完成所述查询时,所述执行端依据所述目标加速数据块或所述加速数据块进行计算生成计算结果;
所述执行端依据所述计算结果生成查询结果,并将所述查询结果发送至所述客户端。
参照图2,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:
S210、所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
S220、所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
S230、所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
S240、当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
S250、所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
需要说明的是,所述服务器将源数据划分成多个细粒度的逻辑数据块进行存储和管理,这种划分对业务层透明,定义转换规则做数据模型转换,生成加速数据块,逻辑数据块与加速数据块存在一对一或多对一的映射关系。
在一具体实施例中,依据复杂查询中对数据库的访问字段及条件等信息定义数据模型转换规则,通过数据库系统提供的命令即创建命令创建数据模型转换规则;创建的数据模型转换规则,会在数据库内部记录下来;同时会创建出逻辑数据块与加速数据块的映射关系列表,该映射关系列表里包含每一个逻辑数据块与加速数据块的映射关系,以及加速数据块生效状态等,由此从映射关系列表即可看出哪些加速数据块已失效,且需要从哪些逻辑数据块来构建这个加速数据块;通知后台任务异步执行数据模型转换,生成加速数据块;后台线程收到通知后,开始执行任务,读取数据模型转换规则;根据逻辑数据块与加速数据块的映射关系及生效状态,识别出未生效的加速数据块,以及对应的逻辑数据块;从中扫描一个或多个逻辑数据块并根据转换规则生成加速数据块;根据逻辑数据块与加速数据块的映射关系,将生成的加速数据块作为独立加速数据块存储,或合并到已有的加速数据块。每完成一个加速数据块的构建,即在映射关系中将加速数据块置为生效状态。
在本发明一实施例中,所述方法还包括:
当对所述逻辑数据块内的数据进行修改后,所述服务器将对应于所述逻辑数据块的所述加速数据块在所述映射关系列表中标记为失效状态,并在所述映射关系列表中与所述加速数据块相关的所有映射关系都标记为失效状态;
所述服务器通过标记为所述失效状态的所述加速数据块确定对应于所述加速数据块的逻辑数据块;
所述服务器标记所述逻辑数据块为第二待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第二待生成数据块的第二新构建加速块;
所述服务器依据所述第二新构建加速块在对应的所述映射关系列表中将所述第二新构建加速块标记为生效状态。
在一具体实施例中,修改数据时,根据修改的逻辑数据块,将对应的加速数据块置为失效状态,同时在映射关系列表中找到与此加速数据块相关的所有映射关系,置为失效状态,由此即可获知需要从哪些逻辑数据块来重建该加速数据块;通知后台任务异步执行数据模型转换,识别失效的加速数据块并重建。
参照图3,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询方法的步骤流程图;
一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述方法涉及客户端、服务器和执行端,所述方法包括:
S310、所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
S320、所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
在一具体实施例中,客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端,接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
实施例一
这里以分析A国国内航班各运营商各航线的运载能力,实际旅客数,以及延误情况的汇总信息为例。查询语句如下:
SELECT
这里涉及两张表,segment表和on_time表。segment表包含航班航线、运载、旅客数等信息;on_time表包含航班延误情况等信息。在此系统中建表时,会将表数据划分成细粒度的逻辑数据块进行存储,每个逻辑数据块的记录数为200万条。
根据业务语句特点,我们针对segment表和on_time表分别创建以下数据模型转换规则。
在segment表上创建转换规则函数F1(D):
F1(D)=(ORIGIN_CITY_NAME,UNIQUE_CARRIER_NAME,AIRLINE_ID,DEST_COUNTRY,ORIGIN_COUNTRY,COUNT,SUM(PASSENGERS),SUM(SEATS))
在on_time表上创建转换规则函数F2(D):
F2(D)=(OriginCityName,DOT_ID_Reporting_Airline,COUNT,SUM(DepDelayMinutes),SUM(ArrDelayMinutes))
segment表根据转换规则函数F1(D),on_time表根据转换规则函数F2(D),各自从每个逻辑数据块生成对应的加速数据块,加速数据块里的记录数比逻辑数据块内的记录数要少很多,且带有在逻辑数据块内计算的COUNT,SUM聚合值。
上述查询语句生成的查询计划树中对segment表和on_time表的扫描算子会采用扫描加速数据块的AcScan算子。通过AcScan算子扫描segment表的加速数据块,即可获取计算所需的ORIGIN_CITY_NAME,UNIQUE_CARRIER_NAME,AIRLINE_ID,
DEST_COUNTRY,ORIGIN_COUNTRY列,以及SUM(PASSENGERS),SUM(SEATS)值。通过AcScan算子扫描on_time表的加速数据块,即可获取计算所需的OriginCityName,DOT_ID_Reporting_Airline列,以及SUM(DepDelayMinutes),SUM(ArrDelayMinutes)值。再将从各个加速数据块获取的数据做合并,叠加等二次计算,得到最终计算结果。
以segment表为例,当某个逻辑数据块有数据修改时,其对应的加速数据块标记为失效;并发查询时,发现加速数据块处于失效状态,则调用函数G自动转换为调用Scan算子扫描逻辑数据块,并从扫描结果中取出ORIGIN_CITY_NAME,UNIQUE_CARRIER_NAME,AIRLINE_ID,DEST_COUNTRY,ORIGIN_COUNTRY列,并给每条扫描到的记录增加COUNT,SUM(PASSENGERS),SUM(SEATS)值,组装成AcScan算子查询的结果格式,再交给上层算子进行计算;这里对于每条记录,COUNT取1,SUM(PASSENGERS)取PASSENGERS原值,SUM(SEATS)取SEATS原值。on_time表有数据修改时也类似。
对于失效状态的加速数据块,则通过映射关系列表找到对应的逻辑数据块,后台自动重新构建加速数据块。
观察查询语句中对segment表的查询带有常量条件ORIGIN_COUNTRY='US',如果这个条件在我们的复杂分析语句中比较常用,我们可以在segment表上创建带有条件的转换规则函数F1`(D),即只对满足条件的数据构建加速数据块:
F1`(D)=(ORIGIN_CITY_NAME,UNIQUE_CARRIER_NAME,AIRLINE_ID,DEST_COUNTRY,ORIGIN_COUNTRY,COUNT,SUM(PASSENGERS),SUM(SEATS))@ORIGIN_COUNTRY='US'
该转换规则函数会使加速数据块的记录数更少,加速效果更明显。但也一定程度限定了该转换规则函数的适用范围,不满足该条件的查询语句就不能使用该加速数据块,所以一般推荐只将复杂分析语句中比较常用的条件加到转换规则函数中。
通过配置等方式决定由N个逻辑数据块映射到1个加速数据块,形成N对1的映射关系,这会使加速数据块的数量更少,加速效果更明显。但相应的代价是有数据修改时,失效的加速数据块对应N个逻辑数据块,这N个逻辑数据块都会暂时没有此加速能力,且需要从N个逻辑数据块来重新构建此加速数据块,所以一般推荐对于数据修改很少的情况时使用N对1的方式来生成加速数据块。
本发明的技术效果:
1)本方案提供了一种基于逻辑数据块的数据查询方法,将源数据划分为细粒度的逻辑数据块,逻辑数据块划分对应用层透明。依据复杂查询中对数据库的访问字段及条件等信息定义转换规则做数据模型转换,生成加速数据块,逻辑数据块与加速数据块存在一对一或多对一的映射关系,通过加速数据块实现每个逻辑数据块的单独加速。转换规则中可以包含条件只对逻辑数据块中部分数据做模型转换,也可以根据资源配置只对部分逻辑数据块做模型转换。当部分逻辑数据块发生数据修改时,仅暂时失效其映射的加速数据块,不会引起事务锁等待,业务查询可自适应的部分访问加速数据块,部分访问逻辑数据块,可保持局部加速能力,且查询能返回正确结果,满足事务一致性要求。同时通过后台自动构建暂时失效的加速数据块,构建完成后,该加速数据块即可用于业务查询加速。每个加速数据块可独立构建,一个加速数据块构建完成即可用于加速,而无需等待所有的加速数据块构建完成。
2)本方案中不同的加速数据块可根据需要使用不同的数据结构。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图4,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一生成模块410,用于所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
第一确定模块420,用于所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
第一计算模块430,用于当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
在本发明一实施例中,所述第一生成模块410,包括:
第一确定子模块,用于所述执行端依据所述优化器对所述查询数据请求进行代价评估确定是否使用所述服务器内的所述加速数据块;
第二确定子模块,用于当确定使用所述加速数据块时,所述执行端确定对应于所述加速数据块的算子树;
第一生成子模块,用于所述执行端依据所述算子树生成用于扫描所述加速数据块的所述AcScan算子。
在本发明一实施例中,所述第一计算模块430,包括:
第三确定子模块,用于所述执行端依据函数G在所述服务器中通过映射关系列表确定对应于所述加速数据块的逻辑数据块;
第四确定子模块,用于所述执行端依据所述逻辑数据块确定对应于所述逻辑数据块的Scan算子;
第五确定子模块,用于所述执行端通过所述Scan算子扫描确定所述逻辑数据块内的数据;
第二生成子模块,用于所述执行端将所述数据进行格式转换生成所述目标加速数据块。
在本发明一实施例中,还包括:
第四生成模块440,用于当完成所述查询时,所述执行端依据所述目标加速数据块或所述加速数据块进行计算生成计算结果;
第五生成模块450,用于所述执行端依据所述计算结果生成查询结果,并将所述查询结果发送至所述客户端。
参照图5,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一构建模块510,用于所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
第二构建模块520,用于所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
第二确定模块530,用于所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
第二生成模块540,用于当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
第一标记模块550,用于所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
在本发明一实施例中,还包括:
第二标记模块560,用于当对所述逻辑数据块内的数据进行修改后,所述服务器将对应于所述逻辑数据块的所述加速数据块在所述映射关系列表中标记为失效状态,并在所述映射关系列表中与所述加速数据块相关的所有映射关系都标记为失效状态;
第三确定模块570,用于所述服务器通过标记为所述失效状态的所述加速数据块确定对应于所述加速数据块的逻辑数据块;
第三生成模块580,用于所述服务器标记所述逻辑数据块为第二待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第二待生成数据块的第二新构建加速块;
第三标记模块590,用于所述服务器依据所述第二新构建加速块在对应的所述映射关系列表中将所述第二新构建加速块标记为生效状态。
参照图6,示出了本申请一实施例提供的一种基于逻辑数据块的数据查询装置的结构框图;
一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,所述装置涉及客户端、服务器和执行端,所述装置包括:
第三生成模块610,用于所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
第一反馈模块620,用于所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
参照图7,示出了本发明的一种基于逻辑数据块的数据查询方法的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及外围组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)界面22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图7中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统34等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种基于逻辑数据块的数据查询方法。
也即,上述处理单元16执行上述程序时实现:所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
在本发明实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的一种基于逻辑数据块的数据查询方法:
也即,给程序被处理器执行时实现:所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机克顿信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种基于逻辑数据块的数据查询方法及其装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,其特征在于,所述方法涉及客户端、服务器和执行端,所述方法包括:
所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
2.根据权利要求1所述的方法,其特征在于,所述依据所述查询数据请求通过优化器生成AcScan算子的步骤,包括:
所述执行端依据所述优化器对所述查询数据请求进行代价评估确定是否使用所述服务器内的所述加速数据块;
当确定使用所述加速数据块时,所述执行端确定对应于所述加速数据块的算子树;
所述执行端依据所述算子树生成用于扫描所述加速数据块的所述AcScan算子。
3.根据权利要求1所述的方法,其特征在于,所述依据函数G和映射关系列表构建目标加速数据块的步骤,包括:
所述执行端依据函数G在所述服务器中通过映射关系列表确定对应于所述加速数据块的逻辑数据块;
所述执行端依据所述逻辑数据块确定对应于所述逻辑数据块的Scan算子;
所述执行端通过所述Scan算子扫描确定所述逻辑数据块内的数据;
所述执行端将所述数据进行格式转换生成所述目标加速数据块。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当完成所述查询时,所述执行端依据所述目标加速数据块或所述加速数据块进行计算生成计算结果;
所述执行端依据所述计算结果生成查询结果,并将所述查询结果发送至所述客户端。
5.一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块由源数据划分成若干个细粒度的逻辑数据块得到,其特征在于,所述方法涉及客户端、服务器和执行端,所述方法包括:
所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当对所述逻辑数据块内的数据进行修改后,所述服务器将对应于所述逻辑数据块的所述加速数据块在所述映射关系列表中标记为失效状态,并在所述映射关系列表中与所述加速数据块相关的所有映射关系都标记为失效状态;
所述服务器通过标记为所述失效状态的所述加速数据块确定对应于所述加速数据块的逻辑数据块;
所述服务器标记所述逻辑数据块为第二待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第二待生成数据块的第二新构建加速块;
所述服务器依据所述第二新构建加速块在对应的所述映射关系列表中将所述第二新构建加速块标记为生效状态。
7.一种基于逻辑数据块的数据查询方法,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,其特征在于,所述方法涉及客户端、服务器和执行端,所述方法包括:
所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
8.一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,其特征在于,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一生成模块,用于所述执行端接收所述客户端发送的查询数据请求,依据所述查询数据请求通过优化器生成AcScan算子;
第一确定模块,用于所述执行端依据所述AcScan算子对所述服务器内的加速数据块进行扫描,通过所述扫描确定所述加速数据块是否有效;
第一计算模块,用于当确定所述加速数据块无效时,所述执行端依据函数G以及接收所述服务器发送的映射关系列表构建目标加速数据块,依据所述目标加速数据块进行计算,直至完成查询;其中,所述函数G用于所述AcScan算子与对应于逻辑数据块的Scan算子之间保持等价关系。
9.一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,其特征在于,所述装置涉及客户端、服务器和执行端,所述装置包括:
第一构建模块,用于所述服务器通过接收所述数据库发送的创建命令,并依据所述创建命令构建数据模型转换规则;
第二构建模块,用于所述服务器将所述数据模型转换规则发送至所述数据库,并构建基于所述逻辑数据块的所述映射关系列表,将所述映射关系列表发送至所述执行端;
第二确定模块,用于所述服务器依据所述映射关系列表确定所述逻辑数据块是否存在对应于所述逻辑数据块的所述加速数据块;
第二生成模块,用于当所述逻辑数据块不存在对应的所述加速数据块时,则标记所述逻辑数据块为第一待生成数据块,所述服务器依据所述数据模型转换规则生成对应于所述第一待生成数据块的第一新构建加速块;
第一标记模块,用于所述服务器依据所述第一新构建加速块在对应的所述映射关系列表中将所述第一新构建加速块标记为生效状态。
10.一种基于逻辑数据块的数据查询装置,用于通过所述逻辑数据块实现数据库进行数据查询的查询加速,其中,所述逻辑数据块中包括通过源数据划分所得到若干个细粒度的逻辑数据块,其特征在于,所述装置涉及客户端、服务器和执行端,所述装置包括:
第三生成模块,用于所述客户端依据用户需求生成查询数据请求,并将所述查询数据请求发送至所述执行端;
第一反馈模块,用于所述客户端接收所述执行端发送的查询结果,并将所述查询结果反馈至对应的用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310877711.6A CN116821174B (zh) | 2023-07-17 | 2023-07-17 | 一种基于逻辑数据块的数据查询方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310877711.6A CN116821174B (zh) | 2023-07-17 | 2023-07-17 | 一种基于逻辑数据块的数据查询方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116821174A true CN116821174A (zh) | 2023-09-29 |
CN116821174B CN116821174B (zh) | 2024-07-19 |
Family
ID=88116693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310877711.6A Active CN116821174B (zh) | 2023-07-17 | 2023-07-17 | 一种基于逻辑数据块的数据查询方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821174B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425772A (zh) * | 2013-08-13 | 2013-12-04 | 东北大学 | 一种具有多维信息的海量数据查询方法 |
CN105144160A (zh) * | 2013-03-15 | 2015-12-09 | 甲骨文国际公司 | 利用闪存高速缓存中动态生成的替代数据格式加速查询的方法 |
US9633052B2 (en) * | 2013-05-17 | 2017-04-25 | Oracle International Corporation | System and method for decomposition of code generation into separate physical units though execution units |
CN108845957A (zh) * | 2018-03-30 | 2018-11-20 | 杭州电子科技大学 | 一种置换和回写自适应的缓冲区管理方法 |
CN109299131A (zh) * | 2018-11-14 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 一种支持可信计算的spark查询方法及系统 |
US20190042144A1 (en) * | 2018-08-22 | 2019-02-07 | Intel Corporation | Distributed storage location hinting for non-volatile memories |
CN110019314A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团湖南有限公司 | 基于数据项分析的动态数据封装方法、客户端和服务端 |
CN110268380A (zh) * | 2017-01-06 | 2019-09-20 | 甲骨文国际公司 | 跨云数据存储库的文件系统层次结构镜像 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
CN111444180A (zh) * | 2020-03-20 | 2020-07-24 | 复旦大学 | 一种双层结构的索引及其查询方法 |
CN112506568A (zh) * | 2016-12-31 | 2021-03-16 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN114817341A (zh) * | 2022-06-30 | 2022-07-29 | 北京奥星贝斯科技有限公司 | 访问数据库的方法和装置 |
CN115757533A (zh) * | 2022-10-18 | 2023-03-07 | 北京奥星贝斯科技有限公司 | 用于数据查询的数据过滤方法及装置 |
CN115964374A (zh) * | 2023-02-22 | 2023-04-14 | 深圳计算科学研究院 | 一种基于预计算场景的查询处理方法及其装置 |
-
2023
- 2023-07-17 CN CN202310877711.6A patent/CN116821174B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144160A (zh) * | 2013-03-15 | 2015-12-09 | 甲骨文国际公司 | 利用闪存高速缓存中动态生成的替代数据格式加速查询的方法 |
US9633052B2 (en) * | 2013-05-17 | 2017-04-25 | Oracle International Corporation | System and method for decomposition of code generation into separate physical units though execution units |
CN103425772A (zh) * | 2013-08-13 | 2013-12-04 | 东北大学 | 一种具有多维信息的海量数据查询方法 |
CN112506568A (zh) * | 2016-12-31 | 2021-03-16 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN110268380A (zh) * | 2017-01-06 | 2019-09-20 | 甲骨文国际公司 | 跨云数据存储库的文件系统层次结构镜像 |
CN110019314A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团湖南有限公司 | 基于数据项分析的动态数据封装方法、客户端和服务端 |
CN108845957A (zh) * | 2018-03-30 | 2018-11-20 | 杭州电子科技大学 | 一种置换和回写自适应的缓冲区管理方法 |
US20190042144A1 (en) * | 2018-08-22 | 2019-02-07 | Intel Corporation | Distributed storage location hinting for non-volatile memories |
CN109299131A (zh) * | 2018-11-14 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 一种支持可信计算的spark查询方法及系统 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
CN111444180A (zh) * | 2020-03-20 | 2020-07-24 | 复旦大学 | 一种双层结构的索引及其查询方法 |
CN114817341A (zh) * | 2022-06-30 | 2022-07-29 | 北京奥星贝斯科技有限公司 | 访问数据库的方法和装置 |
CN115757533A (zh) * | 2022-10-18 | 2023-03-07 | 北京奥星贝斯科技有限公司 | 用于数据查询的数据过滤方法及装置 |
CN115964374A (zh) * | 2023-02-22 | 2023-04-14 | 深圳计算科学研究院 | 一种基于预计算场景的查询处理方法及其装置 |
Non-Patent Citations (3)
Title |
---|
LIANG BAO等: "LAS: Logical-Block Affinity Scheduling in Big Data Analytics Systems", 《IEEE》, 11 October 2018 (2018-10-11), pages 522 - 530 * |
骆成蹊: "采用NAS架构优化VMware服务器虚拟化环境的存储管理", 《 电子科学技术 》, 10 May 2017 (2017-05-10) * |
骆成蹊: "采用NAS架构优化VMware服务器虚拟化环境的存储管理", 《电子科学技术》, 10 May 2017 (2017-05-10), pages 41 - 45 * |
Also Published As
Publication number | Publication date |
---|---|
CN116821174B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093631B2 (en) | Data access authority management method, apparatus, terminal device and storage medium | |
US10713253B2 (en) | ETL-less zero-redundancy system and method for reporting OLTP data | |
US8108367B2 (en) | Constraints with hidden rows in a database | |
US9672272B2 (en) | Method, apparatus, and computer-readable medium for efficiently performing operations on distinct data values | |
US10853368B2 (en) | Distinct value estimation for query planning | |
US11561973B2 (en) | Statistics based query transformation | |
US10824614B2 (en) | Custom query parameters in a database system | |
CN104933173B (zh) | 一种用于异构多数据源的数据处理方法、装置和服务器 | |
US10296497B2 (en) | Storing a key value to a deleted row based on key range density | |
US11803550B2 (en) | Workload-aware column imprints | |
US20240265022A1 (en) | Data query request processing method, electronic device, and storage medium | |
US8396858B2 (en) | Adding entries to an index based on use of the index | |
CN107220363B (zh) | 一种支持全局复杂检索的跨地域查询方法及系统 | |
CN116821174B (zh) | 一种基于逻辑数据块的数据查询方法及其装置 | |
CN116737753A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
US12061585B2 (en) | Systems and methods of modeling and querying dynamic temporal graph on massive parallel graph processing and storage engine | |
US10838947B2 (en) | Consistency check for foreign key definition | |
CN116431615A (zh) | 一种面向复杂业务场景的灵活数据分区路由方法 | |
CN113934729A (zh) | 一种基于知识图谱的数据管理方法、相关设备及介质 | |
CN110851424A (zh) | 一种数据服务系统 | |
CN117688032B (zh) | 基于物化视图的查询加速方法、装置、电子设备及介质 | |
CN114328755B (zh) | 一种数据写入方法、数据读取方法、装置及电子设备 | |
US11741312B2 (en) | Systems and methods for unsupervised paraphrase mining | |
CN114416738B (zh) | 一种基于关系型数据库的数据聚合方法以及装置 | |
CN118035270A (zh) | 数据查询方法、装置、软件程序、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |