Kylin相关知识总结
1.Kylin前置知识
官网介绍:Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。
1.1 数据仓库DW
1.1.1 简介
是将不同数据源的数据整合到一起,通过多维分析企业提供决策支持、报表、图标生成等待。并且存入数据仓库的资源必须包含时间属性。
1.1.2 数仓和数据库的区别
数仓:是面向分析,存储的是历史数据,数据可能会存在大量冗余,但是利于多个维度查询,可以为决策者提供更多观察角度。(数据之间不能互相访问,即不同源,再将这个数据整合起来)
数据库:是面向事务,存储的是在线业务数据,对上层业务的改变会做出实时反映。
1.1.3 数仓和Kylin的关系
大数据领域常用的数仓有Hive,而Kylin是以Hive作为默认的数据源,在通过cube预计算(步骤前置了)后将结果存入到Hbase中(空间换时间)。
1.1.4 数仓出现的原因
是为了解决数据孤岛问题,即解决数据分散,不同源,各个数据只是在各自系统之中运行互相不能访问和影响,将数据整合在一起,可以从各个维度来进行观测和分析。
1.1.5 数据集市Data Mart
是缩小版的数据仓库,相当于主题域,属于部门(主题)级的观测视角的数据集合仓库。
1.1.6 数据来源
比如电商系统的数据来源,可能来自前端埋点之类的页面操作(行为数据),还有具体的业务数据等。
1.2 OLTP和OLAP
1.2.1 OLTP是联机事务处理,侧重于数据库crud等的常用业务操作。
1.2.2 OLAP是联机分析处理,是在大量历史数据的基础上配合时间点的差异,以多维度进行分析,多应用与数据仓库中。
1.4 数据分层
其中维度退化即将原来的表关联都返回来,形成一张不需要关联表的一张大表,虽然会出现冗余的数据但是会便利于查询。
1.5 维度和度量
1.3.1 维度(Dimension)是观察数据的角度,比如时间、地点等。(即sql中的Group By XXX的东西)
1.3.2 度量(Measure)是基于数据所计算出来的考量值。(即sql中查询出来的字段select和from直接求出的东西,比如数量、金额等)
1.6 cube和cuboid
cube(立方体)是在确定好的维度和度量之后,会进行预计算,即将查询提前了,将所有设置好的维度和度量全部查出来放在Hbase中,使用的时候就直接使用,所以速度会非常快。(eg:维度A和B组成4种: A、B、AB、还有种就是0没有维度的情况,所以这种不用统计)
首先需要创建一个数据模型,即对所有维度进行组合,对于这N个维度,组合的可能性共有2^N种(但实际使用是2^N-1种,因为0的那种不需要统计进来),这没一种维度的组合,将度量进行聚合运算,然后将运算结果保存为一个物化视图,称为Cuboid。而所有的Cuboid组合成一个整体称为Cube,即由多个按维度聚合的物化视图的集合。
1.8 cube Segment
是元数据中的某个片段计算出的cube数据。通常数据仓库中的数据量会随着时间增长而增长,而Cube Segment 也是按照时间顺序来构建的。
1.9 事实表和维度表
事实表(Fact Table)是指存储有事实记录的表,事实表的记录在不断地动态增长,所以他的提交会远大于其他表。
维度表(Dimension Table),有时也称查找表(Lookup Table)是与事实表相对于的一种表,保存了维度的属性值,可与与事实表做关联,比如日期表(存储与日期对应的周月季度等的属性)、地点表(国家、省市区等)。
1.10 事实表和维度表
1.10.1 星型模型(star schema) 是一张事实表,以及周围一圈维度表,事实表与维度表通过主外键关联,像很多星星围绕一个恒星周围。
1.10.2 雪花模型(snowFlake schema)将星型模型中的某些维度表抽取成更细粒度的维度表,相当于星形再向外扩一层或者几层。
1.10.3 区别
星型模型因为数据冗余所以很多统计查询不需要做外部的链接,因此一般效率比雪花高很多。
雪花模型由于去除了冗余,产生了许多关联,所以效率会相对比星形低,所以在冗余可以接受的前提下,实际运用中使用星型模型更多(事实表周围只有一层)。
2.Kylin相关知识
提供亚秒级的交互分析能力,交互分析能力即跟sql一样,输入sql返回结果这种模式。
2.1 kylin的安装
kylin安装需要一个极度健康的hadoop集群,必须把所依赖的hadoop、hive、hbase、zookeeper都安装好。
以kylin3.1.3为例,下图为官网中kylin安装所需要的环境配置
启动通过hadoop的start-all.sh启动(hdfs、yarn、jobHistoryServer),start-hbase启动(Hmaster、HRegionServer)、zk启动的QuorumPeerMain、hive需要启动元数据,启动后如下:
安装步骤如下:
最后可以检查一下环境变量,通过vim /etc/profile
启动kylin
启动成功后:
可以通过http://xxx:7070/kylin进行访问,默认账号是ADMIN密码是TYLIN
3.kylin的使用
3.1 创建prject项目
3.2 在hive中创建一个要预计算的表,并加载使用的数据。
3.3 在Data Source中进行数据同步
3.4 建立模型
3.4.1 选择事实表
3.4.2 选择维度
3.4.3 选择度量
3.4.4 选择日期列
3.5 创建cube
3.5.1 根据之前创建的model创建cube
3.5.2 二次确认维度
3.5.3二次确认度量
3.6 完成cube创建
3.7 预计算
点击build后,会弹出下面的日期选项,选择需要计算的时间段,这里的时间就是上面设置的时间字段对应的,然后即进行预计算
计算完毕后在Monitor中
计算完毕后在model中,状态、大小等会出现
展开
- 点赞
- 收藏
- 关注作者
评论(0)