CN105868388B - 一种基于fpga的内存olap查询优化方法 - Google Patents

一种基于fpga的内存olap查询优化方法 Download PDF

Info

Publication number
CN105868388B
CN105868388B CN201610232593.3A CN201610232593A CN105868388B CN 105868388 B CN105868388 B CN 105868388B CN 201610232593 A CN201610232593 A CN 201610232593A CN 105868388 B CN105868388 B CN 105868388B
Authority
CN
China
Prior art keywords
fpga
memory
cpu
vector
true
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
Application number
CN201610232593.3A
Other languages
English (en)
Other versions
CN105868388A (zh
Inventor
张延松
张宇
柴云鹏
周烜
王珊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renmin University of China
Original Assignee
Renmin University of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renmin University of China filed Critical Renmin University of China
Priority to CN201610232593.3A priority Critical patent/CN105868388B/zh
Publication of CN105868388A publication Critical patent/CN105868388A/zh
Application granted granted Critical
Publication of CN105868388B publication Critical patent/CN105868388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于FPGA的内存OLAP查询优化方法,其步骤:构建面向内存‑闪存的数据仓库异构存储模型;基于异构存储模型面向CPU‑FPGA异构处理器的查询优化:通过子查询生成一个分组投影向量;对分组投影向量进行字典表压缩;按投影字典表将分组投影更新为基于字典表编码的分组投影向量;分组投影向量与事实表外键进行连接操作,生成用于度量列聚集计算的度量向量;基于度量向量的索引聚集计算;基于异构存储模型面向CPU、FPGA异构计算平台的查询优化:FPGA与CPU共享访问相同的内存地址空间;FPGA为PCI‑E加速卡配置时,使用FPGA加速连接性能、FPGA通过PCI‑E通道直接访问闪存卡进行数据处理;当FPGA集成到闪存中时,通过FPGA加速闪存卡的数据访问及聚集计算性能。

Description

一种基于FPGA的内存OLAP查询优化方法
技术领域
本发明涉及一种数据库领域中的内存OLAP查询方法,特别是关于一种基于FPGA的内存OLAP查询优化方法。
背景技术
FPGA是专用集成电路(ASIC)领域中的一种半定制电路,FPGA是可编程器件,FPGA可做全定制或半定制ASIC电路。FPGA具有更高集成密度、更大容量、更低功耗的特点,目前被一些数据库厂商用作硬件级的加速器使用。下一代数据中心将大量引入加速器技术参与各种应用的计算,提高数据中心的性能功耗比及计算实时性。在未来处理器的发展中也显现了将FPGA集成到CPU的一体化异构计算架构趋势,提高处理器的能耗效率和并行计算性能。
如图1所示,当前与未来FPGA应用可以分为三种类型:一、FPGA集成在主板或CPU芯片内,CPU与FPGA访问相同的内存地址空间,CPU与FPGA在计算任务上进行划分,FPGA承担适合其计算特点的简单、高并行数据计算任务,CPU负责复杂数据管理、处理任务与复杂数据类型及数据结构上的计算,CPU与FPGA共享内存带宽,具有相同的内存访问性能,需要通过负载优化配置发挥CPU与FPGA各自的性能并形成流水并行处理;二、使用基于PCI-E的FPGA加速卡,FPGA有自己的局部内存,通过PCI-E通道访问内存,相对于CPU有较大的内存访问延迟,需要优化FPGA卡上内存存储效率及本地计算效率,加速查询处理中数据集较小的计算密集型负载;三、将FPGA集成到大容量闪存中,通过FPGA核心及内存提供在闪存存储设备上的数据处理能力,将一些在大量数据上进行计算并输出较小结果或稀疏的索引访问操作下推到最底端的数据存储设备层,消除以页面为单位的粗粒度数据访问中无效数据传输的带宽消耗,优化闪存数据传输性能。
FPGA在应用中存在多种形态,因此针对FPGA的查询优化技术需要具有较好的适应性,需要查询计算模型能够动态地适应不同的FPGA计算平台硬件特征,实现计算与FPGA数据处理特征的匹配。而当前数据库广泛采用的迭代处理模型是一种强耦合的流水处理模型,当面对异构的计算资源,如CPU、GPU、Xeon Phi、FPGA,以及异构的存储资源,如DRAM、NVRAM、Flash等,在访问延迟较大的异构计算单元及存储单元之间的迭代处理产生极大的数据访问与计算延迟和较高的数据迁移代价。因此,需要针对FPGA可能的硬件配置优化查询处理算法设计,使查询处理算法数据结构与处理方法与FPGA的硬件计算特性相适应。
发明内容
针对上述问题,本发明的目的是提供一种基于FPGA的内存OLAP查询优化方法,该方法优化数据库在内存和闪存层次的存储策略,将传统基于迭代处理模型的查询处理过程解耦合,OLAP查询处理过程分解为若干独立的计算过程,各个计算过程通过数据进行驱动,优化各个计算过程之间传递的数据集大小,从而使OLAP查询的各个计算过程能够独立地应用于不同的FPGA计算模式。同时,该方法有效地将OLAP查询任务分解为弱耦合的阶段处理模式并分配给CPU和FPGA处理,并发查询在CPU和FPGA上的处理阶段可以流水地并行执行,提高并发查询的处理效率,提高内存OLAP查询处理性能和降低计算功耗。
为实现上述目的,本发明采取以下技术方案:一种基于FPGA的内存OLAP查询优化方法,其特征在于,该方法包括以下步骤:步骤一、构建面向内存-闪存的数据仓库异构存储模型:数据仓库全部的表持久性地存储于大容量闪存,其中数据量最大的事实表度量属性存储于PCI-E闪存卡,事实表外键列常驻于内存,而较小的维表常驻于内存或存储于闪存;步骤二、基于异构存储模型面向CPU-FPGA异构处理器的内存OLAP查询优化方法:(1)将SQL查询命令分解为应用于各个维表上的SPG子SQL命令,按WHERE条件投影出当前维表中GROUPBY子句对应的分组属性,不满足选择条件输出空值,满足条件则输出分组属性值,通过子查询生成一个分组投影向量;其中,SPG分别表示选择、投影、分组;(2)对分组投影向量进行字典表压缩,为不同的分组属性建立字典表并分配字典表编码,当分组属性包含多个属性时,以属性组为单位进行字典表压缩;(3)按投影字典表将分组投影更新为基于字典表编码的分组投影向量;(4)分组投影向量与事实表外键进行连接操作,生成用于度量列聚集计算的度量向量;(5)基于度量向量的索引聚集计算;5.1)当多维数组低于CPU的L3Cache Slice,使用多维数组作为OLAP查询的分组聚集器,按度量向量中非空位置访问相应的度量属性值,映射到度量向量单元中数组地址对应的多维数组单元进行聚集计算;5.2)当多维数组高于CPU的L3 Cache Slice并且较为稀疏时,采用哈希分组聚集计算方法,即使用度量向量中各维表分组的多维地址作为哈希键值在度量列上进行哈希分组聚集计算。
所述步骤二(4)中,在执行连接操作时,采用如下连接方法:4.1)当维表使用代理键,即连续的自然数列1,2,3…作为主键时,事实表外键值直接映射为分组投影向量的偏移地址,以外键地址映射代替连接操作;4.2)当维表不使用代理键时,根据FPGA的应用模式使用两种策略:4.2.1)当CPU与FPGA共享内存地址空间时,分组投影向量转换为哈希表,事实表外键列与维哈希表执行常规的哈希连接操作;4.2.2)当FPGA为PCI-E加速卡时,FPGA有独立的设备内存,按FPGA内存容量加速事实表外键水平分片上的OLAP查询处理性能;为维表增加一个代理键列,加载到FPGA内存的事实表外键列分片通过与维表连接键和代理键子表的连接操作将外键列更新为代理外键列,实现外键值与分组投影向量的直接地址映射关系;4.2.3)将内存外键列全部更新为代理外键列,支持内存外键列与分组投影向量的直接地址映射关系;4.3)OLAP操作中事实表与维表的连接操作。
所述OLAP操作中事实表与维表的连接操作:4.3.1)采用事实表外键与维表分组投影向量之间地址映射操作时,按各维表分组属性字典表成员的数量构建多维数组,事实表外键列映射的维表分组投影向量中的字典表编码用作多维数组的维坐标,通过外键列与各维表分组投影向量的地址映射访问构建当前事实表记录在多维数组中的单元地址,然后将其转换为一维数组地址存储于度量向量中;4.3.2)当使用哈希连接操作时,分组属性为字典表压缩编码,按多维数组相同的方式将各维表分组压缩编码转换为多维数组地址格式,然后转换为一维数组地址格式存储于度量向量中。
一种基于FPGA的内存OLAP查询优化方法,其特征在于,该方法包括以下步骤:步骤一、构建面向内存-闪存的数据仓库异构存储模型:数据仓库全部的表持久性地存储于大容量闪存,其中数据量最大的事实表度量属性存储于PCI-E闪存卡,事实表外键列常驻于内存,而较小的维表常驻于内存或存储于闪存;步骤二、基于异构存储模型面向CPU、FPGA异构计算平台的内存OLAP查询优化方法:(1)当FPGA集成到CPU内部或主板上而与CPU共享访问相同的内存地址空间时:1.1)维表处理阶段涉及复杂的数据类型及内存数据库管理系统功能,由CPU处理,生成维表分组字典表及维表分组投影向量;1.2)事实表外键列与维表分组投影向量之间的计算由CPU或FPGA执行,当FGPA执行哈希连接代价较高时由CPU执行或者通过维表代理键更新内存中的事实表外键,由FPGA执行基于地址映射的连接操作;1.3)基于度量向量的聚集计算由CPU或FPGA执行,当度量向量对应的多维数组较小时,使用FPGA进行聚集计算只涉及索引访问和数组计算;当度量向量对应的多维数组较大需要采用哈希分组聚集计算时,使用CPU进行聚集计算;(2)当FPGA为PCI-E加速卡配置时,使用FPGA加速连接性能;(3)当FPGA为PCI-E加速卡配置时,FPGA通过PCI-E通道直接访问闪存卡进行数据处理;(4)当FPGA集成到闪存中时,通过FPGA加速闪存卡的数据访问及聚集计算性能。
所述步骤二(2)中,具体步骤如下:2.1)采用FPGA本地内存计算模式,即用FPGA集成的内存存储FPGA计算数据集;2.2)根据FPGA内存容量计算FPGA能够支持的事实表外键及度量向量列分片的大小,确定FPGA内存存储的事实表外键连接数据集的大小;2.3)如果维表不使用代理键,则在维表中增加代理键列,将FPGA存储的事实表外键列分片中的外键列在加载到FPGA内存时更新为维表代理键值,使FPGA中存储的事实表外键列执行简单的与维表分组投影向量之间地址映射操作;2.4)查询处理时,由CPU完成维表处理,生成分组投影向量,通过PCI-E通道传输到FPGA内存,在FPGA内进行事实表外键分片上的连接操作,生成度量向量,通过PCI-E通道传输给CPU,完成其后的分组聚集计算。
所述步骤二(3)中,使用FPGA加速闪存数据处理方法:3.1)当CPU的事实表外键连接操作性能优于FPGA性能时,由CPU完成主要的查询处理任务;3.2)CPU完成维表处理和外键连接操作后生成度量向量,度量向量通过PCI-E通道传输到FPGA,由FPGA按度量向量索引访问闪存度量列;3.3)FPGA将度量向量作为位图索引使用,按非空位置访问闪存度量列数据,然后按度量向量中存储的分组压缩编码通过多维数组或哈希表在FPGA本地内存中进行聚集计算,然后输出分组聚集计算结果,通过CPU端的分组字典表对分组编码进行解析后输出OLAP查询处理结果;
在FPGA进行聚集计算时,CPU端执行其他并发查询的维表处理及事实表外键连接计算,与FPGA设备上的聚集计算形成流水并行处理。
所述步骤二(4)中,通过FPGA加速闪存卡的数据访问及聚集计算性能具体实现方法如下:4.1)将事实表较大的度量数据以列存储形式存储于PCI-E闪存卡中,度量列上的聚集计算规范化为基于度量向量的索引访问和基于分组编码的多维数组聚集或哈希聚集;4.2)由CPU端完成维表处理和事实表外键连接操作,生成度量向量用于聚集计算;4.3)根据闪存卡上集成的FPGA内存大小,读入度量向量,按度量向量索引访问闪存卡上存储的度量列;4.4)根据度量向量从闪存数据页中读取细粒度的度量属性值,通过FPGA内存按度量向量分组压缩编码进行多维数组聚集计算;4.5)当使用多维数组聚集计算时,FPGA上执行简单的索引访问和数组地址访问,当需要使用哈希分组聚集时,FPGA上执行索引访问和基于分组压缩编码的哈希分组聚集计算;4.6)如果分组超过FPGA内存大小或不适合FPGA进行聚集计算的情况,则在CPU端将度量向量简化为位图索引,FPGA只执行位图索引访问,闪存内的数据访问单位是页面,FPGA将位图索引对应数据页中的有效数据在FPGA内存中进行缓存,通过多个页面队列缓存抽取出的实际数据,然后通过PCI-E通道传输给CPU内存进行分组聚集计算。
所述步骤一中,当内存容量不足以容纳所有事实表外键列时,采用如下两种策略:(1)按内存大小将事实表外键列进行水平分片,划分为内存和闪存外键列两个水平分片,在查询执行时同时并行地在内存与闪存分片上执行查询子任务;(2)当外键列数量较多时,按内存容量将查询最频繁访问外键列常驻于内存,其他外键列存储于闪存,在查询执行时首先执行内存外键列上的查询处理任务,然后再访问闪存上的外键列完成查询处理。
本发明由于采取以上技术方案,其具有以下优点:1、本发明由于采用内存-闪存混合存储模型和CPU-FPGA异构处理器实现降低内存存储成本、降低计算成本与功耗的作用,通过闪存存储较大的事实数据,通过FPGA低功耗高性能计算特性降低内存计算平台的成本。2、本发明对OLAP查询处理算法进行解耦合,通过分解为维表、事实表外键列、事实表度量列数据集上的三个独立的处理阶段使OLAP查询处理易于在内存-闪存中分布存储并且通过CPU-FPGA异构计算完成不同处理阶段的任务,三个处理阶段通过较小的数据进行驱动,降低了PCI-E数据通道的传输代价。3、本发明将OLAP查询处理转换为基于数组、向量的存储模型和数组地址访问操作,降低了FPGA定制电路的复杂度,能够有效地提高查询算法的执行效率和性能。4、本发明根据FPGA当前及未来不同的配置方式,在三阶段OLAP查询处理模型的基础上根据FPGA的硬件特点灵活配置CPU和FPGA端的查询处理任务,实现计算任务与处理器的优化匹配。5、本发明面向集成在PCI-E闪存卡上的FPGA计算进行优化设计,通过度量向量或度量位图索引将分组聚集计算或位图索引访问下推到最底层的闪存卡中,达到优化PCI-E通道数据传输效率的作用。
本发明适用于内存OLAP应用场景,能够适应不同FPGA应用架构下的内存OLAP性能加速需求。
附图说明
图1是现有技术中FPGA不同配置示意图;
图2是本发明的数据库模式及其在内存、闪存二级存储设备中的存储模型示意图;
图3是本发明OLAP查询处理各个阶段在CPU和FPGA上的计算任务优化配置示意图;
图4是本发明基于PCI-E FPGA的查询处理示意图;
图5是本发明基于闪存卡集成FPGA查询处理示意图;
图6是本发明基于闪存卡集成FPGA位图索引访问示意图;
图7是本发明实施例OLAP查询处理过程示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
本发明提供一种基于FPGA的内存OLAP查询优化方法,该方法面向内存-闪存异构存储及CPU、FPGA异构计算平台,其具体步骤如下:
一、构建面向内存-闪存的数据仓库异构存储模型。
如图2所示,本发明将数据仓库数据分布特点与异构存储容量特点相结合,数据仓库全部的表持久性地存储于大容量闪存,其中数据量最大的事实表度量属性存储于大容量、低成本的PCI-E闪存卡,事实表外键列常驻于内存用于支持高性能计算,而较小的维表可在常驻于内存也可以存储于闪存。这种异构存储模型将数据仓库不同类型的数据,如维表、事实表外键列、事实表度量列在内存和闪存之间进行分布存储。
当内存容量不足以容纳所有事实表外键列时,可以采用如下两种策略:
(1)按内存大小将事实表外键列进行水平分片,划分为内存和闪存外键列两个水平分片,在查询执行时可以同时并行地在内存与闪存分片上执行查询子任务;
(2)当外键列数量较多时,按内存容量将查询最频繁访问外键列常驻于内存,其他外键列存储于闪存,在查询执行时首先执行内存外键列上的查询处理任务,然后再访问闪存上的外键列完成查询处理,相当于对事实表外键列进行垂直分片。
二、基于异构存储模型面向CPU-FPGA异构处理器的内存OLAP查询优化方法。
根据FPGA的硬件计算特性将传统的OLAP查询处理划分为若干个弱耦合的独立计算阶段。OLAP查询主要由SPJGA(选择、投影、连接、分组、聚集)五种关系操作组成,在数据库查询处理引擎中通常按SPJGA的顺序在各个查询树节点中流水地完成S、P、J、G、A操作。
其中,本发明通过优化重组查询处理流程,将迭代处理模型转换为基于数据流的弱耦合计算流程,如图3所示,具体优化查询方法如下:
(1)将SQL查询命令分解为应用于各个维表上的SPG(选择、投影、分组)子SQL命令,按WHERE条件投影出当前维表中GROUP BY子句对应的分组属性,不满足选择条件输出空值,满足条件则输出分组属性值,通过子查询生成一个分组投影向量;
(2)对分组投影向量进行字典表压缩,为不同的分组属性建立字典表并分配字典表编码,当分组属性包含多个属性时,以属性组为单位进行字典表压缩;
(3)按投影字典表将分组投影更新为基于字典表编码的分组投影向量;
(4)分组投影向量与事实表外键进行连接操作,生成用于度量列聚集计算的度量向量,在具体执行连接操作时,采用如下连接方法:
4.1)当维表使用代理键,即连续的自然数列1,2,3…作为主键时(数据仓库常用的形式),事实表外键值可以直接映射为分组投影向量的偏移地址,以外键地址映射代替连接操作;
4.2)当维表不使用代理键时,根据FPGA的应用模式使用两种策略:
4.2.1)当CPU与FPGA共享内存地址空间时,分组投影向量转换为哈希表,事实表外键列与维哈希表执行常规的哈希连接操作;
4.2.2)当FPGA为PCI-E加速卡时,FPGA有独立的设备内存,可以按FPGA内存容量加速事实表外键水平分片上的OLAP查询处理性能。为提高FPGA上的连接操作性能,本发明为维表增加一个代理键列,加载到FPGA内存的事实表外键列分片通过与维表连接键和代理键子表的连接操作将外键列更新为代理外键列,实现外键值与分组投影向量的直接地址映射关系;
4.2.3)将内存外键列全部更新为代理外键列,支持内存外键列与分组投影向量的直接地址映射关系;
4.3)OLAP操作中事实表与维表的连接操作,在本发明中采用如下的执行方式:
4.3.1)采用事实表外键与维表分组投影向量之间地址映射操作时,按各维表分组属性字典表成员的数量,如DM1,DM2,DM3,…,构建多维数组A[DM1][DM2][DM3][…],事实表外键列映射的维表分组投影向量中的字典表编码用作多维数组的维坐标,通过外键列与各维表分组投影向量的地址映射访问构建当前事实表记录在多维数组中的单元地址A[D1][D2][D3][…],然后将其转换为一维数组地址存储于度量向量中;
4.3.2)当使用哈希连接操作时,分组属性为字典表压缩编码,按多维数组相同的方式将各维表分组压缩编码转换为多维数组地址格式,然后转换为一维数组地址格式存储于度量向量中;
与数据库迭代处理模型不同,本发明采用先物化并压缩分组属性,将连接操作中的连接键列与进行聚集计算的度量列分离在两个独立的操作中,连接操作生成的度量向量记录连接操作结果和分组的多维地址编码,从而将较小的事实表外键列与较大的事实表度量列上的计算划分在两个不同的负载中,分别由不同类型的处理器执行计算任务;
(5)基于度量向量的索引聚集计算;
5.1)当多维数组A[DM1][DM2][DM3][…]较小时(低于CPU的L3Cache Slice,通常为2.5MB),使用多维数组作为OLAP查询的分组聚集器,按度量向量中非空位置访问相应的度量属性值,映射到度量向量单元中数组地址对应的多维数组单元进行聚集计算;
5.2)当多维数组A[DM1][DM2][DM3][…]较大并且较为稀疏时(即高于CPU的L3Cache Slice或多维数组中只有较少的单元用于实际的聚集计算),采用哈希分组聚集计算方法,即使用度量向量中各维表分组的多维地址作为哈希键值在度量列上进行哈希分组聚集计算。
三、基于异构存储模型面向CPU、FPGA异构计算平台的内存OLAP查询优化方法。
本发明通过面向内存-闪存的数据仓库存储优化方法和基于数据流驱动的OLAP查询处理方法将传统的流水线查询处理模型转换为弱耦合的计算模块,并实现计算与存储的绑定。面向CPU、FPGA异构计算平台的内存OLAP查询优化方法如下:
(1)当FPGA集成到CPU内部或主板上而与CPU共享访问相同的内存地址空间时:
1.1)维表处理阶段涉及复杂的数据类型及内存数据库管理系统功能,由CPU处理,生成维表分组字典表及维表分组投影向量;
1.2)事实表外键列与维表分组投影向量之间的计算可以由CPU或FPGA执行,当FGPA执行哈希连接代价较高时可以由CPU执行或者通过维表代理键更新内存中的事实表外键,由FPGA执行基于地址映射的连接操作,可以简化算法,提高FPGA计算性能的作用;
1.3)基于度量向量的聚集计算可以由CPU或FPGA执行,当度量向量对应的多维数组较小时,使用FPGA进行聚集计算只涉及索引访问和数组计算,能够简化FPGA电路,提高FPGA计算性能;当度量向量对应的多维数组较大需要采用哈希分组聚集计算时,使用CPU进行聚集计算,避免FPGA在复杂哈希分组计算中的计算性能损失;
由于CPU与FPGA具有相同的内存访问性能,而OLAP查询处理中代价较大的事实表外键连接操作与聚集计算操作在外键地址映射和度量向量技术的支持下大大简化其实现算法,能够在CPU与FPGA上都获得较好的性能,因此任务的调度的目标是平衡OLAP在CPU与FPGA上计算时间。本发明提出的内存OLAP查询处理分为三个阶段:维表处理阶段,生成分组投影向量;事实表外键列连接阶段,生成度量向量;聚集计算阶段,生成OLAP查询结果。
例如,在典型的OLAP场景下,事实表外键连接阶段所占的执行时间比重最高。假设第一阶段在CPU上执行时间为TD,第二阶段在CPU或FPGA上执行时间为TCJ和TFJ,第三阶段在CPU或FPGA上的执行时间为TCA和TFA,则OLAP查询在CPU与FPGA上的执行采用如下策略:
1.1)当TCJ>TFJ,即FPGA的连接性能优于CPU时,OLAP查询的维表处理阶段由CPU执行,然后由FPGA执行事实表外键连接操作,输出的度量向量由CPU执行基于度量向量的闪存索引访问和聚集计算任务;
1.2)当TCJ<TFJ,即CPU的连接性能优于FPGA时,OLAP查询的维表处理阶段和事实表外键连接操作阶段都由CPU执行,输出的度量向量由FPGA执行基于度量向量的闪存索引访问和聚集计算任务,同时,CPU可以异步地执行下一个查询的第一、第二阶段处理任务,与FPGA形成查询间流水并行处理;
(2)当FPGA为PCI-E加速卡配置时,使用FPGA加速连接性能:
2.1)由于PCI-E数据传输代价较高,本发明采用FPGA本地内存计算模式,即用FPGA集成的内存存储FPGA计算数据集,实现FPGA的高性能本地化计算;
2.2)根据FPGA内存容量计算FPGA能够支持的事实表外键及度量向量列分片的大小,确定FPGA内存存储的事实表外键连接数据集的大小;
2.3)如果维表不使用代理键,则在维表中增加代理键列,将FPGA存储的事实表外键列分片中的外键列在加载到FPGA内存时更新为维表代理键值,使FPGA中存储的事实表外键列可以执行简单的与维表分组投影向量之间地址映射操作,简单化FPGA电路设计,提高FPGA计算效率与性能;
2.4)查询处理时,由CPU完成维表处理,生成分组投影向量,通过PCI-E通道传输到FPGA内存,在FPGA内进行事实表外键分片上的连接操作,生成度量向量,通过PCI-E通道传输给CPU,完成其后的分组聚集计算;
基于PCI-E的FPGA加速卡OLAP性能加速取决于FPGA的执行时间与PCI-E传输时间总和是否小于CPU执行时间,即TCJ-TFJ-TT>0,理想的情况是FPGA内存能够容纳全部的事实表外键列和度量向量,由FPGA完成全部的事实表外键连接计算,由CPU完成维表处理和聚集计算,并实现不同查询间在CPU和FPGA设备上不同查询执行阶段的流水并行处理。
(3)当FPGA为PCI-E加速卡配置时,FPGA可以通过PCI-E通道直接访问闪存卡进行数据处理,如图4所示,使用FPGA加速闪存数据处理方法:
3.1)当CPU的事实表外键连接操作性能优于FPGA性能时,由CPU完成主要的查询处理任务,相对于CPU计算,闪存上的数据访问延迟较高,因此CPU的利用率较低,本发明使用FPGA处理聚集计算阶段闪存数据访问及计算任务;
3.2)CPU完成维表处理和外键连接操作后生成度量向量,度量向量通过PCI-E通道传输到FPGA,由FPGA按度量向量索引访问闪存度量列;
3.3)FPGA将度量向量作为位图索引使用,按非空位置访问闪存度量列数据,然后按度量向量中存储的分组压缩编码通过多维数组或哈希表在FPGA本地内存中进行聚集计算,然后输出分组聚集计算结果,通过CPU端的分组字典表对分组编码进行解析后输出OLAP查询处理结果;
其中,在FPGA进行聚集计算时,CPU端可以执行其他并发查询的维表处理及事实表外键连接计算,与FPGA设备上的聚集计算形成流水并行处理。
(4)FGPA良好的集成性使其能够集成到诸多设备中,如PCI-E闪存卡,集成到闪存卡上的FPGA能够直接在闪存上进行数据访问和计算。OLAP的分组聚集计算是将大量度量数据分组为较少的数据子集并进行聚集计算,输出为较小的结果集,通过FPGA实现闪存上的分组聚集计算能够节省大量的CPU与闪存之间的PCI-E通道数据传输带宽。当FPGA集成到闪存中时,如图5所示,通过FPGA加速闪存卡的数据访问及聚集计算性能,实现方法如下:
4.1)本发明将事实表较大的度量数据以列存储形式存储于PCI-E闪存卡中,度量列上的聚集计算规范化为基于度量向量的索引访问和基于分组编码的多维数组聚集或哈希聚集;
4.2)由CPU端完成维表处理和事实表外键连接操作,生成度量向量用于聚集计算;
4.3)根据闪存卡上集成的FPGA内存大小,一次性或分批读入度量向量,按度量向量索引访问闪存卡上存储的度量列;
4.4)根据度量向量从闪存数据页中读取细粒度的度量属性值,通过FPGA内存按度量向量分组压缩编码进行多维数组聚集计算;
4.5)将分组聚集计算下推到闪存卡集成FPGA上执行能够最大限度地减少闪存数据访问的PCI-E传输代价,当使用多维数组聚集计算时,FPGA上执行简单的索引访问和数组地址访问,当需要使用哈希分组聚集时,FPGA上执行索引访问和基于分组压缩编码的哈希分组聚集计算;
4.6)如果分组超过FPGA内存大小或其他不适合FPGA进行聚集计算的情况,则在CPU端将度量向量简化为位图索引,FPGA只执行位图索引访问,如图6所示,闪存内的数据访问单位是页面,FPGA将位图索引对应数据页中的有效数据在FPGA内存中进行缓存,通过多个页面队列缓存抽取出的实际数据,然后通过PCI-E通道传输给CPU内存进行分组聚集计算。
下面结合实施例对本发明做进一步的介绍。
如图7所示,为本发明提出的内存OLAP查询处理过程,整个OLAP查询处理过程被分为三个处理阶段。
在维表处理阶段,SQL命令中维表上的选择、投影、分组操作应用于相应的维表,投影出分组属性,然后对分组属性进行字典表压缩,为不重复值分配唯一的顺序编号,然后更新维表分组投影为分组投影向量,用字典表编码代替原始分组属性值。如customer表上按WHERE子句c_region=’AMERICA’投影出分组属性c_nation,其中的属性值’Canada’和’Brazil’的字典编码分别为0和1,生成与维表具有一一位置映射关系的分组投影向量。同理,supplier表上生成分组投影向量,分组属性三个成员的字典表编码分别为0,1,2。
在事实表外键连接阶段,事实表外键直接映射到维表分组投影向量相应的偏移位置,读取对应的分组值,当任一外键映射位置为空值时,当前事实表记录不满足查询的输出条件,对应的度量向量位置设置为空值;当两个外键值映射的维表分组投影向量位置均不为空时,将对应的分组编码存储为多维数组下标,如事实表第一条记录外键l_CK,l_SK值为2和0,分别映射到维表分组投影向量取值为1和0的位置,将多维数组A[1][0]下标转换为一维数组下标3,存储于度量向量第一个位置。
在聚集计算阶段,顺序扫描度量向量并按非空位置访问对应的度量列记录位置进行聚集计算。如扫描度量向量第一个单元,读取值3,访问度量列l_revenue第一个单元,将度量值946映射到多维数组A[2][3]对应的单元A[1][0](或A[3])中进行累加计算。
当完成所有的聚集计算后,得到多维数组A[2][3],并将其各数组单元下标映射到维表字典表对应的位置,读取实际的分组属性值,生成查询结果记录。如A[1][0]分别对应customer表中nation取值为Brazil和suppl ier表中nation取值为Japan,将多维数组下标还原为分组属性值,并与数组单元中的聚集值组合为输出记录。
在OLAP查询执行时间占比最高的事实表外键连接阶段,算法使用定长的维表分组投影向量、度量向量和外键列,连接操作简化为外键根据值在维表分组投影向量上的位置映射,基于数组访问的算法设计能够极大地简化FPGA电路设计,更好地发挥其并行计算能力。
当通过PCI-E的FPGA进行事实表外键连接和分组聚集计算时,度量向量起到位图索引的作用,用于按位置访问闪存度量列中的查询相关数据。由于闪存以页面访问为数据访问粒度,度量索引上的按位置访问需要能够消除不相关的页面,并将相应度量属性记录所在的页面从闪存加载到PCI-E FPGA加速卡内存,然后完成对度量记录的访问和聚集计算。当OLAP查询的选择率较低时,闪存的PCI-E数据传输效率有一定的浪费。
当闪存中集成了FPGA芯片时,将度量向量推送到FPGA内存,在闪存中完成对度量属性的按位置访问及聚集计算能够最大限度地实现闪存数据的本地化访问和计算,达到优化闪存PCI-E数据传输效率的作用。当FPGA不能支持本地的分组聚集计算时,只需要将度量向量进一步优化为度量列位图索引,在闪存内实现基于FPGA的位图索引访问,也能够为OLAP查询消除无效的闪存与CPU之间的PCI-E数据传输代价。
综上所述,FPGA是一种集成度高、低功耗、高性能的半定制电路,能够实现面向定制应用的高性能硬件级算法加速性能。现代内存数据库中内存与大容量闪存混合存储是提高内存性价比的主流技术,而闪存相对于内存较高的数据访问延迟和较大数据访问粒度所带来的较低的PCI-E通道数据访问效率问题严重影响了内存数据库的整体性能。本发明一方面通过对OLAP算法的优化设计将传统的基于迭代流水处理模式的查询处理转换为弱耦合的三个数据处理阶段,在三个数据处理阶段通过较小的维表分组投影向量、度量向量作为驱动数据,实现三个处理阶段数据访问和计算的局部性,从而使OLAP查询处理各个阶段的处理任务易于在CPU和FPGA上优化分布并最小化PCI-E通道数据传输代价,同时,将OLAP查询处理以离散的计算任务分布在CPU和FPGA端的方法能够更好地支持查询间不同处理阶段的流水并行处理任务;另一方面,当FPGA集成到最底层的PCI-E闪存中时,能够实现在物理存储层的数据访问和计算,通过度量向量和多维数组等简单数据结构以及基于数组的分组聚集算法能够降低FPGA电路的复杂性,提高FPGA的计算效率。
上述各实施例仅用于说明本发明,各部件的数据结构、数据类型、应用位置及实现技术都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别部件进行的改进和等同变换,均不应排除在本发明的保护范围之外。

