一种数据仓库中基于连接索引的查询优化方法

文档序号:8543806阅读:881来源:国知局
一种数据仓库中基于连接索引的查询优化方法
【技术领域】
[0001] 本发明设及一种种数据仓库领域中的查询处理方法,特别是关于一种数据仓库中 基于连接索引(joinindex)的查询优化方法。
【背景技术】
[0002] 数据仓库是一种基于多维数据模型的复杂数据集,在基于数据库的 0LAP巧elational0LAP,R0LAP)查询处理时需要将事实表和多个维表连接起来执行复杂的 分析查询命令,连接操作的性能一直是分析型查询处理(0LA巧最重要的问题。连接索引 是一种通过预连接创建两个或多个表记录之间连接关系的索引,连接索引中记录了不同表 之间连接记录的地址关系。在查询处理时,通过连接索引可W直接获得两个表连接记录的 地址完成连接操作,消除按照连接键值进行查找的连接操作代价。连接索引主要应用于分 析型数据库中,用W优化代价较大的两表或多表之间的连接操作。位图连接索引化itmap joinindex)是连接索引的扩展技术,它是面向两个表的连接关系创建的位图索引,数据仓 库中通常使用位图连接索引优化维度表和事实表的连接操作性能。位图连接索引可W理解 为在事实表上为与事实表连接的维表属性创建的位图索引,当查询的W肥RE子句中包含该 维表属性的谓词表达式时,通过位图连接索引可W快速返回满足事实表和维表连接条件W 及谓词表达式的维表属性所对应的事实表的行。连接索引是数据仓库中提高事实表与维表 间连接操作性能的重要技术,它的主要缺点是索引存储空间代价较大,当0LAP查询中设及 事实表与多个维表之间的连接操作,W及查询中设及维表上的多个属性时,连接索引的存 储空间代价随之增加,维表属性上取值数量的增加也导致在位图连接索引中位图计算代价 的增长。当前数据仓库应用特点从多维查询向高维查询过渡,0LAP查询中包含越来越多的 连接表和维表属性,且更新频率越来越高,传统的连接索引技术面临巨大的存储和索引维 护代价。

【发明内容】

