多维立方体逐层构建算法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1.Cube构建算法

两种策略:

1、layer每一层诶一层的来,运行多个MR,延迟高,但是相对稳定。

2、in-memory无论多复杂,就一个MR,占用资源多,如果资源不够,运行会不成成功功

1.1.逐层构建算法(layer)

如下图所示,总共四个维度的cube构建的流程演示:

第一层:按照所有维度做groupby的聚合

第二层:维度递减

我们知道,一个我们知道,一个NNN维的维的维的CubeCubeCube,是由,是由,是由111个个个NNNN维子立方体、维子立方体、维子立方体、维子立方体、NN

我们知道,一个维的Cube,是由个维子立方体个(N-1)维子立方体、N*(N-1)/2个(N-2)维子立方

体体体、、、、、NNN个个个个1111维子立方体和维子立方体和111个个个个0000维子立方体构成,总维子立方体构成,维子立方体构成,维子立方体构成,总2^N个子立方体组成,在逐层算法中,按维

体个维子立方体和个维子立方体构成共有

度数逐层减少来计算,每个层级的计算(除了第一层,度数逐层减少来计算,每个层级的计算(除了第一层,度数逐层减少来计算,每个层级的计算(除了第一层,它是从原始数据聚合而来),是基于它上一层级

度数逐层减少来计算,每个层级的计算(除了

的结果来计算的。比如,的结果来计算的。比如,[Group[Group[Group[GroupbybybybyA,A,A,B]B]B]的结果,可以的结果,可以的结果,可以基于[GroupbyA,B,C]的结果,通过去掉C后聚

的结果来计算的。比如GroupbyA,B]

合得来的;这样可以减少重复计算;当合得来的;这样可以减少重复计算;当合得来的;这样可以减少重复计算;当合得来的;这样可以减少重复计算;当00维度维度CuboidCuboid计计算出来的时候,整个Cube的计算也就完成了。

合得来的;这样可以减少重复计算;当

一轮的计算都是一个一轮的计算都是一个pRpR

每轮的计算都是一个MapReduce任务,且串行执行;一个N维的Cube,至少需要N次MapReduce

Job。

1.1.1.算法优点

1、此算法充分利用了MapReduce的优点(稳定),处理了中间复杂的排序和shuffle工作,故而算法代

码清晰简单,易于维护;

2、受益于Hadoop的日趋成熟,此算法非常稳定,即便是集群资源紧张时,也能保证最终能够完成。

1.1.2.缺点

1、当Cube有比较多维度的时候,所需要的MapReduce任务也相应增加;由于Hadoop的任务调度需要

耗费额外资源,特别是集群较庞大的时候,反复递交任务造成的额外开销会相当可观;

2、由于Mapper逻辑中并未进行聚合操作,所以每轮MR的shuffle工作量都很大,导导致致效率低下。

3、对HDFS的读写操作较多:由于每一层计算的输出会用做下一层计算的输入,,这些Key-Value需要写

到HDFS上;当所有计算都完成后,Kylin还需要额外的一轮任务将这些文件件转成HBase的HFile格式,以

导入到HBase中去;

总体而言,该算法的效率较低,尤其是当Cube维度数较大的时候。

1.2.快速构建算法(inmem)

1、首先把数据进行分散

2、每个MapTask执行一可能的维度组合的预计算都完成了在内存中进行中

部分数据的所有的可能的维度组合的计算都完成了(在存中进行中)

每个MapTask计算完得到多个bd这个整体结果就是个Sgtb的数据片

毕之后,也会得到多个cubid,这个整结果就是一个Sgm

段)

3、shuffle过程中,会把各sgt中的相同维度组合的数据汇总到起

4、在reducer中,再来做最后的维度构建

也被称作也被称作也被称作也被称作也被称作“““逐段逐段逐段逐段”(BySegment)”(BySegment)”(BySegment)或或或或或“““逐块逐块逐块”(B”(BySplit)算法,从1.5.x开始引入该算法,该算法的主要思想是,

被称作逐段”(BySegment)或逐块

每个每个MapperMapperMapper将其所分配到的数据块,将其所分配到的数据块,将其所分配到的数据块,将其所

您可能关注的文档

文档评论(0)

huang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档