kylin学习(一)

关键概念:

olap(联机分析查询)

维(Dimension) ,例如时间维

维的层次(level,例如时间维:日期,月份,季度,

维的成员(Member):维的一个取值 ,例如某年某月某日

度量(Measure):多维数值的取值,例如(2000年,上海,笔记本,0000)。

事实表(fact table):用来存放事实的度量值和各个维度的码值

维表:用来存放维的元数据(维的层次、成员类别等描述信息)

星型模型(Star Schema)

MOLAP(多维联机事务分析)

cube 分区:实现数据的逻辑分段(减少重复和清除重要数据),立方体数据结构可以存储一个或多个分区上

cube reflesh(cube 更新):

 增量更新:将新数据添加到立方体的分区并更新聚合。增量更新用新的数据创建临时分区并把它合并到现有分区。


根据现在的业务情况,频繁修改表字段名,Kylin直接使用hive中的字段名作为元数据,如果频繁修改事实表或者维度表的字段名会导致元数据错误([https://issues.apache.org/jira/browse/KYLIN-1173]),因此通过view增加一层映射是比较好的方法,这样可以使得原生的hive表的字段名对Kylin的cube透明,此后再需要修改字段名的时候不会对cube有所影响,只需要修改view的定义。

源表字段经常改变,有些字段类型和实际不符,所以必须通过对源表创建不同视图,kylin使用视图来构建cube


1、业务查询语句:


create view product_cube as 
select userid, eventid, label, day, ‘android’ as platform from product_android WHERE category=’a’ 
UNION ALL 
select userid, eventid, label, day, ‘ios’ as platform from product_ios WHERE category=’a’; 


2、对应创建视图:

create view product_cube as 
select userid, eventid, label, day, ‘android’ as platform from product_android WHERE category=’a’ 
UNION ALL 
select userid, eventid, label, day, ‘ios’ as platform from product_ios WHERE category=’a’;

x,x,x是维度,xxx是messure, 

  3、在kylin里面,创建一个工程

4、在tables里面同步刚刚创建的视图

5、新增cube,添加fact table 和 dim表,此处没有dim表,所有数据都在fact table里面,不需要join dim表

6、增加维度

7、增加messure值


发布了30 篇原创文章 · 获赞 74 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/ruiyiin/article/details/50688282