收藏 分享(赏)

大数据分析的分布式molap技术.doc

上传人:无敌 文档编号:154424 上传时间:2018-03-22 格式:DOC 页数:28 大小:435KB
下载 相关 举报
大数据分析的分布式molap技术.doc_第1页
第1页 / 共28页
大数据分析的分布式molap技术.doc_第2页
第2页 / 共28页
大数据分析的分布式molap技术.doc_第3页
第3页 / 共28页
大数据分析的分布式molap技术.doc_第4页
第4页 / 共28页
大数据分析的分布式molap技术.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、大数据分析的分布式 MOLAP技术 宋杰 郭朝鹏 王智 张一川 于戈 Jean-Marc PIERSON 东北大学软件学院 东北大学信息科学与工程学院 Laboratoire IRIT, Universit Paul Sabatier 摘 要: 大数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战, 学界和业界广泛采用分布式文件系统和 MapReduce编程模型来应对这一挑战.提出了大数据环境中一种基于 Hadoop分布式文件系统 (HDFS) 和 MapReduce编程模型的分布式 MOLAP技术, 称为 DOLAP (distributed OLAP) .DOLAP采用一种特殊的多

2、维模型完成维和度量的映射;采用维编码和遍历算法实现维层次上的上卷下钻操作;采用数据分块和线性化算法将维和度量保存在分布式文件系统中;采用数据块选择算法优化 OLAP的性能;采用 MapReduce编程模型实现 OLAP操作.描述了 DOLAP在科学数据分析的应用案例, 并与主流的非关系数据库系统进行性能对比.实验结果表明, 尽管数据装载性能略显不足, 但 DOLAP的性能要优于基于HBase, Hive, HadoopDB, OLAP4Cloud等主流非关系数据库系统实现的 OLAP性能.关键词: 大数据; 多维数据模型; OLAP; MapReduce; 作者简介:宋杰 (1980-) ,

3、男, 安徽淮北人, 博士, 副教授, CCF 高级会员, 主要研究领域为云计算, 高能效计算, 海量数据计算.E-mail:作者简介:郭朝鹏 (1990-) , 男, 硕士生, 主要研究领域为海量数据计算.E-mail:作者简介:王智 (1991-) , 男, 硕士生, 主要研究领域为高能效计算.E-mail:作者简介:张一川 (1981-) , 男, 博士, 讲师, CCF 会员, 主要研究领域为云计算, 迭代计算.E-mail:作者简介:于戈 (1962-) , 男, 博士, 教授, 博士生导师, CCF 高级会员, 主要研究领域为先进数据库系统, 分布与并行式系统, 大数据管理, 云计算

4、系统.E-mail:作者简介:Jean-Marc PIERSON (1970-) , 男, 博士, 教授, 博士生导师, 主要研究领域为分布式系统, 高能效计算, 大数据管理, 云计算.E-mail:piersonirit.fr收稿日期:2013-10-15基金:国家自然科学基金 (61202088) Distributed MOLAP Technique for Big Data AnalysisSONG Jie GUO Chao-Peng WANG Zhi ZHANG Yi-Chuan YU Ge Jean-Marc PIERSON Software College, Northeaste

5、rn University; School of Information and Engineering, Northeastern University; Laboratoire IRIT, Universit Paul Sabatier; Abstract: To address the new challenges that big data has brought on data storage, management and analysis, distributed file systems and MapReduce programming model have been wid

6、ely adopted in both industry and academia. This paper proposes a distributed MOLAP technique, named DOLAP (distributed OLAP) , based on Hadoop distributed file system (HDFS) and MapReduce program model. DOLAP adopts the specified multidimensional model to map the dimensions and the measures. It comp

7、rises the dimension coding and traverse algorithm to achieve the roll up operation on dimension hierarchy, the partition and linearization algorithm to store dimensions and measures, the chunk selection strategy to optimize OLAP performance, and MapReduce to execute OLAP. In addition, the paper desc

8、ribes the application case of the scientific data analysis and compares DOLAP performance with other dominate non-relational data management systems. Experimental results show that huge dominance in OLAP performance of the DOLAP technique over an acceptable performance lose in data loading.Keyword:

9、big data; multi-dimensional data model; OLAP; MapReduce; Received: 2013-10-15近年来, 随着大数据时代的到来以及互联网、传感器和科学数据分析等领域的快速发展, 数据量近乎每年在成倍地增长1.无论是在科学领域 (生物学、地理学、天文学、气象学等) , 还是在工程领域 (网络数据分析、市场数据分析等) , 都面临着数据雪崩的问题2, 大数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战3,4.OLAP (on-line analytical processing) 联机分析处理是共享多维信息的、针对特定问题的联机数

10、据访问和分析的快速软件技术5, OLAP 按照其实现方式不同, 可以分为 3 种类型, 分别是 ROLAP, MOLAP和 HOLAP6.其中, ROLAP 采用关系表存储维信息和事实数据;MOLAP 则采用多维数据结构存储维信息和事实数据;而 HOLAP称其为混合 OLAP, 该方法结合了 ROLAP和 MOLAP技术7.无论是何种 OLAP, 都需要存储和计算平台的支持, 尤其是在大数据环境下.为了解决大数据所带来的诸多挑战, 学界和业界涌现出许多新技术, 如分布式文件系统8、No SQL 数据库系统9、Map Reduce 编程模型10以及相关的优化方法, 这些技术都被广泛地运用到大数据

11、分析中.Map Reduce 编程模型是广为人知的可扩展、灵活且高效的分布式编程框架.Hadoop 是 Map Reduce的开源实现, 可对海量数据进行可靠、高效、可扩展的并行处理.基于 Hadoop11的实现, 涌现出大量的分布式数据管理系统, 并广泛地运用在大数据管理和分析领域, 如 Hive12, HBase13, Hadoop DB14等.一方面, 尽管这些数据管理系统均可支持 OALP, 但其性能往往不尽如人意.例如, 基于 HBase的 OLAP引擎 OLAP4cloud15框架属于一种基于云计算技术的 OLAP实现, 它采用列存储数据存储结构以及索引等技术优化 OLAP的性能.

12、但是, OLAP4cloud 并不提供维信息的管理, 也无法直接支持上卷下钻操作, 因此, OLAP4cloud 仅限于支持对度量数据的查询和简单的聚集操作.另一方面, 这些数据库系统均未针对 OLAP进行特殊的优化, 我们之前的研究16表明, 连接操作在 ROLAP中是非常频繁且相当耗时的操作, 当数据量或维数量增加时, 连接操作会成为 OLAP的瓶颈.MOLAP可以避免数据集的连接操作, 因此在性能方面有着天生的优势, 但 MOLAP需要集中式存储多维数据模型, 且耗费大量空间, 如何基于分布式文件系统和Map Reduce模型实现 MOLAP模型则是一个难题.据我们所知, 在大数据分析领

13、域, 尚未有关于分布式 MOLAP技术的权威报道, 也鲜有成熟的基于 Map Reduce的 MOLAP系统, 该问题亟待解决.本文研究大数据环境下基于 Map Reduce的分布式 MOLAP技术, 称为 DOLAP (distributed OLAP) .DOLAP采用一种特殊的多维模型完成维和度量的映射;采用维编码和遍历算法实现维层次上的上卷下钻操作;采用数据分块和线性化算法将维和度量保存在分布式文件系统中;采用数据块选择算法优化 OLAP的性能;采用 Map Reduce编程模型实现 OLAP操作.在 DOLAP技术的基础上, 我们基于Hadoop实现了一个 OLAP系统 Hao La

