CN102663114A - 面向并发olap的数据库查询处理方法 - Google Patents
面向并发olap的数据库查询处理方法 Download PDFInfo
- Publication number
- CN102663114A CN102663114A CN2012101136654A CN201210113665A CN102663114A CN 102663114 A CN102663114 A CN 102663114A CN 2012101136654 A CN2012101136654 A CN 2012101136654A CN 201210113665 A CN201210113665 A CN 201210113665A CN 102663114 A CN102663114 A CN 102663114A
- Authority
- CN
- China
- Prior art keywords
- predicate
- inquiry
- dimension
- olap
- concurrent
- 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
Images
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向并发OLAP的数据库查询处理方法,在基于谓词向量的内存OLAP星型连接优化基础上进行基于批量查询谓词向量位运算的并发OLAP查询处理。本发明在数据库管理系统中针对I/O性能和并行OLAP处理性能实现了并发查询处理优化技术,支持面向I/O性能来优化设置并发OLAP处理负载,从而提高了面向多样化OLAP查询的可预期处理性能,实现了基于谓词向量数组的并发查询星型连接位图过滤处理。
Description
技术领域
本发明涉及一种数据库查询处理方法,尤其涉及一种通过谓词向量的批量位处理技术,降低并发OLAP中星型连接的代价,提高并发查询处理能力的方法,属于数据库管理技术领域。
背景技术
当今,数据处理大致可以分成两类:联机事务处理(on-linetransaction processing,简写为OLTP)和联机分析处理(On-LineAnalytical Processing,简写为OLAP)。OLTP主要是日常的事务处理,例如银行交易。OLAP的设计目标是满足决策支持或者多维环境下特定的查询和报表需求。包括OLAP在内的诸多应用驱动了数据仓库技术的出现和发展;而数据仓库技术反过来又促进了OLAP技术的发展。
在OLAP中,I/O(输入/输出)是最主要的性能瓶颈。当并发查询独立地访问磁盘上的事实表时,大量的随机位置访问会产生巨大的磁盘寻道延迟,极大地降低磁盘的有效吞吐性能。目前,并发查询处理的主流技术是对慢速磁盘上的事实表I/O访问进行共享,并消除不同查询处理任务对磁盘访问的争用。在这个过程中,技术的关键是建立共享I/O上的并发查询处理代价模型,获得I/O延迟与缓存数据上的并发查询处理延迟之间的最佳负载匹配。但是,在OLAP中存在复杂的星型连接操作,导致并发查询处理的整体执行时间随查询的不同而难以预期,无法获得统一的并发查询处理代价模型。另外,在传统的磁盘数据库中,维表及查询处理中所涉及到的HASH聚集表等临时数据结构也需要磁盘访问,这又进一步降低了磁盘I/O的性能。
在共享I/O的情况下,并发查询处理所面临的关键技术挑战有三点:一是在查询处理时将维表需要的数据迁移到内存中,以消除或减少与事实表扫描所造成的I/O争用;二是优化设计OLAP查询处理算法,实现对不同选择率、不同维表连接数量、不同查询参数的多样化查询进行常量执行时间的可预期查询处理技术研究,消除不同查询之间的性能差异;三是建立可靠的共享I/O并发查询处理代价模型,根据数据库存储模型(行存储、列存储)和磁盘I/O性能(磁盘、SSD、RAID)设置合理的并发查询负载,优化系统资源。
可预期查询处理技术的一个代表性解决方案(IBM BLINK)是通过非规范化技术(denormalization)将维表和事实表进行预连接并进行压缩处理,从而将OLAP中的星型连接操作转换为行压缩数据上基于位操作的过滤和聚集处理,每条记录的过滤代价相同,能够获得接近常量的查询处理性能。该技术方案适用于完全只读模式的数据仓库。但对于当前日益增加的操作型OLAP处理来说,其物化数据的存储空间代价和维表更新导致的数据全部重构代价影响了该技术方案的可行性。另外,事实表记录与维表记录之间的参照完整性约束条件使维表在物化时产生大量重复数据,相同维表主键所对应的大量重复数据在物化表中需要进行大量的重复谓词计算,降低了CPU的效率。
可预期查询处理技术的另一个代表性技术方案是CJOIN,即通过将维表转换为共享的HASH过滤器和为HASH过滤器中的每一条记录附加并发查询谓词结果向量来标识该记录满足哪些查询的谓词表达式。OLAP中的星型连接操作在执行时将事实表的每一条记录依次推入每一个HASH过滤器,通过查询位向量的AND位运算来选择满足全部谓词条件的查询,并将结果集分发给各个查询对应的聚集器,从而完成分组聚集计算。该技术方案需要为查询组在每个维表上生成公共HASH聚集表,由于各个查询选择率和分组属性各不相同,公共HASH聚集表所包含的维属性数量较多,HASH聚集表的记录数量也较多,甚至HASH聚集表中可能需要存储全部的维表记录。这种公共HASH聚集表的膨胀会导致HASH过滤(HASH连接)的代价增大,HASH聚集表需要磁盘交换的可能性增大,查询的平均性能下降,每个HASH过滤器上的性能难以预测。当查询的选择率较低时,组查询需要在HASH过滤器之间传递大量的数据,甚至当最终查询位向量全为零时也需要HASH过滤器之间传递数据,但实际上只有查询位向量结果中非零位置对应的查询才需要使用HASH过滤器之间传递的全部数据,这就造成了大量内存带宽的浪费。
发明内容
本发明所要解决的技术问题在于提供一种面向并发OLAP的数据库查询处理方法。该方法通过谓词向量的批量位处理技术,降低并发OLAP中星型连接的代价,从而提高并发查询的处理能力。
为解决上述的技术问题,本发明采用下述的技术方案:
一种面向并发OLAP的数据库查询处理方法,在基于谓词向量的内存OLAP星型连接优化基础上进行基于批量查询谓词向量位运算的并发OLAP查询处理,其特征在于:
所述基于谓词向量的内存OLAP星型连接优化包括如下步骤:实现维表在内存中的加载;将查询中的谓词操作结果向量化;通过查询相关的多个维表上的谓词向量上的位运算来完成星型多表连接的过滤操作,选择满足条件的事实表记录;将维表主键映射为内存列存储维属性向量的内存偏移地址以实现对维表分组属性值的直接访问;
所述基于批量查询谓词向量位运算的并发OLAP查询处理包括如下步骤:在指定的时间窗口内将并发查询分组,以批处理方式执行查询;采用多位谓词向量存储并发查询组的谓词操作结果,其中谓词向量每一个数据项的每一位对应指定的查询谓词操作结果标识位,在执行星型连接位图过滤操作时以多位谓词向量为单位执行位操作,操作结果中1的位置表示满足全部维表中谓词条件的查询编号,调用谓词向量结果位中1对应的HASH聚集处理线程完成当前事实表记录上的迭代聚集计算。
其中较优地,在内存容量不够的情况下,按如下优先级进行维表内存化:分组属性→谓词操作属性→全部维属性。
所述分组属性和所述谓词操作属性在查询处理时通过增量的方式加载,并在内存维属性管理中按LRU策略淘汰访问频率低的维属性列以容纳新的维属性列。
其中较优地,维表被加载到内存后转换为内存维属性数组,数组下标与维表主键值一一对应,事实表的外键被直接映射为维属性列的下标;
每个维表预设一个谓词向量,每个查询在执行谓词操作时更新谓词向量内容,用1和0标识每条维表记录对当前查询谓词的满足状态。
其中较优地,将事实表的外键映射为谓词向量位图中指定的位,然后将多个谓词向量的位数据进行位运算,完成多个维表上星型连接结果的过滤判断。
其中较优地,按照并发查询任务的数量预先设置多位谓词向量,所述谓词向量中位的位置代表并发查询中的查询号,查询组中的查询完成谓词操作后,将谓词操作结果记录于谓词向量数组中每一个多位向量单元中与查询号相对应的位置。
其中较优地,对于顺序扫描的每一条事实表记录,根据外键值直接定位到相应维表的谓词向量数组的指定单元,然后将各维表谓词向量数组中指定单元的数据进行位运算,获得全局并发查询连接过滤结果。
其中较优地,根据所述全局并发查询连接过滤结果中位串中1的位置调用对应查询的HASH聚集处理线程,对当前事实表记录按实时抽取的维表分组属性值进行并行HASH聚集计算。
在所述并行HASH聚集计算中,为每一个查询分配一个HASH聚集处理线程,在该线程内创建HASH聚集表;多个HASH聚集处理线程共享多核处理器的处理核心,由操作系统为各HASH聚集处理线程动态分配处理核心资源。
或者,在所述并行HASH聚集计算中,为每一个并发查询组设置统一的HASH聚集处理接口,在统一的并发量查询处理线程内为每一个查询设置HASH聚集表,统一处理HASH聚集计算。
与现有技术相比较,本发明具有如下的有益效果:
1.OLAP的多表连接采用谓词向量上的流水线(pipeline)模式,不产生中间连接结果;
2.采用键值-地址映射保证连接操作的可预期性能,支持对分组属性的后物化访问策略;
3.谓词向量数组通过串行的位运算实现并发OLAP的连接处理过程,分组聚集操作由于查询整体的低选择率而减少执行次数,提高了并发查询处理的CPU效率。
附图说明
下面结合附图和具体实施方式对本发明做进一步的详细说明。
图1为基于谓词向量的内存OLAP星型连接优化示意图;
图2为基于批量查询谓词向量位运算的并发OLAP查询处理示意图;
图3为基于共享磁盘事实表扫描的并发OLAP查询处理示意图。
具体实施方式
前已述及,现有技术中并没有可靠的共享I/O并发查询处理代价模型,因此无法针对不同的存储模型和硬件设置进行优化设计。为此,本发明提供了一种面向并发OLAP的数据库查询处理方法(简称为DDTA-CJOIN方法)。该DDTA-CJOIN方法尤其适合在多核处理器平台中使用,包括基于谓词向量的内存OLAP星型连接优化和基于批量查询谓词向量位运算的并发OLAP查询处理两方面的技术内容,具体包括对OLAP的多表连接操作向量化,通过并发查询向量组的位操作完成并行星型连接处理和后续的HASH分组聚集处理等技术措施。下面对此展开详细的说明。
图1为本发明中基于谓词向量的内存OLAP星型连接优化示意图。所述基于谓词向量的内存OLAP星型连接优化技术用于提供基于内存存储结构的可预期OLAP查询处理性能,包括维表列存储技术、谓词向量技术、星型谓词向量位图过滤(bitmap filtering)技术、维属性地址映射和直接访问技术几个方面。其中,维表列存储技术用于实现内存列存储维表管理;谓词向量技术用于将查询中的谓词操作结果向量化;星型谓词向量位图过滤技术是指通过查询相关的多个维表上的谓词向量上的位运算来完成星型多表连接的过滤操作,选择满足条件的事实表记录;维属性地址映射和直接访问技术是指将维表主键映射为内存列存储维属性的内存偏移地址以实现对维表分组属性值的直接访问。具体说明如下:
(1)维表列存储管理
维表存储于磁盘数据库中,在查询处理时根据维表大小与内存可用容量选择维表的内存加载策略:
1)如果内存足够大,则将维表全部加载到内存中。在加载的过程中完成磁盘存储与内存存储的行/列转换,将维表存储于内存数组结构的列存储模型中。每个维表有独立的入口地址,可以实现通过偏移地址访问维属性列的任意数据项;
2)如果内存容量不足以容纳全部维表记录,则按如下优先级进行维表内存化:分组属性→谓词操作属性→全部维属性。
维属性在内存列中存储时可以应用数据压缩技术进一步降低内存消耗。分组属性和谓词操作属性可以在查询处理时通过增量的方式加载,并在内存维属性管理中按LRU(Least Recently Used,最近最少使用)策略淘汰访问频率低的维属性列以容纳新的维属性列。
(2)谓词向量管理
谓词向量管理是指为每一个维表生成一个附加的位图(bitmap),记录谓词表达式作用在当前维表的每一个记录上的结果,其中1表示满足所有谓词,0表示不满足,位图长度与维表行数相同。
如图1所示,维表被加载到内存转换为内存维属性数组,数组下标与维表主键值一一对应,事实表中的外键被直接映射为维属性列的下标。每个维表预设一个谓词向量(PreVec),每个查询在执行谓词操作时更新谓词向量内容,用1和0标识每条维表记录对当前查询谓词的满足状态。
维表谓词向量可以作为维表的一个附加结构供查询复用,即新的查询只需要更新谓词向量的位图内容而不用为每一个查询生成一个新的谓词向量。
在此需要说明的是,本发明中的向量相当于动态数组,两者的含义基本相同。
(3)星型谓词向量位图过滤
内存维属性列和谓词向量通过键值-地址映射将维表主键映射为维属性数组或位图下标。其技术支持是维表采用代理键结构,用自然序列1,2,3,…作为维表主键,不满足代理键要求的维表可以在ETL(Extract Transform Load,数据抽取、转换、装载)过程中进行转换,作为OLAP处理的一个基本模式约束条件。星型谓词向量位图过滤是指将事实表记录的外键映射为谓词向量位图中指定的位,然后将多个谓词向量的位数据进行AND(与)位运算,完成多个维表上星型连接结果的过滤判断。由于谓词向量采用位图存储,因此数据量很小,能够满足缓存(cache)运算的要求,因此谓词向量的访问顺序不影响星型谓词向量位图过滤的性能。
(4)维属性地址映射和直接访问
根据代理键特性,在分组维属性列上可以直接按照事实表外键值映射的内存维属性数组偏移地址进行访问。因此在OLAP查询处理时,采用私有的谓词向量和共享的分组维属性列这一策略,能够将传统HASH连接中提前物化的策略改进为先执行星型谓词向量位图过滤的连接操作,再执行后物化分组聚集策略,从而可以保证满足所有连接过滤条件的事实表记录,仅在最后阶段才访问维表分组属性。
(5)HASH分组聚集
将抽取出的维表分组属性和事实表度量属性组合为查询结果记录,通过HASH聚集器进行聚集计算。
参见图1所示,基于上述的内存OLAP星型连接优化技术,OLAP的查询处理过程被分为三个阶段:(1)通过事实表记录外键映射谓词向量完成星型连接位图过滤。如事实表记录[2,2,1,12121]中的三个外键值2,2,1分别映射到维表customer,supplier,date谓词向量的第2,2,1位,并将三个位置中的位数据进行AND位操作(1AND1AND 1)。(2)如果结果为0则跳过后续处理过程,继续处理下一条事实表记录;如果位操作结果为1,通过SQL中的分组属性直接访问分组维属性列c_nation,s_nation,d_year中下标为2,2,1的单元,抽取出分组属性[“China”,“Russia”,1997]并与度量属性值12121合并为查询结果[“China”,”Russia”,1997,12121]。(3)将查询结果推到HASH聚集器,由HASH函数映射到对应HASH桶的分组单元中进行聚集计算。
图2为本发明中基于批量查询谓词向量位运算的并发OLAP查询处理示意图。所述基于批量查询谓词向量位运算的并发OLAP查询处理技术以谓词向量数组上的位运算为基础实现并发查询处理,具体包括并发查询汇集操作、谓词向量数组、基于位运算的并发查询星型连接位图过滤和并行HASH聚集处理几个方面。其中,并发查询汇集操作是在指定的时间窗口内将并发查询分组,查询以批处理方式执行。谓词向量数组指采用多位谓词向量存储并发查询组的谓词操作结果,谓词向量每一个数据项的每一位对应指定的查询谓词操作结果标识位。基于位运算的并发查询星型连接位图过滤是指在执行星型连接位图过滤操作时以多位谓词向量为单位执行AND(与)位操作,操作结果中1的位置表示满足全部维表中谓词条件的查询编号。并行HASH聚集处理是指调用谓词向量结果位中1对应的HASH聚集处理线程完成当前事实表记录上的迭代聚集计算。具体说明如下:
(1)事实表的顺序扫描或循环扫描
事实表为所有并发OLAP查询任务提供公共的数据源。并发OLAP查询任务可以采用聚集分组批处理方式,也可以通过独立的OLAP处理线程共享事实表扫描。如果事实表存储于外部存储设备,如磁盘或SSD(固态硬盘),事实表共享扫描的I/O操作与内存并发OLAP处理线程需要同步以保证I/O的数据供给与CPU的数据消费速度相匹配。
(2)并发查询汇集操作
并发查询汇集操作在系统规定的时间窗口中汇集并发查询任务,并进行OLAP查询的规范化。如图2所示,并发查询汇集操作汇聚并发查询任务,并按并发查询汇集窗口设置并发查询组。
前已述及,基于谓词向量的内存OLAP星型连接优化技术将OLAP查询统一为谓词生成、星型连接位图过滤连接和HASH聚集三个过程。每个OLAP查询的查询执行计划完全相同,只是谓词向量的内容和HASH聚集中分组属性参数的变化,因此并发查询的汇集操作不必象传统技术一样需要按查询相似度进行聚集。并发查询汇集操作可以设置两个线程,一个用于将汇集后的查询任务多核并行处理,一个用于汇集当前查询任务。两个并发查询汇集操作的汇集操作与执行操作的角色在并发查询执行完毕后动态切换。
(3)谓词向量数组
谓词向量数组按照并发查询任务的数量预先设置多位谓词向量结构,谓词向量位的位置代表并发查询中的查询号,查询组中的查询完成谓词操作后,将谓词操作结果记录于谓词向量数组中每一个多位向量单元中与查询号相对应的位置。
在图2中以8个查询为例。根据查询任务数量设置谓词向量数组的向量宽度,本实施例中采用8位的byte类型数组作为谓词向量数组。并发查询组中的查询分别在各个维表(维表1~维表4)上执行谓词操作,在每个维表上将每条记录上的谓词执行结果记录在第i位上,与查询任务编号对应。如果查询在某个维表上没有谓词操作则将该维表所对应的谓词向量数组中各向量单元的该位都标记为1。
(4)谓词向量数组星型连接位图过滤
对于顺序扫描的每一条事实表记录,根据外键值直接定位到相应维表的谓词向量数组的指定单元,然后将各维表谓词向量数组中指定单元的数据进行位运算,获得全局并发查询连接过滤结果。
在图2所示的实施例中,顺序扫描事实表。对于当前记录,如图2中所示的[3,4,2,5,7.8],根据四个外键属性值3,4,2,5定位四个维表所对应的谓词向量数组(byte数组)的第3,4,2,5个向量单元。将四个向量的byte数据进行位运算中的AND(与)操作(或SQL中定义的其他谓词操作),得到全局查询结果向量[00100010]。经解析为查询Q3与查询Q 7满足当前记录上的连接位图过滤,调用Q3与Q7的查询处理线程完成HASH分组的聚集计算。
(5)并行HASH聚集计算
根据全局并发查询连接过滤结果中位串中1的位置调用对应查询的HASH聚集处理线程,对当前事实表记录按实时抽取的维表分组属性值进行并行HASH聚集计算。
并行HASH聚集计算有两种方式:
1)为每一个查询分配一个HASH聚集处理线程,在该线程内创建HASH聚集表。每个线程独立维护HASH聚集表,用于独立完成HASH聚集计算。多个HASH聚集处理线程共享多核处理器的处理核心,由操作系统为各HASH聚集处理线程动态分配处理核心资源,如图2下部所示。在扫描每一条事实表记录后,根据全局并发查询连接过滤结果位串中为1的位置来动态调用对应的HASH聚集处理线程。
上述方式在每一条事实表记录扫描处理时需要调用不同的处理线程,会产生较多的线程切换操作。
2)为每一个并发查询组设置统一的HASH聚集处理接口,在统一的并发量查询处理线程内为每一个查询设置HASH聚集表,统一处理HASH聚集计算。在图2所示的实施例中,在当前查询组的查询处理线程内为8个查询创建8个HASH聚集表,在查询处理线程内按连接位图过滤结果位串中1的位置将事实表记录所产生的聚集计算结果送入指定的HASH聚集表中进行聚集计算。
上述方式将整个查询组的处理整合为一个串行处理线程,在系统并发查询负载强度大时可以在系统中配置多个处理线程来支持更大粒度的并发查询处理。
参见图3所示,在基于共享磁盘事实表循环扫描的情况下,由于事实表数据块缓存在内存(对应内存中的维表D1、D2、D3等)中,假设I/O延迟为T,对内存中缓存的事实表记录扫描时使用本发明所述方法进行并发OLAP查询处理的时间为t。当T>t时,可以增加并发查询任务,以使在一个事实表I/O延迟内处理尽可能多的OLAP查询任务,达到CPU性能与I/O性能的平衡。当T=t时达到平衡的代价匹配,此时I/O访问不需要为并发线程(如图3中的线程-0、线程-1、线程-2、线程-3等)同步而等待,I/O利用率最高,磁盘表现为连续的顺序访问。
在实践中,磁盘I/O的延迟可以计算和测试出来,基于谓词向量的OLAP查询处理的执行时间接近常量,可以通过查询测试出具体的延迟,查询组的谓词向量数组并发查询需要根据选择率预估并行HASH聚集计算的CPU延迟,然后根据I/O延迟和CPU延迟估算出并发查询的负载强度。
当事实表采用行存储时,I/O发生在单个数据文件上。当事实表采用列存储时,I/O缓存为相关列的缓存数据块,列数据的缓存需要根据列数据存储方式的不同而采用不同的策略。当列数据的数据宽度不同、压缩效率不同时,每一个列数据块内的记录数量不相同,因此在数据块缓存中需要以相同的行数为粒度进行缓存,例如一次性读入4K行数据对应的各列块,每一列的块数可能不同,但各列的行记录数量相同,因此将这些不同数量的列块作为I/O访问和缓存的单位,供并发查询处理线程共享访问。
与现有技术相比较,本发明在数据库管理系统中针对I/O性能和并行OLAP处理性能实现了并发查询处理优化技术,支持面向I/O性能来优化设置并发OLAP处理负载,从而提高了面向多样化OLAP查询的可预期处理性能,实现了基于谓词向量数组的并发查询星型连接位图过滤处理。
以上对本发明所提供的面向并发OLAP的数据库查询处理方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (10)
1.一种面向并发OLAP的数据库查询处理方法,在基于谓词向量的内存OLAP星型连接优化基础上进行基于批量查询谓词向量位运算的并发OLAP查询处理,其特征在于:
所述基于谓词向量的内存OLAP星型连接优化包括如下步骤:实现维表在内存中的加载;将查询中的谓词操作结果向量化;通过查询相关的多个维表上的谓词向量上的位运算来完成星型多表连接的位图过滤操作,选择满足条件的事实表记录;将维表主键映射为内存列存储维属性的内存偏移地址以实现对维表分组属性值的直接访问;
所述基于批量查询谓词向量位运算的并发OLAP查询处理包括如下步骤:在指定的时间窗口内将并发查询分组,以批处理方式执行查询;采用多位谓词向量存储并发查询组的谓词操作结果,其中谓词向量每一个数据项的每一位对应指定的查询谓词操作结果标识位,在执行星型连接位图过滤操作时以多位谓词向量为单位执行位操作,操作结果中1的位置表示满足全部维表中谓词条件的查询编号,调用谓词向量结果位中1对应的HASH聚集处理线程完成当前事实表记录上的迭代聚集计算。
2.如权利要求1所述的面向并发OLAP的数据库查询处理方法,其特征在于:
在内存容量不够的情况下,按如下优先级进行维表内存化:分组属性→谓词操作属性→全部维属性。
3.如权利要求2所述的面向并发OLAP的数据库查询处理方法,其特征在于:
所述分组属性和所述谓词操作属性在查询处理时通过增量的方式加载,并在内存维属性管理中按LRU策略淘汰访问频率低的维属性列以容纳新的维属性列。
4.如权利要求1所述的面向并发OLAP的数据库查询处理方法,其特征在于:
维表被加载到内存后转换为内存维属性数组,数组下标与维表主键值一一对应,事实表的外键被直接映射为维属性列的下标;
每个维表预设一个谓词向量,每个查询在执行谓词操作时更新谓词向量内容,用1和0标识每条维表记录对当前查询谓词的满足状态。
5.如权利要求4所述的面向并发OLAP的数据库查询处理方法,其特征在于:
将事实表的外键映射为谓词向量位图中指定的位,然后将多个谓词向量的位数据进行位运算,完成多个维表上星型连接结果的过滤判断。
6.如权利要求1所述的面向并发OLAP的数据库查询处理方法,其特征在于:
按照并发查询任务的数量预先设置多位谓词向量,所述谓词向量中位的位置代表并发查询中的查询号,查询组中的查询完成谓词操作后,将谓词操作结果记录于谓词向量数组中每一个多位向量单元中与查询号相对应的位置。
7.如权利要求1所述的面向并发OLAP的数据库查询处理方法,其特征在于:
对于顺序扫描的每一条事实表记录,根据外键值直接定位到相应维表的谓词向量数组的指定单元,然后将各维表谓词向量数组中指定单元的数据进行位运算,获得全局并发查询连接过滤结果。
8.如权利要求7所述的面向并发OLAP的数据库查询处理方法,其特征在于:
根据所述全局并发查询连接过滤结果中位串中1的位置调用对应查询的HASH聚集处理线程,对当前事实表记录按实时抽取的维表分组属性值进行并行HASH聚集计算。
9.如权利要求8所述的面向并发OLAP的数据库查询处理方法,其特征在于:
在所述并行HASH聚集计算中,为每一个查询分配一个HASH聚集处理线程,在该线程内创建HASH聚集表;多个HASH聚集处理线程共享多核处理器的处理核心,由操作系统为各HASH聚集处理线程动态分配处理核心资源。
10.如权利要求8所述的面向并发OLAP的数据库查询处理方法,其特征在于:
在所述并行HASH聚集计算中,为每一个并发查询组设置统一的HASH聚集处理接口,在统一的并发量查询处理线程内为每一个查询设置HASH聚集表,统一处理HASH聚集计算。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101136654A CN102663114B (zh) | 2012-04-17 | 2012-04-17 | 面向并发olap的数据库查询处理方法 |
US13/514,293 US8762407B2 (en) | 2012-04-17 | 2012-05-16 | Concurrent OLAP-oriented database query processing method |
PCT/CN2012/075620 WO2013155751A1 (zh) | 2012-04-17 | 2012-05-16 | 面向并发olap的数据库查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101136654A CN102663114B (zh) | 2012-04-17 | 2012-04-17 | 面向并发olap的数据库查询处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663114A true CN102663114A (zh) | 2012-09-12 |
CN102663114B CN102663114B (zh) | 2013-09-11 |
Family
ID=46772605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101136654A Active CN102663114B (zh) | 2012-04-17 | 2012-04-17 | 面向并发olap的数据库查询处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102663114B (zh) |
WO (1) | WO2013155751A1 (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN103309958A (zh) * | 2013-05-28 | 2013-09-18 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN103631911A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民大学 | 基于数组存储和向量处理的olap查询处理方法 |
CN103823834A (zh) * | 2013-12-03 | 2014-05-28 | 华为技术有限公司 | 一种哈希连接算子间数据传递的方法及装置 |
CN103942342A (zh) * | 2014-05-12 | 2014-07-23 | 中国人民大学 | 一种内存数据库oltp&olap并发查询优化方法 |
CN104008178A (zh) * | 2014-06-09 | 2014-08-27 | 中国工商银行股份有限公司 | 一种数据的动态加载处理方法及系统 |
CN104361113A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种内存-闪存混合存储模式下的olap查询优化方法 |
CN104408375A (zh) * | 2014-10-29 | 2015-03-11 | 李梅 | 数据散列值获取方法与装置 |
CN104424258A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多维数据查询的方法、查询服务器、列存储服务器及系统 |
WO2015048925A1 (en) * | 2013-10-03 | 2015-04-09 | Huawei Technologies Co., Ltd. | A method of optimizing queries execution on a data store |
CN104657426A (zh) * | 2015-01-22 | 2015-05-27 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
CN104937593A (zh) * | 2013-02-19 | 2015-09-23 | 华为技术有限公司 | 用于数据库搜索的系统和方法 |
CN105404634A (zh) * | 2014-09-15 | 2016-03-16 | 南京理工大学 | 基于Key-Value数据块的数据管理方法及系统 |
CN105701200A (zh) * | 2016-01-12 | 2016-06-22 | 中国人民大学 | 一种内存云计算平台上的数据仓库安全olap方法 |
CN106802900A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 基于星形数据库的检索方法及装置 |
CN106874437A (zh) * | 2017-02-04 | 2017-06-20 | 中国人民大学 | 面向数据库一体机的内存数据仓库行列存储转换实现方法 |
CN106874332A (zh) * | 2016-08-10 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 数据库访问方法和装置 |
CN106897293A (zh) * | 2015-12-17 | 2017-06-27 | 中国移动通信集团公司 | 一种数据处理方法和装置 |
CN106997386A (zh) * | 2017-03-28 | 2017-08-01 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN107609746A (zh) * | 2017-08-18 | 2018-01-19 | 云南电网有限责任公司物资部 | 基于数据olap分析及配套检索的智能化招投标方法 |
CN107818155A (zh) * | 2017-10-27 | 2018-03-20 | 许继电气股份有限公司 | 一种配电主站及配电主站数据的存储方法 |
CN107908628A (zh) * | 2017-06-12 | 2018-04-13 | 上海壹账通金融科技有限公司 | 电子装置、信息查询控制方法和计算机可读存储介质 |
CN108520050A (zh) * | 2018-03-30 | 2018-09-11 | 北京邮电大学 | 一种基于二维定位的Merkle树缓存装置及其对Merkle树的操作方法 |
CN108681587A (zh) * | 2018-05-14 | 2018-10-19 | 五八有限公司 | bitmap生成方法、装置、设备及存储介质 |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
CN108829747A (zh) * | 2018-05-24 | 2018-11-16 | 新华三大数据技术有限公司 | 数据加载方法及装置 |
CN110263038A (zh) * | 2019-06-11 | 2019-09-20 | 中国人民大学 | 一种基于分组向量的哈希多表连接实现方法 |
WO2020147335A1 (zh) * | 2019-01-16 | 2020-07-23 | 苏宁云计算有限公司 | 用于电商平台的会员数据圈选方法及系统 |
CN113157541A (zh) * | 2021-04-20 | 2021-07-23 | 贵州优联博睿科技有限公司 | 面向分布式数据库的多并发olap型查询性能预测方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977175B (zh) * | 2019-03-20 | 2021-06-01 | 跬云(上海)信息科技有限公司 | 数据配置查询方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139061A1 (en) * | 2003-01-13 | 2004-07-15 | International Business Machines Corporation | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine |
US20090006331A1 (en) * | 2007-06-29 | 2009-01-01 | Ariel Fuxman | Entity-based business intelligence |
CN101710273A (zh) * | 2009-10-28 | 2010-05-19 | 金蝶软件(中国)有限公司 | 联机分析处理服务器中多维查询语句的解析方法和装置 |
CN102360379A (zh) * | 2011-10-10 | 2012-02-22 | 浙江鸿程计算机系统有限公司 | 一种多维数据立方体增量聚合及查询优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100595764C (zh) * | 2008-01-09 | 2010-03-24 | 王珊 | 利用连接表压缩数据图的方法和设备 |
-
2012
- 2012-04-17 CN CN2012101136654A patent/CN102663114B/zh active Active
- 2012-05-16 WO PCT/CN2012/075620 patent/WO2013155751A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139061A1 (en) * | 2003-01-13 | 2004-07-15 | International Business Machines Corporation | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine |
US20090006331A1 (en) * | 2007-06-29 | 2009-01-01 | Ariel Fuxman | Entity-based business intelligence |
CN101710273A (zh) * | 2009-10-28 | 2010-05-19 | 金蝶软件(中国)有限公司 | 联机分析处理服务器中多维查询语句的解析方法和装置 |
CN102360379A (zh) * | 2011-10-10 | 2012-02-22 | 浙江鸿程计算机系统有限公司 | 一种多维数据立方体增量聚合及查询优化方法 |
Non-Patent Citations (2)
Title |
---|
张延松 等: "基于内存数据库的OLAP并行查询处理技术研究", 《第26届中国数据库学术会议论文集(A辑)》 * |
张延松 等: "海量数据分析的One-size-fits-all OLAP技术", 《计算机学报》 * |
Cited By (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937593A (zh) * | 2013-02-19 | 2015-09-23 | 华为技术有限公司 | 用于数据库搜索的系统和方法 |
CN103309958A (zh) * | 2013-05-28 | 2013-09-18 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN103309958B (zh) * | 2013-05-28 | 2016-06-29 | 中国人民大学 | Gpu和cpu混合架构下的olap星型连接查询优化方法 |
CN103294831B (zh) * | 2013-06-27 | 2016-06-29 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN104424258A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多维数据查询的方法、查询服务器、列存储服务器及系统 |
WO2015048925A1 (en) * | 2013-10-03 | 2015-04-09 | Huawei Technologies Co., Ltd. | A method of optimizing queries execution on a data store |
CN103631911A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民大学 | 基于数组存储和向量处理的olap查询处理方法 |
CN103631911B (zh) * | 2013-11-27 | 2017-11-03 | 中国人民大学 | 基于数组存储和向量处理的olap查询处理方法 |
CN103823834A (zh) * | 2013-12-03 | 2014-05-28 | 华为技术有限公司 | 一种哈希连接算子间数据传递的方法及装置 |
CN103823834B (zh) * | 2013-12-03 | 2017-04-26 | 华为技术有限公司 | 一种哈希连接算子间数据传递的方法及装置 |
CN103942342A (zh) * | 2014-05-12 | 2014-07-23 | 中国人民大学 | 一种内存数据库oltp&olap并发查询优化方法 |
CN103942342B (zh) * | 2014-05-12 | 2017-02-01 | 中国人民大学 | 一种内存数据库oltp&olap并发查询优化方法 |
CN104008178B (zh) * | 2014-06-09 | 2017-07-14 | 中国工商银行股份有限公司 | 一种数据的动态加载处理方法及系统 |
CN104008178A (zh) * | 2014-06-09 | 2014-08-27 | 中国工商银行股份有限公司 | 一种数据的动态加载处理方法及系统 |
CN105404634A (zh) * | 2014-09-15 | 2016-03-16 | 南京理工大学 | 基于Key-Value数据块的数据管理方法及系统 |
CN105404634B (zh) * | 2014-09-15 | 2019-02-22 | 南京理工大学 | 基于Key-Value数据块的数据管理方法及系统 |
CN104408375A (zh) * | 2014-10-29 | 2015-03-11 | 李梅 | 数据散列值获取方法与装置 |
CN104361113B (zh) * | 2014-12-01 | 2017-06-06 | 中国人民大学 | 一种内存‑闪存混合存储模式下的olap查询优化方法 |
CN104361113A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种内存-闪存混合存储模式下的olap查询优化方法 |
CN104657426A (zh) * | 2015-01-22 | 2015-05-27 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
CN104657426B (zh) * | 2015-01-22 | 2018-07-03 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
CN106802900A (zh) * | 2015-11-26 | 2017-06-06 | 北京国双科技有限公司 | 基于星形数据库的检索方法及装置 |
CN106802900B (zh) * | 2015-11-26 | 2020-11-06 | 北京国双科技有限公司 | 基于星形数据库的检索方法及装置 |
CN106897293B (zh) * | 2015-12-17 | 2020-09-11 | 中国移动通信集团公司 | 一种数据处理方法和装置 |
CN106897293A (zh) * | 2015-12-17 | 2017-06-27 | 中国移动通信集团公司 | 一种数据处理方法和装置 |
CN105701200A (zh) * | 2016-01-12 | 2016-06-22 | 中国人民大学 | 一种内存云计算平台上的数据仓库安全olap方法 |
CN105701200B (zh) * | 2016-01-12 | 2019-08-20 | 中国人民大学 | 一种内存云计算平台上的数据仓库安全olap方法 |
CN106874332A (zh) * | 2016-08-10 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 数据库访问方法和装置 |
CN106874332B (zh) * | 2016-08-10 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 数据库访问方法和装置 |
CN106874437A (zh) * | 2017-02-04 | 2017-06-20 | 中国人民大学 | 面向数据库一体机的内存数据仓库行列存储转换实现方法 |
CN106997386A (zh) * | 2017-03-28 | 2017-08-01 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN106997386B (zh) * | 2017-03-28 | 2019-12-27 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
US11132346B2 (en) | 2017-04-14 | 2021-09-28 | Huawei Technologies Co., Ltd. | Information processing method and apparatus |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
CN108733681B (zh) * | 2017-04-14 | 2021-10-22 | 华为技术有限公司 | 信息处理方法及装置 |
CN107908628A (zh) * | 2017-06-12 | 2018-04-13 | 上海壹账通金融科技有限公司 | 电子装置、信息查询控制方法和计算机可读存储介质 |
CN107609746A (zh) * | 2017-08-18 | 2018-01-19 | 云南电网有限责任公司物资部 | 基于数据olap分析及配套检索的智能化招投标方法 |
CN107818155A (zh) * | 2017-10-27 | 2018-03-20 | 许继电气股份有限公司 | 一种配电主站及配电主站数据的存储方法 |
CN108520050A (zh) * | 2018-03-30 | 2018-09-11 | 北京邮电大学 | 一种基于二维定位的Merkle树缓存装置及其对Merkle树的操作方法 |
CN108681587A (zh) * | 2018-05-14 | 2018-10-19 | 五八有限公司 | bitmap生成方法、装置、设备及存储介质 |
CN108681587B (zh) * | 2018-05-14 | 2023-01-13 | 五八有限公司 | bitmap生成方法、装置、设备及存储介质 |
CN108829747A (zh) * | 2018-05-24 | 2018-11-16 | 新华三大数据技术有限公司 | 数据加载方法及装置 |
CN108829747B (zh) * | 2018-05-24 | 2019-09-17 | 新华三大数据技术有限公司 | 数据加载方法及装置 |
WO2020147335A1 (zh) * | 2019-01-16 | 2020-07-23 | 苏宁云计算有限公司 | 用于电商平台的会员数据圈选方法及系统 |
CN110263038B (zh) * | 2019-06-11 | 2021-06-15 | 中国人民大学 | 一种基于分组向量的哈希多表连接实现方法 |
CN110263038A (zh) * | 2019-06-11 | 2019-09-20 | 中国人民大学 | 一种基于分组向量的哈希多表连接实现方法 |
CN113157541A (zh) * | 2021-04-20 | 2021-07-23 | 贵州优联博睿科技有限公司 | 面向分布式数据库的多并发olap型查询性能预测方法及系统 |
CN113157541B (zh) * | 2021-04-20 | 2024-04-05 | 贵州优联博睿科技有限公司 | 面向分布式数据库的多并发olap型查询性能预测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2013155751A1 (zh) | 2013-10-24 |
CN102663114B (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663114B (zh) | 面向并发olap的数据库查询处理方法 | |
Ji et al. | Big data processing: Big challenges and opportunities | |
US8762407B2 (en) | Concurrent OLAP-oriented database query processing method | |
CN103294831B (zh) | 列存储数据库中基于多维数组的分组聚集计算方法 | |
CN102737033B (zh) | 数据处理设备及其数据处理方法 | |
US8935232B2 (en) | Query execution systems and methods | |
CN102663117B (zh) | 面向数据库与Hadoop混合平台的OLAP查询处理方法 | |
CN103631870B (zh) | 一种用于大规模分布式数据处理的系统及其方法 | |
CN105868388B (zh) | 一种基于fpga的内存olap查询优化方法 | |
CN103309958B (zh) | Gpu和cpu混合架构下的olap星型连接查询优化方法 | |
CN103942342A (zh) | 一种内存数据库oltp&olap并发查询优化方法 | |
CN107133342A (zh) | 一种IndexR实时数据分析库 | |
Rusu et al. | A survey on array storage, query languages, and systems | |
US20040117037A1 (en) | Asymmetric streaming record data processor method and apparatus | |
WO2013152543A1 (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
CN104239572A (zh) | 基于分布式缓存实现元数据分析的系统及方法 | |
WO2004072810A2 (en) | Materialized view system and method | |
Samwel et al. | F1 query: Declarative querying at scale | |
CN105205105A (zh) | 一种基于storm的数据ETL系统及处理方法 | |
Chattopadhyay et al. | Procella: Unifying serving and analytical data at YouTube | |
CN102479225A (zh) | 一种分布式数据分析和处理方法及系统 | |
CN107480202B (zh) | 一种用于多并行处理框架的数据处理方法及装置 | |
CN103838781A (zh) | 数据库访问方法及系统 | |
Perera et al. | A fast, scalable, universal approach for distributed data aggregations | |
Gracia-Tinedo et al. | Lamda-flow: Automatic pushdown of dataflow operators close to the data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |