【Apache Kylin】增量构建

增量构建

将Cube划分为多个Segment,每个Segment用起始时间和结束时间来标志。Segment代表了一段时间内源数据的预计算结果。

1.为什么要增量构建

对于大数据量的Cube,减少重复计算。

2.设计增量Cube

2.1设计增量Cube的前提

Cube的定义必须包含一个时间维度,用来分割不同的Segment,称这样的维度为分割时间列(Partition Date Column)。

在进行增量构建时,将增量部分的起始时间和结束时间作为增量构建请求的一部分提交给Kylin的任务引擎,任务引擎会根据起始时间和结束时间从Hive中抽取相应时间的数据,并对这部分数据做预计算处理,然后将预计算的结果封装成一个新的Segment,并将相应的信息保存到元数据和存储引擎中。一般来说,增量部分的起始时间等于Cube中最后一个Segment的结束时间。

2.2增量Cube的创建

1)Model层面的设置

每个Cube背后都关联着一个Model,Cube之于Model就好像Java中Object之于Class

2)Cube层面的设置

3.触发增量构建

3.1Web GUI触发

3.2构建相关的Rest API

4.管理Cube碎片

增量构建的Cube每天都可能有新的增量。

4.1合并Segment

4.2自动合并

4.3保留Segment

从碎片管理的角度看,自动合并是将多个Segment合并为一个Segment,以达到清理碎片的目的。保留Segment则是从另外一个角度帮助实现碎片管理,即及时清理不再使用的Segment。

4.4数据持续更新

一种比较简单的方法:每天在Cube中增量构建一个长度为一天的Segment。

目前,一种比较折中的方案是不以日为单位创建新的Segment,而是以N天为单位创建新的Segment。


参考资料:《Apache Kylin 权威指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

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

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

打赏作者

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

抵扣说明:

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

余额充值