14、p (hadoop OLAP) , 设计了一系列测试用例, 将 Hao Lap与 Hive, Hadoop DB, HBase和 oalp4cloud等进行性能测试和比较.实验结果表明, Hao Lap 的数据装载性能不具优势, 但其 OLAP性能优势明显, 且性能与原始数据集规模以及查询复杂程度无关, 尤其适合高维数据立方的 OLAP操作.Hao Lap 仅依赖分布式文件系统存储数据, 不引入额外的存储代价, 数据立方通过计算获得, 对于立方的每个维, 仅存储维级别名称和每个维级别中维值的个数, 不同于传统 MOLAP系统耗费大量空间存储数据立方.由于篇幅原因, 本文略去了 Hao Lap系

15、统的实现细节.本文第 1 节介绍相关工作.第 2 节介绍维编码及事实存储, 其中包括简化的多维数据模型的定义、维编码和维遍历算法、数据立方分块、存储以及寻址算法等, 并给出数据立方建模和存储的应用案例 Ocean Cube.第 3节重点介绍基于Map Reduce的 OLAP算法.第 4 节首先采用真实的科学数据集 Ocean Cube, 通过 3 组实验分别测试和比较 DOLAP在数值型数据上的数据装载、切块操作、上卷操作和存储代价, 随后采用 SSB基准测试比较 DOLAP在枚举型数据上的 OLAP性能, 并总结实验结论.第 5 节总结全文并提出进一步工作.1 相关工作目前已有很多关于大数

16、据或云计算环境下的 OLAP优化方法研究, 本节主要从以下两个方面介绍相关工作:大数据环境中的 OLAP优化技术和分布式的 OLAP系统.大数据环境中, 常用的 OLAP优化方法有以下两种:利用预计算和浓缩数据立方的结果优化 OLAP性能17和通过优化存储结构和算法来优化 OLAP性能, 其中, 后者与本文最为相关.文献18提出了 OLAP查询中的 SPAJG-OLAP子集, 在存储、查询、数据分布、网络传输和分布式缓存等方面研究海量数据大规模并行处理框架的优化策略和实现技术, 实验证明, 效果良好.该研究基于并行数据库技术优化 ROLAP性能, 通过对 OLAP查询以及存储的优化达到加速 O

17、LAP的目的.文献19指出:在 Web应用中, 需要同时提供对海量数据的事务操作和决策分析, 并介绍一种能够同时有效支持 OLTP和 OLAP的数据存储系统.通过建立索引、数据分块、预计算等方式, 有效地提高了 OLAP的性能.本文同样是通过优化查询以及数据存储来提高 OLAP的执行效率, 但不同的是, 本文研究的优化方案基于Map Reduce.同时, 针对 Map Reduce连接操作的低效性, 本文研究提出了DOLAP技术, 大大提高了 OLAP的执行效率.文献20指出, 传统的 OLAP分析无法很好地适用于大数据分析.该文根据短消息数据的特点, 设计了一种基于 Hadoop的有效存储格

18、式, 并使用 Map Reduce实现了 OLAP操作, 更好地适应了 SMS (short message service) 业务中对短消息进行数据分析的需求.该文利用了特殊的数据结构来优化 OLAP操作的性能, 但该研究的适用面较窄.文献21基于 Map Reduce, 通过数据的筛选策略减少了数据在网络中不必要的传输, 从而优化了复杂云环境中的 OLAP性能.该研究重点关注云环境的复杂性以及网络延迟等因素对 OLAP性能的影响, 是大数据环境下 ROLAP的一种优化策略, 其优化方法与本文研究存在本质区别.就分布式的 OLAP系统而言, 一些基于 Hadoop的数据库系统, 例如 Hiv

19、e, Hadoop DB, HBase, Mongo DB, OLAP4cloud等都支持 OLAP分析.Hive 是一个基于 Hadoop的数据仓库系统, 为数据分析人员提供了类 SQL接口, 支持大数据分析.Hadoop DB 将 Map Reduce和关系数据库技术结合起来, 以管理和分析大数据;HBase 则是面向列存储的开源数据库系统.这些数据库将海量数据存储在分布式文件系统中, 通过 Map Reduce完成上卷下钻等操作, 属于分布式的 ROLAP技术, 其中, 维表和事实表的连接运算是一个性能瓶颈.OLAP4cloud 是基于HBase的 OLAP引擎, 它将维表直接压缩到事实

