CN104361118B - 一种适应协处理器的混合olap查询处理方法 - Google Patents
一种适应协处理器的混合olap查询处理方法 Download PDFInfo
- Publication number
- CN104361118B CN104361118B CN201410720029.7A CN201410720029A CN104361118B CN 104361118 B CN104361118 B CN 104361118B CN 201410720029 A CN201410720029 A CN 201410720029A CN 104361118 B CN104361118 B CN 104361118B
- Authority
- CN
- China
- Prior art keywords
- dimension
- dimensional
- data
- cube
- multidimensional
- 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.)
- Active
Links
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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- 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/221—Column-oriented storage; Management thereof
-
- 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/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种适应协处理器的混合OLAP查询处理方法,采用MOLAP模型将多维数据集组织为空间CUBE,每一个存储单元对应唯一的多维空间坐标;构建虚拟多维数据CUBE;将事实数据压缩存储;将n个维坐标ID和度量属性存储为列数组;在semi‑MOLAP模型中多维查询的处理过程被分解为构建虚拟数据CUBE、n维过滤和聚集计算,通过创建维过滤向量、维坐标ID列在维过滤向量上的过滤操作以及基于度量索引的聚集计算实现基于数组和向量的简单计算过程,并将其中数据量少但计算量较大的n维过滤操作分配给Coprocessor执行;在并发查询处理时,CPU与Coprocessor上的计算能够实现流水并行处理。本发明支持多维查询处理,能有效提高大数据存储、访问和处理效率,可以广泛在GPU、GPGPU以及新的Intel Phi Coprocessor平台中应用。
Description
技术领域
本发明涉及一种数据库领域中OLAP(联机分析处理)查询处理方法,特别是关于一种基于数组存储和向量计算的适应协处理器(Coprocessor,包括GPU图形处理器和英特尔Phi协处理器)的混合OLAP查询处理方法。
背景技术
性能是数据库最重要的指标,也是数据库研究长期关注的目标。硬件技术的飞速发展促进了数据库性能的提升,硬件对数据库性能提升的推动作用主要体现在两个方面:大容量内存开始取代传统的磁盘成为新的高性能数据存储设备;多核及众核协处理器(Coprocessor)提供高达几百至几千的并行计算资源实现高并行数据处理。在新的硬件技术支持下,内存计算(In-Memory Computing,IMC)成为企业级数据处理的主流技术。但是,单纯的数据存储从磁盘向内存的升级受到新的“memory wall(内存墙)”制约,需要在多级缓存、多通道内存访问、多/众核并行计算等技术的共同支持下才能充分地发挥先进硬件的作用,提升数据库的性能。因此,内存计算的高性能不仅仅取决于内存,还取决于现代多/众核处理器的强大并行计算能力,即内存计算需要扩展为内存多/众核并行计算(In-MemoryMulti-/Many-core Computing,IMMC)。以NVIDAGPGPU(通用图形处理器)和Intel PhiCoprocessor为代表的协处理器计算技术是当前众核并行计算的代表性技术,由于其强大的硬件级并行计算能力和不同于通用处理器的硬件架构使其成为新兴的高性能内存计算研究领域的热点技术。由于Intel Phi Coprocessor技术较新,数据库技术在其上的研究刚刚起步,当前学术界的研究主要集中在CPU/GPU混合平台上的关系操作优化技术,尤其是OLAP(分析型查询处理)中计算代价较高的哈希连接在GPU上的优化技术,主要技术路线是根据GPU与CPU之间的PCIe通道数据传输性能、GPU并行计算性能等相关因素对混合平台上的查询操作基于代价模型分析创建分布式查询优化任务,提高整体OLAP查询处理性能。从关系操作符算法实现层面上看,GPU上的查询优化技术大多属于一种“调优(GPU-conscioustuning)”技术,即在Coprocessor端创建相应的内存数据结构,根据GPU硬件特性优化配置线程等参数,根据GPU存储结构特性优化算法实现技术等。关系操作模型是一种迭代处理模型,需要较多的分支指令,是面向数据密集型任务而优化设计的,而GPU中几百甚至几千的流处理器能够提供强大的向量计算能力,但对于复杂分支指令、迭代处理、线程间数据同步、大数据高延迟访问等操作的效率弱于通用处理器,客观地说,关系操作模型并不是适合GPU向量计算特征的理想的OLAP查询处理。
发明内容
针对上述问题,本发明的目的是提供一种适应协处理器的混合OLAP查询处理方法,该方法能实现多维查询处理,实现简单,不依赖复杂的数据结构,能有效提高大数据存储效率。
为实现上述目的,本发明采取以下技术方案:一种适应协处理器的混合OLAP查询处理方法,其包括以下步骤:1)采用MOLAP模型将多维数据集组织为数据CUBE,每一个存储单元对应唯一的多维空间坐标,即多维数组下标;事实数据存储所使用的隐式的多维数组下标,代表其在多维数组中的物理位置;2)采用semi-MOLAP模型将多维数据集用逻辑多维数组建模,构建虚拟多维数据CUBE;3)采用关系存储方式将事实数据压缩存储,只存储虚拟多维数组地址空间中实际的事实数据,并附加上逻辑多维数组地址空间中各维的坐标,与ROLAP模型中事实表采用外键和度量属性的存储方式相同,区别在于虚拟数据CUBE的序列化存储中的维坐标ID代表了事实数据在虚拟数据CUBE各维上的坐标位置;4)将n个维坐标ID和度量属性存储为列数组,即用列数组存储各事实数据属性;低势集的字符串类型属性采用轻量字典表压缩,数组中存储其较短的压缩编码;内存数据库和Coprocessor数据库采用完全的数组物理存储,将维表和事实表存储为数组族,数组下标用作数组间关联访问的索引;5)进行多维查询,多维查询是在多维数据集上按用户指定的维或维层次抽取多维数据子集并对其进行聚集计算的过程;在MOLAP模型中为在以多维数组存储的多维数据集上按维或维层次的映射以多维数组坐标访问数据并进行聚集计算;在ROLAP模型中将事实表和相关的维表连接后按查询条件选择记录并按指定的属性进行分组聚集计算;在semi-MOLAP模型中,多维查询包括单查询处理过程和并发查询处理过程,将多维查询结果数据CUBE还原为原始分组属性结果集。
所述步骤2)中,所述虚拟多维数据CUBE构建方法为:保留数据CUBE的逻辑空间结构,将虚拟数据CUBE中的实际事实数据进行序列化,将其隐式的多维数组下标序列化,将一个事实数据转换为n个维坐标ID和度量属性序列结构;实现事实数据与各个维之间所构成的逻辑多维数组地址映射。
所述步骤5)中,所述单查询处理过程包括以下步骤:(1)根据查询中维表的数量动态创建虚拟的n维数据CUBE,多维查询转换为在各维轴上的过滤条件并生成维过滤器,多维查询中n个过滤条件语句定义了一个虚拟的n维数据CUBE,并根据查询中的维表过滤及分组子句创建n个维过滤向量;通过定义维上的过滤器实现多维索引计算;(2)n维过滤:将压缩事实数据划分为两个部分:维坐标ID属性组和度量属性组,维坐标ID属性组用作多维索引计算,负责在虚拟数据CUBE上完成n维数据过滤;在n维过滤中对度量索引的更新过程是一个迭代计算查询结果数据CUBE多维坐标的过程,并生成基于位图或向量结构的度量索引;度量属性组用于在度量数组中按度量索引中指示的数组下标随机访问多维查询相关的数据,并根据度量索引中的多维坐标值确定其聚集计算在所依赖的查询结果数据CUBE中多维数组的下标;(3)根据n维过滤所生成的度量索引访问相应的度量属性值,实现基于数据CUBE的聚集计算;度量索引中记录了满足最终连接条件的事实记录的位置和其在多维分组聚集数组中的多维坐标,实现对事实数据高效率的按位置随机访问并度量属性值按度量索引中记录的多维分组聚集数组的坐标对其直接进行聚集计算,最后,将多维查询结果数据CUBE通过维向量字典数组还原为原始分组属性结果集。
所述步骤(1)中,各维上过滤器的定义依据策略如下:(Ⅰ)当维上没有分组属性时,维过滤器简化为一个位图,用以标识每个维记录位置是否满足该维上的谓词条件;(Ⅱ)当维上有分组属性时,将满足过滤条件的分组属性投影出来并建立一个数组字典表,并且以分组属性字典表数组下标作为值建立维过滤向量,维过滤向量预设了每一个满足维过滤器的维表记录在多维查询结果数据CUBE中当前维度上的坐标;(Ⅲ)当维表上有多个分组属性时,将多个分组属性组合起来作为一个超级分组属性进行处理,维过滤向量中记录的值为该分组属性组在字典表数组中的下标;(Ⅳ)当维上没有过滤条件而只有分组属性时,该维不参与多维过滤操作,但分组语句对应的基于字典表压缩的属性为多维查询结果数据CUBE提供一个聚集维度。
所述步骤5)中,所述并发查询处理过程为:Coprocessor上操作是完全串行执行的;在构建虚拟数据CUBE、n维过滤和聚集计算三个执行阶段,两个执行时间较短的维表处理和度量计算阶段分解为独立的查询子任务,由CPU异步完成;不同查询之间的三个执行阶段在CPU和Coprocessor处理器上为流水并行。
本发明由于采取以上技术方案,其具有以下优点:1、本发明由于将多维数据集用逻辑多维数组建模,创建虚拟的多维数据CUBE(立方体),实现事实数据与各个维之间的多维数组地址映射;事实数据采用关系存储方式对事实数据进行压缩存储,只存储虚拟多维数组地址空间中实际的事实数据,并附加上虚拟多维数组地址空间中各维的坐标,与ROLAP中事实表采用外键和度量属性的存储方式相同,提高大数据存储效率。2、本发明由于事实数据采用列数组存储,将压缩事实数据划分为多维索引和度量数据,多维索引计算是通过维坐标地址映射到多维查询对应的虚拟事实数据CUBE,并生成度量数组位图或向量用于标识查询对应的多维数据集在度量属性数组中的下标位置的过程,实现基于虚拟MOLAP模式的直接多维数组访问。3、本发明是面向Coprocessor数组存储和向量计算特点而建立的OLAP查询处理方法,采用完全数组存储和数组(向量)计算方式实现多维查询处理,算法实现简单,不依赖复杂的数据结构,对于数据仓库应用中典型的星形和雪花形模型具有良好的适应性,同时在多核处理器平台也具有突出的性能。4、本发明采用将ROLAP和MOLAP相结合的多维查询方法,通过虚拟数据CUBE建立了数组存储和数组计算模型,消除ROLAP中计算复杂度较高的关系操作符,同时采用ROLAP高效率的存储模型解决纯MOLAP模型稀疏数据所造成的存储空间效率低下的问题。5、本发明将一个多维查询划分为在不同数据集上独立的处理阶段,各阶段可以异步在地异构计算平台上执行,具有较好的分布式和流水并行处理能力,能够实现CPU平台和Coprocessor平台的协同计算,提高平台的综合效率和性能。本发明可以广泛在GPU、GPGPU(通用图形处理器)以及新的Intel Phi Coprocessor平台中应用。
附图说明
图1是本发明中MOLAP、semi-MOLAP和semi-MOLAP存储模型示意图;图1(A)是MOLAP模型示意图;图1(B)是semi-MOLAP模型示意图;图1(C)是semi-MOLAP存储模型示意图;
图2是本发明的基于n维过滤的OLAP查询处理示意图;
图3是本发明方法在实施例中semi-MOLAP执行框架示意图;
图4是本发明实施例中基于Coprocessor的semi-MOLAP的流水执行框架示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图1所示,本发明提供一种适应协处理器的混合OLAP查询处理方法,其包括以下步骤:
1)采用MOLAP模型将多维数据集组织为数据CUBE,每一个存储单元对应唯一的多维空间坐标,即多维数组下标;事实数据存储所使用的隐式的多维数组下标,代表其在多维数组中的物理位置。
其中,MOLAP多维查询是一个在庞大的多维数组空间中直接访问的过程,多维数组大小对MOLAP查询性能影响不大,主要取决于内存随机访问性能。例如,在现实的企业级数据仓库应用中,数据CUBE通常非常稀疏,如图1(A)所示,其中三个维上4×4×4的多维空间中只有7个实际数据,数据存储效率非常低,而且数据CUBE决定了数据的物理存储位置,一旦维发生改变,则需要对数据CUBE进行重构。
2)如图1(B)所示,采用semi-MOLAP模型(准多维OLAP模型)将多维数据集用逻辑多维数组建模,构建虚拟多维数据CUBE(Virtual CUBE);
虚拟多维数据CUBE构建方法为:保留数据CUBE的逻辑空间结构,将虚拟数据CUBE中的实际事实数据进行序列化,将其隐式的多维数组下标序列化,将一个事实数据转换为n个维坐标ID和度量属性序列结构;维坐标ID列实现事实数据与各个维之间所构成的逻辑多维数组地址映射。
3)事实数据并不真正存储在巨大的多维数组地址空间中,而是采用关系存储方式将事实数据压缩存储,只存储虚拟多维数组地址空间中实际的事实数据,并附加上逻辑多维数组地址空间中各维的坐标,与ROLAP(Relational OLAP,关系联机分析处理)模型中事实表采用外键和度量属性的存储方式相同,区别在于ROLAP模型中的事实表外键属性只需要满足关系数据库的主-外键参照完整性约束条件即可,而虚拟数据CUBE的序列化存储中的维坐标ID则代表了事实数据在虚拟数据CUBE各维上的坐标位置,既符合ROLAP模型中主-外键参照完整性约束关系,又满足了MOLAP模型中事实数据与各维的空间位置映射关系。这样的规则可以提高大数据存储和访问效率。
由于虚拟数据CUBE中的事实数据序列化没有特殊的要求,因此不需要参照多维坐标轴的顺序(如Z-order)等限制条件,在实际应中首先需要将维表映射为虚拟数据CUBE的多个维轴,事实数据遵循数据的物理存储顺序即可。
4)为提高多维数据访问性能,将n个维坐标ID和度量属性存储为列数组,即用列数组存储各事实数据属性;低势集的字符串类型属性采用轻量字典表压缩,数组中存储其较短的压缩编码。内存数据库和Coprocessor数据库采用完全的数组物理存储,将维表和事实表存储为数组族(array fami ly),数组下标用作数组间关联访问的索引。
5)进行多维查询,多维查询(Multiple Dimensional Query)是在多维数据集上按用户指定的维或维层次抽取多维数据子集并对其进行聚集计算的过程。在MOLAP模型中表现为在以多维数组存储的多维数据集上按维或维层次的映射以多维数组坐标访问数据并进行聚集计算;在ROLAP模型中表现为将多维查询转换为SQL命令,将事实表和相关的维表连接后按查询条件选择记录并按指定的属性进行分组聚集计算。在semi-MOLAP模型中,多维查询包括单查询处理过程和并发查询处理过程。其中,单查询处理过程包括以下步骤:
(1)构建虚拟数据CUBE。根据查询中维表的数量动态创建虚拟的n维数据CUBE,多维查询转换为在各维轴上的过滤条件并生成维过滤器,多维查询中n个维上的过滤条件语句定义了一个虚拟的n维数据CUBE,并根据查询中的维表过滤及分组子句创建n个维过滤向量;通过定义维上的过滤器实现多维索引计算,各维上过滤器的定义依据如下策略:
(Ⅰ)当维上没有分组属性时,维过滤器(DFilter)简化为一个位图(bitmap),用以标识每个维记录位置是否满足该维上的谓词条件,满足谓词条件的维过滤位图位置设置为1,否则为0;
(Ⅱ)当维上有分组属性时,将满足过滤条件的分组属性投影出来并建立一个数组字典表,并且以分组属性字典表数组下标(m个成员的字典表数组下标映射为0…m-1)作为值建立维过滤向量(满足谓词条件的维过滤向量位置取值为分组属性字典表数组下标,否则置为-1),维过滤向量预设了每一个满足维过滤器的维表记录在多维查询结果数据CUBE中当前维度上的坐标;
(Ⅲ)当维表上有多个分组属性时,将多个分组属性组合起来作为一个超级分组属性(super GROUP Attribute)进行处理,维过滤向量中记录的值为该分组属性组在字典表数组中的下标;
(Ⅳ)当维上没有过滤条件而只有分组属性时,该维不参与多维过滤操作,但分组语句对应的基于字典表压缩的属性为多维查询结果数据CUBE提供一个聚集维度。
(2)n维过滤。如图1(C)所示,将压缩事实数据进一步划分为两个部分:维坐标ID属性组和度量属性组,维坐标ID属性组用作多维索引计算,负责在虚拟数据CUBE上完成n维数据过滤。在维过滤向量构建阶段已经按查询中的分组属性预构建了查询结果数据CUBE的各个维,并将维下标记录在维过滤向量中作为分组聚集多维数组在各个维上的坐标分量。在n维过滤中对度量索引MeasureIndex的更新过程是一个迭代计算查询结果数据CUBE多维坐标的过程,并生成基于位图或向量结构的度量索引(Measure Index);度量属性组用于在度量数组中按度量索引中指示的数组下标随机访问多维查询相关的数据,并根据度量索引中的多维坐标值确定其聚集计算在所依赖的多维数组(查询结果数据CUBE)中的下标。通过这种数据划分,多维查询可以分解为在较小的维坐标ID属性组上计算密集型的多维过滤操作和在较大的度量属性组上数据密集型的聚集计算两个处理阶段,使两个处理阶段分别适合于Coprocessor较小内存上的高性能并行计算和CPU较大内存上的高性能随机数据访问,实现Coprocessor与CPU在数据和计算上的协同处理。
(3)聚集计算。根据n维过滤所生成的度量索引Measure Index访问相应的度量属性值,实现基于数据CUBE的聚集计算。度量索引中记录了满足最终连接条件的事实记录的位置和其在多维分组聚集数组中的多维坐标,可以实现对事实数据高效率的按位置随机访问,并且对度量属性值按度量索引中记录的多维分组聚集数组的坐标对其直接进行聚集计算,最后,将多维查询结果数据CUBE通过维向量字典数组还原为原始分组属性结果集。
例如:如图2所示,首先根据维表上的过滤条件投影出相应的分组属性(或分组属性组),然后为其建立分组属性字典表并将其字典编码写入维过滤向量对应的位置。维ID数组(D1)首先在维过滤器DFilter1上进行过滤,并将过滤结果记录在度量索引(MeasureIndex)中,然后根据度量索引中指示的数组位置访问维ID数组D2并在维过滤器DFilter2上进行过滤,同时更新度量索引中满足当前过滤条件的数组位置,当完成维ID数组(D3)在维过滤器DFilter3上的过滤操作后,度量索引构造了满足当前多维查询条件的度量数据数组坐标集合,由于多维查询的选择率通常非常低,根据度量索引按位置访问数据量较大的度量数据和聚集计算可以高效地执行。
实施例:
如图3所示,按Coprocessor内存大小将内存数据集中事实表维ID列的全部或Coprocessor内存可以容纳的最大水平分片复制到Coprocessor内存,构建多维索引加速器。由CPU创建查询相关的维过滤向量,通过PCIe通道传输到Coprocessor内存;Coprocessor根据维过滤向量完成基于Coprocessor高并行处理线程的并行多维索引计算,事实表ID列在维表过滤向量的过滤操作过程中迭代地计算出多维查询结果数据CUBE的多维数组坐标,生成度量索引向量;当度量索引向量具有较低的选择率时,可以对其进行压缩以减少传输代价,然后再将度量索引向量通过PCIe通道传输回内存,由CPU完成对度量属性的随机访问和根据维过滤向量构建的查询结果数据CUBE上的聚集计算;最后通过在维过滤向量生成阶段创建的分组字典表对查询结果数据CUBE解码,还原为标准的查询输出结果。
上述步骤5)中,并发查询处理过程如下:对于多个查询并发处理过程,Coprocessor上操作是完全串行执行的。在构建虚拟数据CUBE、n维过滤和聚集计算三个执行阶段中,两个执行时间较短的维表处理和度量计算阶段可以分解为独立的查询子任务,由CPU异步完成。不同查询之间的三个执行阶段在CPU和Coprocessor处理器上可以流水并行。
例如:如图4所示,显示了基于Coprocessor的semi-MOLAP的流水执行框架。查询Q2在Coprocessor执行时Q3的维表处理和Q1的度量计算阶段可以流水并行地在CPU上执行。semi-MOLAP将查询分解为三个独立的处理过程,每个过程只依赖于独立的向量数据结构,CPU与Coprocessor平台上的计算采用的是异步执行方式,最小化Coprocessor的等待时间。
综上所述,在本发明中,Coprocessor内存被最大限度利用,Coprocessor并行计算资源被最大化利用,因此在多个查询处理过程中Coprocessor上是完全串行执行。本发明采用的处理方法是一个松耦合的基于数据交换的执行框架,维表处理阶段可以采用已有的内存数据库作为维表查询处理引擎,负责复杂数据类型的存储、压缩、更新等数据库通用功能,不需要完全自主开发,只需要提供输出维过滤向量的API即可。Coprocessor多维索引计算和度量聚集计算是完全基于数值型数组的计算过程,数据管理和计算模型简单,易于多核CPU和Coprocessor平台上的并行计算,适合GPU以及Intel Phi协处理器计算平台等通过PCIe通道连接的高性能计算硬件,是一种高可扩展的众核高并行算法。
上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。
Claims (2)
1.一种适应协处理器的混合OLAP查询处理方法,其包括以下步骤:
1)采用MOLAP模型将多维数据集组织为数据CUBE,每一个存储单元对应唯一的多维空间坐标,即多维数组下标;事实数据存储所使用的隐式的多维数组下标,代表其在多维数组中的物理位置;
2)采用semi-MOLAP模型将多维数据集用逻辑多维数组建模,构建虚拟数据CUBE;其中,semi-MOLAP模型为准多维OLAP模型;
所述虚拟数据CUBE构建方法为:保留数据CUBE的逻辑空间结构,将虚拟数据CUBE中的实际事实数据进行序列化,将其隐式的多维数组下标序列化,将一个事实数据转换为n个维坐标ID和度量属性序列结构;实现事实数据与各个维之间所构成的逻辑多维数组地址映射;
3)采用关系存储方式将事实数据压缩存储,只存储逻辑多维数组地址空间中实际的事实数据,并附加上逻辑多维数组地址空间中各维的坐标,与ROLAP模型中事实表采用外键和度量属性的存储方式相同,区别在于虚拟数据CUBE的序列化存储中的维坐标ID代表了事实数据在虚拟数据CUBE各维上的坐标位置;
4)将n个维坐标ID和度量属性存储为列数组,即用列数组存储各事实数据属性;低势集的字符串类型属性采用轻量字典表压缩,数组中存储其较短的压缩编码;内存数据库和Coprocessor数据库采用完全的数组物理存储,将维表和事实表存储为数组族,数组下标用作数组间关联访问的索引;
5)进行多维查询,多维查询是在多维数据集上按用户指定的维或维层次抽取多维数据子集并对其进行聚集计算的过程;在MOLAP模型中为在以多维数组存储的多维数据集上按维或维层次的映射以多维数组坐标访问数据并进行聚集计算;在ROLAP模型中将事实表和相关的维表连接后按查询条件选择记录并按指定的属性进行分组聚集计算;在semi-MOLAP模型中,多维查询为单查询处理过程,将查询结果数据CUBE还原为原始分组属性结果集;所述单查询处理过程包括以下步骤:
(1)根据查询中维表的数量动态创建n维的虚拟数据CUBE,多维查询转换为在各维轴上的过滤条件并生成维过滤器,多维查询中n个过滤条件语句定义了一个n维的虚拟数据CUBE,并根据查询中的维表过滤及分组子句创建n个维过滤向量;通过定义维上的过滤器实现多维索引计算;
(2)n维过滤:将压缩事实数据划分为两个部分:维坐标ID属性组和度量属性组,维坐标ID属性组用作多维索引计算,负责在n维的虚拟数据CUBE上完成n维数据过滤,并生成基于位图或向量结构的度量索引,且在n维过滤中对度量索引的更新过程是一个迭代计算查询结果数据CUBE多维坐标的过程;度量属性组用于在度量数组中按度量索引中指示的数组下标随机访问多维查询相关的数据,并根据度量索引中的多维坐标值确定其聚集计算在所依赖的查询结果数据CUBE中多维数组的下标;
(3)根据n维过滤所生成的度量索引访问相应的度量属性值,实现基于查询结果数据CUBE的聚集计算;度量索引中记录了满足最终连接条件的事实记录的位置和其在多维分组聚集数组中的多维坐标,实现对事实数据高效率的按位置随机访问并度量属性值按度量索引中记录的多维分组聚集数组的坐标对其直接进行聚集计算,最后,将查询结果数据CUBE通过维向量字典数组还原为原始分组属性结果集;
上述单查询处理过程中,在构建n维的虚拟数据CUBE、n维过滤和聚集计算三个执行阶段,两个执行时间较短的维表处理和度量计算阶段分解为独立的查询子任务,由CPU异步完成;不同查询之间的三个执行阶段在CPU和Coprocessor处理器上为流水并行。
2.如权利要求1所述的一种适应协处理器的混合OLAP查询处理方法,其特征在于:所述步骤5)(1)中,各维上过滤器的定义依据策略如下:
(Ⅰ)当维上没有分组属性时,维过滤器简化为一个位图,用以标识每个维记录位置是否满足该维上的谓词条件;
(Ⅱ)当维上有分组属性时,将满足过滤条件的分组属性投影出来并建立一个数组字典表,并且以分组属性字典表数组下标作为值建立维过滤向量,维过滤向量预设了每一个满足维过滤器的维表记录在查询结果数据CUBE中当前维度上的坐标;
(Ⅲ)当维表上有多个分组属性时,将多个分组属性组合起来作为一个超级分组属性进行处理,维过滤向量中记录的值为该分组属性组在字典表数组中的下标;
(Ⅳ)当维上没有过滤条件而只有分组属性时,该维不参与多维过滤操作,但分组语句对应的基于字典表压缩的属性为查询结果数据CUBE提供一个聚集维度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720029.7A CN104361118B (zh) | 2014-12-01 | 2014-12-01 | 一种适应协处理器的混合olap查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720029.7A CN104361118B (zh) | 2014-12-01 | 2014-12-01 | 一种适应协处理器的混合olap查询处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104361118A CN104361118A (zh) | 2015-02-18 |
CN104361118B true CN104361118B (zh) | 2017-07-21 |
Family
ID=52528378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720029.7A Active CN104361118B (zh) | 2014-12-01 | 2014-12-01 | 一种适应协处理器的混合olap查询处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361118B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426501B (zh) * | 2015-11-25 | 2018-12-21 | 广州华多网络科技有限公司 | 多维数据库自动路由实现方法和系统 |
CN105843842A (zh) * | 2016-03-08 | 2016-08-10 | 东北大学 | 一种大数据环境下多维聚集查询与展示系统及方法 |
CN107767933A (zh) * | 2016-08-16 | 2018-03-06 | 厦门君沣信息科技有限公司 | 基于olap的心理态势预警方法及装置 |
CN106372114B (zh) * | 2016-08-23 | 2019-09-10 | 电子科技大学 | 一种基于大数据的联机分析处理系统和方法 |
US10558659B2 (en) * | 2016-09-16 | 2020-02-11 | Oracle International Corporation | Techniques for dictionary based join and aggregation |
CN108733681B (zh) | 2017-04-14 | 2021-10-22 | 华为技术有限公司 | 信息处理方法及装置 |
CN110019334A (zh) * | 2017-10-16 | 2019-07-16 | 广东亿迅科技有限公司 | 一种多维数据查询分析的优化方法及其系统 |
CN110555080B (zh) * | 2018-03-30 | 2023-02-14 | 华为技术有限公司 | 一种联机分析处理方法、装置及系统 |
CN109977175B (zh) * | 2019-03-20 | 2021-06-01 | 跬云(上海)信息科技有限公司 | 数据配置查询方法和装置 |
CN110837545A (zh) * | 2019-11-13 | 2020-02-25 | 贵州医渡云技术有限公司 | 交互式数据分析方法、装置、介质及电子设备 |
CN112269797B (zh) * | 2020-10-28 | 2024-02-27 | 国家卫星气象中心(国家空间天气监测预警中心) | 一种卫星遥感数据在异构计算平台上的多维查询方法 |
CN112765282B (zh) * | 2021-01-18 | 2023-11-28 | 恒安嘉新(北京)科技股份公司 | 一种数据联机分析处理方法、装置、设备及存储介质 |
CN113032427B (zh) * | 2021-04-12 | 2023-12-08 | 中国人民大学 | 一种用于cpu和gpu平台的向量化查询处理方法 |
CN113742320B (zh) * | 2021-11-05 | 2022-03-01 | 亿景智联(北京)科技有限公司 | 一种olap数据仓库的管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918232A (en) * | 1997-11-26 | 1999-06-29 | Whitelight Systems, Inc. | Multidimensional domain modeling method and system |
US6477536B1 (en) * | 1999-06-22 | 2002-11-05 | Microsoft Corporation | Virtual cubes |
CN102521417A (zh) * | 2011-12-30 | 2012-06-27 | 南京柏梭信息科技有限公司 | 一种基于虚拟数据立方体的多维数据处理方法及其系统 |
CN102982103A (zh) * | 2012-11-06 | 2013-03-20 | 东南大学 | 一种olap海量多维数据维存储方法 |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
-
2014
- 2014-12-01 CN CN201410720029.7A patent/CN104361118B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918232A (en) * | 1997-11-26 | 1999-06-29 | Whitelight Systems, Inc. | Multidimensional domain modeling method and system |
US6477536B1 (en) * | 1999-06-22 | 2002-11-05 | Microsoft Corporation | Virtual cubes |
CN102521417A (zh) * | 2011-12-30 | 2012-06-27 | 南京柏梭信息科技有限公司 | 一种基于虚拟数据立方体的多维数据处理方法及其系统 |
CN102982103A (zh) * | 2012-11-06 | 2013-03-20 | 东南大学 | 一种olap海量多维数据维存储方法 |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
Non-Patent Citations (5)
Title |
---|
"Task Scheduling for GPU Accelerated Hybrid OLAP Systems with Multi-core Support and Text-to-Integer Translation";Maria Malik ET AL;《IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum》;20121231;全文 * |
"数据仓库分布式列存储技术研究与实现";杨卓荦;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130115;全文 * |
"数据立方体生成技术研究";刘红敏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20071115;全文 * |
"海量数据分析的One-size-fits-all OLAP 技术";张延松 等;《计算机学报》;20111015;第34卷(第10期);全文 * |
"用于数据仓储的一种改进的多维存储结构";冯建华 等;《软件学报》;20021231;第13卷(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104361118A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104361118B (zh) | 一种适应协处理器的混合olap查询处理方法 | |
CN102663116B (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
US8762407B2 (en) | Concurrent OLAP-oriented database query processing method | |
CN104866608B (zh) | 一种数据仓库中基于连接索引的查询优化方法 | |
CN106844703B (zh) | 一种面向数据库一体机的内存数据仓库查询处理实现方法 | |
CN103309958B (zh) | Gpu和cpu混合架构下的olap星型连接查询优化方法 | |
CN107402990A (zh) | 一种分布式NewSQL数据库系统和半结构化数据储存方法 | |
CN103473260B (zh) | 一种面向并发olap的测试数据分层聚簇查询处理系统及方法 | |
CN103294831A (zh) | 列存储数据库中基于多维数组的分组聚集计算方法 | |
WO2020248604A1 (zh) | 一种基于分组向量的哈希多表连接实现方法 | |
CN104361113A (zh) | 一种内存-闪存混合存储模式下的olap查询优化方法 | |
CN102306180A (zh) | 一种基于海量激光雷达栅格点云数据的建模方法 | |
CN105930388B (zh) | 一种基于函数依赖关系的olap分组聚集方法 | |
CN113032427B (zh) | 一种用于cpu和gpu平台的向量化查询处理方法 | |
Jiang et al. | Cohort query processing | |
CN111078961A (zh) | 多数据源查询驱动系统、方法、装置和存储介质 | |
Floratos et al. | NestGPU: Nested query processing on GPU | |
Yu et al. | Turbocharging geospatial visualization dashboards via a materialized sampling cube approach | |
Lin et al. | Efficient subgraph matching using gpus | |
Zhang et al. | Fusion OLAP: Fusing the Pros of MOLAP and ROLAP Together for In-memory OLAP | |
Han et al. | ADE-HGNN: Accelerating HGNNs through Attention Disparity Exploitation | |
Shehab et al. | Accelerating relational database operations using both CPU and GPU co-processor | |
Zhou et al. | A hardware-accelerated solution for hierarchical index-based merge-join | |
CN112269797A (zh) | 一种卫星遥感数据在异构计算平台上的多维查询方法 | |
Ptiček et al. | MapReduce research on warehousing of big 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 | ||
GR01 | Patent grant |