[0003] 针对上述问题,本发明的目的是提供一种数据仓库中基于连接索引的查询优化方 法,该方法适应于大内存、多核处理器平台上的内存列存储数据仓库的实时0LAP查询处理 应用,能有效提高位图索引的计算性能,并且能与GPU、Intel?XeonPhi?等高性能协处理 器相结合,加速索引计算性能。
[0004] 为实现上述目的,本发明采取W下技术方案;一种数据仓库中基于连接索引的查 询优化方法,其特征在于:所述查询优化方法包括W下步骤;1)创建基于维表代理键的事 实表外键连接索引;2)创建连接索引更新策略:当维表中插入新记录时,自动为其分配新 的代理键值;代理键不包含语义,记录的更新操作只修改语义属性值,不对代理键进行修 改;数据仓库中被参照的表中记录的删除需要满足参照表中相应记录首先被删除的条件; 3)当维表上存在谓词条件时,通过连接索引直接访问维表记录后需要进行谓词判断,参照 位图连接索引通过动态位图连接索引计算生成连接位图索引,优化事实表扫描性能;4)在 数据仓库中,当维表上的选择率很低时,维表位图进一步压缩W提高维表位图计算的cache层次;5)采用基于协处理器内存计算的参照位图连接索引计算方法,只使用数组和位图数 据结构,计算简单的内存地址访问,能够在众核协处理器上完成计算过程。
[0005] 所述步骤1)中,当维表采用列存储或定长记录的行存储时,维表代理键直接映射 为维表记录的偏移地址,事实表外键列的值直接映射为维表记录偏移地址,实现基于连接 索引的查询处理。
[0006] 所述步骤1)中,创建连接索引包括W下几种策略;(1)当维表使用代理键作为主 键时,事实表外键直接作为连接索引;(2)当维表主键不是代理键但能函数映射为代理键 时,通过函数映射实现连接索引;(3)当维表主键是复合主键或不能函数映射为代理键的 主键时,通过主-外键同步更新或增加代理键外键的方法创建连接索引;(4)事实表与维 表之间,W及雪花模型中维表之间基于代理键参照引用的外键机制使外键作为连接索引使 用,优化表间连接操作。
[0007] 所述步骤2)中,当维表记录需要删除时,需要保证代理键的顺序性,采用两种更 新策略;(1)设置一个删除向量D_Vec,存储删除的维表记录的代理键值,保留当前删除记 录的存储空间;当插入新记录时,为新记录分配删除向量中的代理键值,将新插入的记录写 入删除记录代理键对应的存储空间,填补删除记录留下的记录空洞;(2)通过记录交换实 现记录删除;当维表记录删除后,将维表中最后一条记录置换到当前删除记录的位置,代理 键更新为当前位置的代理键值,同时需要在事实表中将交换的维表记录对应的外键更新为 置换后的代理键。
[000引所述步骤3)中,参照位图连接索引的计算过程分为W下几个步骤;(1)根据查询 谓词生成维表位图,将S化命令分解为在各个维表上的选择子句,根据维表过滤条件创建 维表位图,事实表外键按维表位图的大小和选择率优先执行与较小的、低选择率的维表位 图上进行的参照位图连接索引计算;(2)通过事实表外键连接索引映射到维表位图,根据 维表位图映射位置的取值生成连接位图,连接位图中满足维表查询条件的位置设置为1,否 则置为0 ; (3)按照连接位图中1的位置访问下一个事实表外键对应的偏移地址,将其对应 的值映射到下一个维表位图的位置,根据维表位图该位置的值更新连接位图对应的位置的 取值;依次处理完各个事实表外键列后生成查询最终的连接位图,即连接位图通过事实表 外键参照维表位图而动态生成。
[0009] 所述步骤4)中,将原始维表位图中连续的512位映射为一个二级位图位,较小的 二级位图比原始的维表位图具有更高的cache访问性能;二级位图机制对应低选择率查 询,当查询选择率低于0. 195%时能将大量的维表位图内存访问优化为对较小二级位图的 cache访问。
[0010] 所述步骤5)中,基于协处理器内存计算的参照位图连接索引计算方法包括W下 步骤;(1)划分连接位图索引计算数据集;根据协处理器内存容量划分用于连接索引位图 计算的数据集;(2)维表位图创建及复制:将查询改写为维表上的谓词操作并在相应的维 表上创建维表位图,然后将维表位图通过PCI-E通道传输到协处理器内存;(3)连接位图索 引计算;在协处理器上,对协处理器内存中的事实表外键列和从CPU内存复制的维表位图 进行并行的连接索引位图计算,生成连接索引位图,标识事实表中满足查询谓词条件的记 录偏移地址;(4)连接位图索引传输;当查询的选择率较高时,将连接索引位图直接传输给 CPU,当查询的选择率很低时,将连接索引位图转换为压缩形式,即记录位图中1位置的向 量,将较小的连接索引向量传输给CPU;当采用INT型向量时,当查询选择率低于3. 125% 时,向量存储的空间低于位图;(5)基于连接位图索引的查询处理:基于连接索引能实现一 种"无连接"的查询处理,通过事实表外键向维属性列的直接地址映射访问完成查询处理任 务,也能将连接位图索引作为事实表上的一种索引访问机制,为数据库查询处理引擎提供 额外的索引访问功能。
[0011] 所述步骤(1)中,划分连接位图索引计算数据集的最优方案为按照数据仓库中事 实表外键的大小配置具有同等大小内存的协处理器;当协处理器内存小于事实表外键列大 小时,采用水平分片或垂直分片的方式将数据仓库的一个水平分片的全部外键列或者访问 频率较高的外键列存储于协处理器内存,完成对数据仓库子集或部分维度上的连接位图索 引计算。
[0012] 所述步骤巧)中,协处理器完成连接索引位图计算后将连接索引位图传回CPU,通 过位图或向量对庞大的事实表进行索引访问。
[0013] 本发明由于采取W上技术方案,其具有W下优点;1、本发明利用数据仓库通用的 维表代理键(连续的自然序列,如1,2, 3-〇机制实现事实表外键与维表代理键的直接映 射,将事实表外键转换为连接索引,减少连接索引额外的存储开销与维护代价。2、本发明通 过
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1