kylin cube优化

一、最基本的cube构建信息:

1.一个度量,并且计算包括:max、min and Count;

2.模型中的所有维度都被使用;

3.hive输入是一个CSV类型的外部表;

4.输出是没有经过压缩的HBase表。

二、kylin cube的优化方法:

1.减少组合;

         通过构建cube时对维度在joint and Hierarchy参数上的配置减少cuboid的组合数量。

        joint参数配置:把所有的id(主键)与对应的信息进行组合;

        Hierarchies参数配置:把可以级联查询的维度可能放在里面;

    注意:当前还不能对同一个维度同时进行joint和Hierarchy参数的配置;

   2.对输出进行压缩配置

压缩算法:snappy and gzip

        注:(snappy的效果大于gzip)二者在时间性能上的区别较小1%,在压缩空间上的区别为18%。

 3.对输入的hive table压缩

   通常构建cube的时间分配如下:


通常构建cube时花在创建flat table、Build和clean up上的时间较多。组成比例为:




由图看出大多数的时间呗用到create flat table上因此可以对第一步创建flat table进行压缩编码,减少时间消耗。

使用snappy算法压缩后的时间消耗为:


hive中的数据采用不同的文件格式进行存储时在构建cube时各阶段的时间消耗情况:


注:ORC文件格式概述:https://www.iteblog.com/archives/1014.html

4.对hive表进行分区(未实现优化,效果反而更糟)

5.HBase表存储格式优化

选择对维度的编码(dict、int、fix length)并且设置各维度在rowkey中的顺序(根据各维度的基数大小,大的在前小的在后)

6.通过设置Map和reduce的数量提高MR的性能。

eg:

7.提高cube的响应时间

通过设置聚合组(Aggregations group)来提高查询时的命中率。


设置一个聚合组和设置3个聚合组的情况对比:3个聚合组相对1个聚合组在构建cube时花费的时间多了3%,存储容量多了0.6%;

但是查询性能更快了。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值