Claims (7)

1.一种基于FPGA的内存OLAP查询优化方法,其特征在于,该方法包括以下步骤:
步骤一、构建面向内存-闪存的数据仓库异构存储模型:数据仓库全部的表持久性地存储于大容量闪存,其中数据量最大的事实表度量属性存储于PCI-E闪存卡,事实表外键列常驻于内存,而较小的维表常驻于内存或存储于闪存;
步骤二、基于异构存储模型面向CPU-FPGA异构处理器的内存OLAP查询优化方法:
(1)将SQL查询命令分解为应用于各个维表上的SPG子SQL命令,按WHERE条件投影出当前维表中GROUP BY子句对应的分组属性,不满足选择条件输出空值,满足条件则输出分组属性值,通过子查询生成一个分组投影向量;其中,SPG分别表示选择、投影、分组;
(2)对分组投影向量进行字典表压缩,为不同的分组属性建立字典表并分配字典表编码,当分组属性包含多个属性时,以属性组为单位进行字典表压缩;
(3)按投影字典表将分组投影更新为基于字典表编码的分组投影向量;
(4)分组投影向量与事实表外键进行连接操作,生成用于度量列聚集计算的度量向量;
在执行连接操作时,采用如下连接方法:
4.1)当维表使用代理键,即连续的自然数列1,2,3…作为主键时,事实表外键值直接映射为分组投影向量的偏移地址,以外键地址映射代替连接操作;
4.2)当维表不使用代理键时,根据FPGA的应用模式使用两种策略:
4.2.1)当CPU与FPGA共享内存地址空间时,分组投影向量转换为哈希表,事实表外键列与哈希表执行常规的哈希连接操作;
4.2.2)当FPGA为PCI-E加速卡时,FPGA有独立的设备内存,按FPGA内存容量加速事实表外键水平分片上的OLAP查询处理性能;为维表增加一个代理键列,加载到FPGA内存的事实表外键列分片,通过与维表连接键和代理键子表的连接操作将外键列更新为代理外键列,实现外键值与分组投影向量的直接地址映射关系;
4.2.3)将内存外键列全部更新为代理外键列,支持内存外键列与分组投影向量的直接地址映射关系;
4.3)OLAP操作中事实表与维表的连接操作;
(5)基于度量向量的索引聚集计算;
5.1)当多维数组低于CPU的L3 Cache Slice时,使用多维数组作为OLAP查询的分组聚集器,将度量向量中非空位置访问的相应的度量属性值映射到度量向量单元中数组地址对应的多维数组单元进行聚集计算;
5.2)当多维数组高于CPU的L3 Cache Slice并且较为稀疏时,采用哈希分组聚集计算方法,即使用度量向量中各维表分组的多维地址作为哈希键值在度量列上进行哈希分组聚集计算。
2.如权利要求1所述的一种基于FPGA的内存OLAP查询优化方法,其特征在于:所述步骤4.3)中,所述OLAP操作中事实表与维表的连接操作:
4.3.1)采用事实表外键与维表分组投影向量之间地址映射操作时,按各维表分组属性字典表成员的数量构建多维数组,事实表外键列映射的维表分组投影向量中的字典表编码用作多维数组的维坐标,通过外键列与各维表分组投影向量的地址映射访问构建当前事实表记录在多维数组中的单元地址,然后将其转换为一维数组地址存储于度量向量中;
4.3.2)当使用哈希连接操作时,分组属性为字典表压缩编码,按多维数组相同的方式将各维表分组压缩编码转换为多维数组地址格式,然后转换为一维数组地址格式存储于度量向量中。
3.一种基于FPGA的内存OLAP查询优化方法,其特征在于,该方法包括以下步骤:
步骤一、构建面向内存-闪存的数据仓库异构存储模型:数据仓库全部的表持久性地存储于大容量闪存,其中数据量最大的事实表度量属性存储于PCI-E闪存卡,事实表外键列常驻于内存,而较小的维表常驻于内存或存储于闪存;
步骤二、基于异构存储模型面向CPU、FPGA异构计算平台的内存OLAP查询优化方法:
(1)当FPGA集成到CPU内部或主板上而与CPU共享访问相同的内存地址空间时:
1.1)维表处理阶段涉及复杂的数据类型及内存数据库管理系统功能,由CPU处理,生成维表分组字典表及维表分组投影向量;
1.2)事实表外键列与维表分组投影向量之间的计算由CPU或FPGA执行,当FPGA执行哈希连接代价较高时,由CPU执行或者通过维表代理键更新内存中的事实表外键,由FPGA执行基于地址映射的连接操作;
1.3)基于度量向量的聚集计算由CPU或FPGA执行,当度量向量对应的多维数组较小时,使用FPGA进行只涉及索引访问和数组的聚集计算;当度量向量对应的多维数组较大需要采用哈希分组聚集计算时,使用CPU进行聚集计算;
(2)当FPGA为PCI-E加速卡配置时,使用FPGA加速连接性能;
(3)当FPGA为PCI-E加速卡配置时,FPGA通过PCI-E通道直接访问闪存卡进行数据处理;
(4)当FPGA集成到闪存中时,通过FPGA加速闪存卡的数据访问及聚集计算性能;
所述步骤二(2)中,具体步骤如下:
2.1)采用FPGA本地内存计算模式,即用FPGA集成的内存存储FPGA计算数据集;
2.2)根据FPGA内存容量计算FPGA能够支持的事实表外键及度量向量列分片的大小,确定FPGA内存存储的事实表外键连接数据集的大小;
2.3)如果维表不使用代理键,则在维表中增加代理键列,将FPGA存储的事实表外键列分片中的外键列在加载到FPGA内存时更新为维表代理键值,使FPGA中存储的事实表外键列执行简单的与维表分组投影向量之间地址映射操作;
2.4)查询处理时,由CPU完成维表处理,生成分组投影向量,通过PCI-E通道传输到FPGA内存,在FPGA内进行事实表外键分片上的连接操作,生成度量向量,通过PCI-E通道传输给CPU,完成其后的分组聚集计算。
4.如权利要求3所述的一种基于FPGA的内存OLAP查询优化方法,其特征在于:所述步骤二(3)中,使用FPGA加速闪存数据处理方法:
3.1)当CPU的事实表外键连接操作性能优于FPGA性能时,由CPU完成主要的查询处理任务;
3.2)CPU完成维表处理和外键连接操作后生成度量向量,度量向量通过PCI-E通道传输到FPGA,由FPGA按度量向量索引访问闪存度量列;
3.3)FPGA将度量向量作为位图索引使用,按非空位置访问闪存度量列数据,然后按度量向量中存储的分组压缩编码通过多维数组或哈希表在FPGA本地内存中进行聚集计算,然后输出分组聚集计算结果,通过CPU端的分组字典表对分组编码进行解析后输出OLAP查询处理结果。
5.如权利要求4所述的一种基于FPGA的内存OLAP查询优化方法,其特征在于:在FPGA进行聚集计算时,CPU端执行其他并发查询的维表处理及事实表外键连接计算,与FPGA设备上的聚集计算形成流水并行处理。
6.如权利要求3所述的一种基于FPGA的内存OLAP查询优化方法,其特征在于:所述步骤二(4)中,通过FPGA加速闪存卡的数据访问及聚集计算性能具体实现方法如下:
4.1)将事实表较大的度量数据以列存储形式存储于PCI-E闪存卡中,度量列上的聚集计算规范化为基于度量向量的索引访问和基于分组编码的多维数组聚集或哈希聚集;
4.2)由CPU端完成维表处理和事实表外键连接操作,生成度量向量用于聚集计算;
4.3)根据闪存卡上集成的FPGA内存大小,读入度量向量,按度量向量索引访问闪存卡上存储的度量列;
4.4)根据度量向量从闪存数据页中读取细粒度的度量属性值,通过FPGA内存按度量向量分组压缩编码进行多维数组聚集计算;
4.5)当使用多维数组聚集计算时,FPGA上执行简单的索引访问和数组地址访问,当需要使用哈希分组聚集时,FPGA上执行索引访问和基于分组压缩编码的哈希分组聚集计算;
4.6)如果分组超过FPGA内存大小或不适合FPGA进行聚集计算的情况,则在CPU端将度量向量简化为位图索引,FPGA只执行位图索引访问,闪存内的数据访问单位是页面,FPGA将位图索引对应数据页中的有效数据在FPGA内存中进行缓存,通过多个页面队列缓存抽取出的实际数据,然后通过PCI-E通道传输给CPU内存进行分组聚集计算。
7.如权利要求1或3所述的一种基于FPGA的内存OLAP查询优化方法,其特征在于:所述步骤一中,当内存容量不足以容纳所有事实表外键列时,采用如下两种策略:
(1)按内存大小将事实表外键列进行水平分片,划分为内存和闪存外键列两个水平分片,在查询执行时同时并行地在内存与闪存分片上执行查询子任务;
(2)当外键列数量较多时,按内存容量将查询最频繁访问外键列常驻于内存,其他外键列存储于闪存,在查询执行时首先执行内存外键列上的查询处理任务,然后再访问闪存上的外键列完成查询处理。
CN201610232593.3A 2016-04-14 2016-04-14 一种基于fpga的内存olap查询优化方法 Active CN105868388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610232593.3A CN105868388B (zh) 2016-04-14 2016-04-14 一种基于fpga的内存olap查询优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610232593.3A CN105868388B (zh) 2016-04-14 2016-04-14 一种基于fpga的内存olap查询优化方法