20、表中, 并提供一种特殊的索引来加快寻址, 采用数据立方预计算方法, 属于一种近似 MOLAP实现.与分布式的MOLAP技术最为相关的是文献22, 该文尝试使用多维数组存储海量数据, 并将建立的存储模型运用到了基于 Hadoop的数据分析工具 Pig23中, 且通过实验证明了该存储模型在占用大量存储的同时提高了 OLAP分析性能.为减少存储开销, 本文使用多维数组存储维信息而非事实数据;除此之外, 本文还提出了维相关的遍历算法以及数据筛选算法.综上所述, 尽管学界注意到大数据对 OLAP分析提出的挑战, 且已有部分研究分别从模型、存储、算法和预计算角度对传统 OLAP进行了优化, 但尚未有权威的

21、大数据环境下分布式的 MOLAP技术的研究报告.与此同时, Hadoop 也逐渐成为开源领域大数据分析的主流技术, 但是基于 Hadoop的分布式的 MOLAP系统研究仍然尚未成熟.2 维编码及事实存储2.1 数据模型OLAP采用的多维数据模型包括维和事实两部分, 其关键操作是找到维和事实的映射关系.ROLAP 采用关系数据库以及星形模式或雪花模式, 将维信息和事实数据分别存储于关系数据库表中, 并使用外键完成维信息和事实数据的映射.但是ROLAP涉及到大量的连接操作, 性能较低.MOLAP 采用多维数组存储维和事实, 通过对维进行编码和对事实数据直接寻址的方式获得其映射关系, 从而避免了连接

22、操作的开销.但 MOLAP需要以一种集中的方式维护维和事实的映射, 由于一个维可以包含多个层次, 每个层次可以包含若干个级别, 维和事实又是一对多的关系, 所以维模型具有复杂性.为了避免额外的存储和维护代价, DOLAP 首先对维进行了简化, 以适应分布式环境, 同时降低 OLAP算法的复杂程度.本节重新定义维和事实数据, 同时也定义了其他相关术语.定义 1 (维 (dimension) ) .在多维数据模型中, 维将所有的数据项分类至一个无重叠的数据结构中, 并且提供数据项的筛选、组织和标识方法.本文研究对维的定义进行了简化, 简化后的维基于多维模型的维定义, 并遵循以下 3 个约束:设 d

23、为维, 则, 1) d有且仅有 1个维层次;2) d是 m个维级别所组成的集合, 记为l 1, l2, ., lm.设 li (i1, m) 为任意一个维级别, 则 li仅包含 1 个维属性, 且包含 ni个维值;3) 将 d视作由各级别的维属性取值所组成的树形结构 (维值树) , 则同一级别的兄弟节点包含有相同数目的子节点.基于上述假设, 维 d由以下两部分组成:1) 维模式 (dimension schema) 包含:m 个维级别的有限集 L (d) , 且这些维级别仅包含一个概念层次 (concept hierarchy) ;在集合 L (d) 上存在一个全序关系 , 上卷 (roll-

24、up) 操作是指沿着概念层次向上攀升.如果有关系 成立, 那么认为 lj可以上卷到 li;2) 维实例 (dimension instance) 包含:函数 md可以获得维级别的维属性取值集合, 对于 li而言, 仅包含 1个维属性, 该维属性包含 ni个取值, |m d (li) |=ni;上卷函数 , 对每个关系 满足, 且 满足 ;.为简便起见, 如果不加说明, 本文中“维”均指符合定义 1 的维.定义 2 (度量 (measure) ) .度量 u是一个独立变量, 它们参照每个维的某一维值, 并作为 OLAP的分析对象.度量的粒度是度量参照的维值所在的维级别, 最细粒度的度量参照每一维

