论文部分内容阅读
随着云计算、物联网、社交媒体和社交网络等信息技术的快速发展,数据量正在以前所未有的速度增长。因此,如何高效地通过压缩技术减少数据存储量和提高存储效率显得尤为重要。RCFile作为一种记录列存储模型,目前存在两个问题影响RCFile存储模型中数据的可压缩性。第一,相同存储节点中的数据大多来自于不同的终端。这种情况导致同一个存储节点中的相邻数据差异较大,当这些数据转换为RCFile存储格式之后,行组中同一行数据之间的相似度相对较低。第二,目前RCFile采用单一的Gzip算法压缩行组各行。这种情况忽略了行组不同行之间的数据类型和数据分布特性。针对上述存在的第一个问题,本文提出一种适用于RCFile存储模型的预分配压缩方法。该方法通过一个预处理分配模型处理来自不同终端的数据。在预处理分配模型中,我们首先定义一组标准数据向量,将数据空间均匀地划分为若干个相似的数据空间,每一个划分后的数据空间对应一个数据存储节点。最后通过预处理分配算法将任意客户端数据向量分配到相应的存储节点。实验结果表明,随着数据空间划分的精细化,我们提出的预处理分配策略能够有效地提高实验数据在RCFile中的可压缩性。针对上述存在的第二个问题,本文提出了一种基于压缩代价的自适应压缩策略。在这个策略中,我们首先定义一个通用的压缩代价用于评估不同压缩算法的压缩性能,继而通过当前行数据样本和参照区样本之间的相似性为当前行推荐压缩算法。为了保证我们提出策略的有效性,我们通过比较当前行的数据压缩率与其前置序列的数据压缩率均值的差值和预先设定的压缩率差值的阈值来决定是否需要为下一组待压缩的数据重新选择压缩算法。最后,在基准数据集TPC-H的实验结果表明,通过基于代价的自适应压缩策略能够有效地提高RCFile存储模型的压缩性能。