Publications (2)

Publication Number Publication Date
CN105868388A CN105868388A (zh) 2016-08-17
CN105868388B true CN105868388B (zh) 2019-03-19

Family

ID=56637654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610232593.3A Active CN105868388B (zh) 2016-04-14 2016-04-14 一种基于fpga的内存olap查询优化方法

Country Status (1)

Country Link
CN (1) CN105868388B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844703B (zh) * 2017-02-04 2019-08-02 中国人民大学 一种面向数据库一体机的内存数据仓库查询处理实现方法
CN108733681B (zh) * 2017-04-14 2021-10-22 华为技术有限公司 信息处理方法及装置
CN107273483B (zh) * 2017-06-06 2019-11-05 贵州易鲸捷信息技术有限公司 稀疏数据的访问方法及系统
CN109032010B (zh) * 2018-07-17 2021-04-20 创新先进技术有限公司 Fpga器件及基于其的数据处理方法
CN110109898B (zh) * 2019-04-23 2023-04-18 超越科技股份有限公司 基于fpga片内bram的哈希连接加速方法及系统
CN110781129B (zh) * 2019-09-12 2022-02-22 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
CN111221912A (zh) * 2020-01-06 2020-06-02 中科驭数(北京)科技有限公司 数据库和硬件之间的数据同步方法及装置
CN111198766B (zh) * 2020-01-06 2021-02-05 中科驭数(北京)科技有限公司 数据库访问操作部署方法、数据库访问方法及装置
CN111309482B (zh) * 2020-02-20 2023-08-15 浙江亿邦通信科技有限公司 基于哈希算法的区块链任务分配系统、装置及可存储介质
CN112328620A (zh) * 2020-11-05 2021-02-05 浪潮云信息技术股份公司 一种分布式数据库查询加速方法
CN114637759B (zh) * 2020-12-16 2023-04-18 金篆信科有限责任公司 数据查询方法、电子设备、存储介质
CN113032427B (zh) * 2021-04-12 2023-12-08 中国人民大学 一种用于cpu和gpu平台的向量化查询处理方法
CN113535745B (zh) * 2021-08-09 2022-01-18 威讯柏睿数据科技(北京)有限公司 一种层次化数据库操作加速系统和方法
CN116028541B (zh) * 2023-02-15 2023-06-20 山东浪潮科学研究院有限公司 一种数据向量化聚集方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678672B1 (en) * 2000-05-31 2004-01-13 Ncr Corporation Efficient exception handling during access plan execution in an on-line analytic processing system
CN103942342A (zh) * 2014-05-12 2014-07-23 中国人民大学 一种内存数据库oltp&olap并发查询优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678672B1 (en) * 2000-05-31 2004-01-13 Ncr Corporation Efficient exception handling during access plan execution in an on-line analytic processing system
CN103942342A (zh) * 2014-05-12 2014-07-23 中国人民大学 一种内存数据库oltp&olap并发查询优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
向量计算Array OLAP查询处理技术;张宇 等;《计算机工程与应用》;20151231;第51卷(第18期);第24-31页

