关键词:
数据仓库
列存储
RB+树索引
位图索引
摘要:
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。数据仓库中的数据量非常大,并且在逐年增大。因此提高查询速度是数据仓库必须要实现的一个功能。 数据仓库中索引建立的好坏直接影响数据仓库的查询速度,索引的类型有很多,创建索引能提高查询的执行效率,但是创建过多索引而会带来额外的索引维护和管理开销。如何为合适的字段建立合适的索引,提高列存储多维数据仓库中各种分析查询的性能,是一个机会,也是一个挑战。 本文针对列存储数据仓库管理系统中的索引技术展开了研究与分析,具体的工作如下: (1)研究当前主流列存储数据仓库管理系统(如Sybase IQ、C-Store、MonetDB、Infobright)中索引技术,分析达梦数据库实验室中列存储数据仓库管理系统D3WMS (Donghua Dameng DWMS)的体系、特点及SSB数据集结构,以及典型的SQL查询语句中涉及到的索引类型。 (2)分析研究D3WMS中已存在的RB+树索引,验证其空间和查询速度性能。改进其叶子结点结构,进一步提高索引的空间利用率。 (3)针对低基数数据,设计实现位图索引,并提出了基于压缩位图的直接计算方法CBT(Compressed Bitmap Index Execute Technology),优化了位图索引的查询算法。RB+树索引将数据源区分为定长和变长数据两类,统一创建行号索引和列值索引。这种分类方式没有考虑数据列基数高低的特性,造成了极大的空间冗余。位图索引能够有效地改善低基数数据的冗余情况,极大地提高空间利用率和查询效率。 (4)针对高基数、具有层次关系的列数据,提出并设计了层次编码位图索引,极大地减少了列数据及维表上需要建立的位图、位向量个数,降低了索引存储空间,提高了查询效率。 本文实验以D3WMS为平台,以数据仓库基准数据集SSB为测试对象,进行了以下六方面的实验:1)RB+树索引和传统B+树索引的对比;2)RB+树与改进的RB+树空间利用率对比;3)基于压缩位图索引的CBT优化方法与原始位图索引方法的查询性能对比;4)压缩位图索引与源位图索引占用空间的比较;5)利用CBT技术实现分组查询的性能;6)层次编码位图空间占用率对比。实验证明,本文提出的索引方法能有效减少索引空间占用率,提高查询效率。