kylin创建cube

14 篇文章 3 订阅

 

      1. 创建立方体(Cube)

 

参考文档:

播客:http://tech.meiyou.com/?p=97

官网创建cube: http://kylin.apache.org/cn/docs15/tutorial/create_cube.html

 

Cube执行原理:

1、创建Cube:

2、编译Cube(Build Cube):

定义好Cube之后,Apache Kylin通过MapReduce,将存储在Hive中的事实表和维度表,转换成Cube,存储在HBase中,以实现快速分析查询,整个过程如下图所示:

 

STEP1. 根据Cube定义的事实表和维度,在Hive中生成一张中间表;

Create Intermediate Flat Hive Table;

 

STEP2. 使用MapReduce,从事实表中抽取维度的Distinct值,并以字典树的方式压缩编码,同时也对所有维度表进行压缩编码,生成维度字典;

Extract Fact Table Distinct Columns

Build Dimension Dictionary

 

STEP3. 计算和统计所有的维度组合,并保存,其中,每一种维度组合,称为一个Cuboid,后面会详细介绍。

Save Cuboid Statistics

 

STEP4. 创建HBase Table;

Create HTable

 

STEP5. 利用step1中间表的数据,使用MapReduce,生成每一种维度组合(Cuboid)的数据;

Build Base Cuboid Data;

Build N-Dimension Cuboid Data : 7-Dimension;

Build N-Dimension Cuboid Data : 6-Dimension;

。。。。。。

Build N-Dimension Cuboid Data : 2-Dimension;

Build Cube;

 

STEP6. 将Cuboid数据转换成HFile,并导入到HBase Table中:

Convert Cuboid Data to HFile;

Load HFile to HBase Table;

 

STEP7. 更新Cube信息,清理中间表:

Update Cube Info;

Garbage Collection;

整个Build过程结束。

 

 

 

 

创建cube

选择models->点击new下拉框-》选择new cube.

 

选择创建好的model,并填入cube name。notification email list是选填项,表示报警接收人邮件地址,多个邮件地址以逗号隔开。

 

然后next。选择dimession,有两种方式:一是手动添加dimession,二是使用自动生成,我们这里使用自动生成,然后勾选需要的字段。

 

 

选择纬度后如下。

 

 

然后next,选择指标

 

count是系统默认自带的,不要删除。       

需要注意的是kylin中hive表中每一列字段的类型要求比较严格。dimession字段需要为String,用来加和的指标字段须为bigint或者decimal,添加了所有需要的指标后,点击next

设置merge时间。Kylin每次build会生成一张hbase表,merge操作会把多天数据合并成一张新的hbase表。可加快查询。

设置partition Start Date,即数据源开始时间,默认为1970-01-01.点击Next.

 

Includes:查询包含列字段。

Mandatory Dimensions:每次查询均会使用的维度可添加在此。比如某些情况下的partition column.

 

Hierarchy Dimensions:维度列中彼此间存在层级关系的列,比如“国家-省份-市-县”

Joint Dimensions:每次查询会同时使用或不使用的维度组合。

 

Aggregation Group:在不同的查询中,两组维度组合之间不会产生交叉,可选择此选项,比如所有的cube维度有 [ a,b,c,d,e,f ] 6个,每次查询中只会同时查与 [ a,b,c ] 相关的信息(比如[a],[a,c]等)而不会查询 [ d,e,f ],或者相反,则可选择此选项。

以上选择均可减少build过程中的数据量,是加快build与query速度的优化点之一。

 

接下来基本上就是next,如下图

然后保存,创建成功后如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

starsky20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值