Also Published As

Publication number Publication date
CN105868388A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN105868388B (zh) 一种基于fpga的内存olap查询优化方法
CN102663114B (zh) 面向并发olap的数据库查询处理方法
CN106844703B (zh) 一种面向数据库一体机的内存数据仓库查询处理实现方法
CN104866608B (zh) 一种数据仓库中基于连接索引的查询优化方法
CN104361113B (zh) 一种内存‑闪存混合存储模式下的olap查询优化方法
CN103309958B (zh) Gpu和cpu混合架构下的olap星型连接查询优化方法
CN103294831B (zh) 列存储数据库中基于多维数组的分组聚集计算方法
CN106709067B (zh) 一种基于Oracle数据库的多源异构空间数据流转方法
US8762407B2 (en) Concurrent OLAP-oriented database query processing method
CN110263038B (zh) 一种基于分组向量的哈希多表连接实现方法
CN102663116B (zh) 面向列存储数据仓库的多维olap查询处理方法
CN106372114A (zh) 一种基于大数据的联机分析处理系统和方法
CN100442292C (zh) 一种语义网信息的索引与获取方法
US20120011144A1 (en) Aggregation in parallel computation environments with shared memory
CN104361118B (zh) 一种适应协处理器的混合olap查询处理方法
CN105701200B (zh) 一种内存云计算平台上的数据仓库安全olap方法
US20090254532A1 (en) Accessing data in a column store database based on hardware compatible data structures
CN103729447A (zh) 一种数据库快速检索的方法
CN106126604A (zh) 一种基于分布式数据仓库的社保数据联机分析处理系统
EP2469423B1 (en) Aggregation in parallel computation environments with shared memory
CN113032427B (zh) 一种用于cpu和gpu平台的向量化查询处理方法
CN105930388B (zh) 一种基于函数依赖关系的olap分组聚集方法
CN110022234A (zh) 面向边缘计算的非结构化数据共享机制实现方法
CN110427437A (zh) 一种面向大数据的关系型数据库混合异构查询模型与方法
CN103838680B (zh) 一种数据缓存方法和装置

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
GR01 Patent grant