25、 d中的最低维级别的某一维值.设 u参照维集合 D=d1, d2, , dn, , 即集合 D可以确定度量 u, 记作 Du, 则满足: (d有 m个维级别) , 其中, vu 是指维值 v可以确定度量 u.定义 3 (单元格 (cell) ) .在逻辑视图中, 单元格是由若干不同的度量组成的原子单元, 这些度量都参照相同的维值.对于维集合 D而言, 单元格可以表示为度量的集合, 记作u|Du.定义 4 (数据立方 (cube) ) .根据定义 1定义 3, 数据立方是 OLAP中的多维数据结构, 简称立方.数据立方的维符合定义 1, 且由若干单元格组成.定义 5 (块 (chunk) ) .

26、块是数据立方的逻辑划分, 一个数据立方可以根据维的取值分成多个块.图 1 是由 3 个维 (x, y, z) 所组成的立方, 图中较小的方格代表单元格, 较大的方格代表块.在实际操作中, 块中有可能包含一些空的单元格, 即, 该单元格中没有任何度量.在实际应用中, 为了减少立方占用物理空间的大小, 若单元格内没有任何度量, 则在该块文件中不保存该单元格的记录.Fig.1 Example of data cube图 1 数据立方示例 下载原图2.2 维算法在 OLAP操作中, 对维的操作是非常频繁的.维的编码和遍历算法是 MOLAP的关键技术, 本节将对 DOLAP技术中维的编码和遍历算法进行阐

27、述.2.2.1 维编码算法维编码方法主要包括二进制编码和十进制编码.二进制编码也称作位图编码, 通过编码的拼接可以包含维的级别信息, 通过编码的移位实现维的遍历, 但是二进制编码会造成很大程度上的稀疏24;十进制编码是对每个维级别的维值依次使用十进制数编码, 但是无法直接获得编码和维值的映射.在大数据环境中, 为了避免稀疏, DOLAP 采用十进制的编码方法, 同时提出了维的遍历算法来计算编码和维值间的映射关系.设 l是维 d中的某个维级别, 对 的编码为 code (vx) , 则 code (vx) =x-1.该编码方法如算法 1 所示.算法 1. 维编码算法.在实际应用环境, 绝大部分维

28、是数值型的, 例如高度、经度、价格、流水号等.数值型的维可以按照其值域进行划分, 不同的划分步长可以确定不同的维级别, 因此, 数值型的维可以很容易地满足定义 1 的约束条件.但是还存在一部分非数值型的枚举型的维, 例如日期、城市、部门等.为使枚举型维符合定义 1, 可以使用一些空值填补维值树, 使同一级别的兄弟节点包含有相同数目的子节点.图 2 展示了日期维的编码结果.在“月”级别上, 每个月的天数是不同的, 为了满足定义 1, 设每个月有 31 天, 所以在图 2 中的 2 月插入了“29 日”、“30 日”和“31 日”这 3 个空值.Fig.2 Example of date dime

29、nsion coding图 2日期维编码示例 下载原图对于实际应用中更为复杂的维, 采取化简、划分维层次的方法使其形成维值树, 使用空值填补维值树的方法使其满足定义 1 的约束条件.例如, 针对 TCP-H25数据集中的维模式, 处理方法如下: 通过取舍和合并的方法, 化简 TCP-H的雪花模式为星型模式, 其结果为 SSB26数据集中的维模式; 针对 SUPPLIER维表, 使用区域属性 (Nation, Region, City) 作为划分维层次的依据, 得到维层次 Nation-Region-City; 在维 Nation-Region-City的维值树中添加空值, 使其满足定义 1 的

30、约束.2.2.2 维遍历算法DOLAP的维可以看作是一棵特殊的单根树, 记作 T, 其中, ALL 是 T的根节点, 记为第 0 级别.每个维级别中的维值可以看作维值树中的节点, 同时, 每一个兄弟节点都有相同数目的子节点, 如图 2 所示.OLAP 操作中涉及到大量对维值树 T的遍历操作.例如, 沿着 T攀升 (即上卷) 或沿着 T下降 (即下钻) .设有关系 , 那么 v和 v之间的上卷关系 是OLAP中的关键操作.编码机制将能够表征这种上卷关系, 我们可以通过编码运算实现 T中的上卷操作.本节首先引入维级别规模的概念, 并通过对节点 v和 v的编码的运算获得关系 .至于从 vi到 vi+

31、1的下钻操作, 可以等同地视作从 v至 v的上卷操作, 此处不再赘述.定义 6 (维级别规模 (dimension level size) ) .设 d是一个维, 由 m个维级别组成, 第 i个维级别记作 li (i1, m-1) , 维级别规模记作|l i|, 则 , 其中, 是指维级别中符合条件的维属性取值的集合, 是指该集合的大小.根据定义 6, 维级别规模是指在维值树中上层维级别中任意节点子节点的个数.设 是 T中自上而下的一条分析路径, v 在其兄弟节点间的位置记为 order (v) (兄弟节点拥有共同的父节点, 且其位置计数从 0 开始, 从左至右) , 则编码与位置的关系可表述

32、为公式 (1) .对于图 2 中的路径.同理, 当给出 code (v) 时, order (v) 到 order (v) 的值可通过公式 (2) 计算得到:联合公式 (1) 和公式 (2) , 对于给定的 code (v) , 可以计算出其对应的所有父节点的编码, 即 code (v) 到 code (v) 的值, 从而可以进行上卷操作.例如图 2 中, 在“天”维级别中, 已知 code (2) =32, 其路径为1990, 2, 2 , 根据公式 (2) , 已知 code (2) =32, |l3|=31, |l2|=12, |l1|=50, 则 order (2) =1, order

33、 (1990) =0;再根据公式 (1) , 可以计算得到 code (2) =1, code (1990) =0.2.3 数据立方分块将数据立方划分为块的目的是在 OLAP过程中对数据进行筛选, 从而优化 OLAP的性能.同时, 块也可以作为数据立方的存储单元.本节首先定义维、数据立方以及块的规模和容量, 而后讨论数据立方的分块策略.定义 7 (维规模 (dimension size) ) .维规模是指最底层维级别的维值个数.设 d是一个维, 包含 m个维级别, 记作 l1, l2, ., lm.记|d|为维 d的规模, 则 .定义 8 (立方规模 (cube size) 和立方容量 (cu

34、be capacity) ) .立方规模是由组成立方的维的规模构成的元组, 立方容量则是立方内包含的单元格的个数.设立方由 n维组成, 其中第 i个维记作 di (i1, n) .立方规模为 , 立方容量为 .定义 9 (块规模 (chunk size) 和块容量 (chunk capacity) ) .块规模是一个由该块包含的每个维最底层维级别上维值的个数构成的元组, 块容量是块包含的单元格的个数.设块由 n维组成, 其中第 i个维记作 di (i1, n) , 且 di被划分为 pi份.记块的规模为|chunk|, 则 , 其中, , 块容量为 .DOLAP的性能与|chunk|的取值密切

35、相关, |chunk|取值越小, 并行性越好, 实际参与运算的单元格数量越少, 但此时调度代价变高.如何折中地确定|chunk|的取值, 将变得十分关键.借鉴文献27, 本文提出了一种通过查询条件及其出现的概率来确定块容量的方法, 但我们难以穷举所有查询条件及其出现概率, 所以该方法采用随机抽样, 抽取一些查询条件及其出现概率.除此之外, |chunk|的取值还应该考虑算法的运行环境.DOLAP 利用 Map Reduce来实现, 所以|chunk|的取值还需考虑 Map Reduce的一些特性, 例如文件寻址时间、数据处理时间等.表 1 列出了相关符号的定义, 其中, i为变量, T 和 Na是计算结果, 其他为已知常量.Table 1 Definition of notations表 1 相关符号定义 下载原表 平均一个查询命中的块个数 Na可以通过每个查询条件出现的概率得到, 如公式 (3) 所示:考虑 Map Reduce相关的一些影响因素之后, 可以得到一个 OLAP操作消耗的平均时间, 如公式 (4) 所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报