Kylin多维分析引擎(一):Kylin概述
1.定义:Apache Kylin(Extreme OLAP Engine for BigData)是一个开源的分布式分析引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集提供标准SQL查询及多维分析(OLAP)能力,并提供亚秒级的交互式分析功能。它最初由eBay开发并贡献给开源社区。核心特性:为Hadoop提供标准SQL支持(大部分)支持超大数据集(预计算)亚秒级交互式查询(预计算)可
1.定义:
Apache Kylin(Extreme OLAP Engine for BigData)是一个开源的分布式分析引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集提供标准SQL查询及多维分析(OLAP)能力,并提供亚秒级的交互式分析功能。它最初由eBay开发并贡献给开源社区。
核心特性:
为Hadoop提供标准SQL支持(大部分)
支持超大数据集(预计算)
亚秒级交互式查询(预计算)
可伸缩高吞吐(MR、Spark、HBase)
BI工具无缝集成
特点:
开源MOLAP利器
Apache金牌项目
源自Ebay内部大数据
利用Hbase,加速可以加速Hbase
目前腾讯、美团都有在使用,经过实际使用检验
解决的问题:
解决了大数据多维度查询速度慢,多维查询数据返回不及时的问题
Apache Kylin是目前唯一由中国人主导的Apache顶级项目,核心开发者及贡献者都是中国人。
2.谁在用Kylin
当前已经有超过100多家国内国外的公司正式使用Kylin作为其大数据分析平台的核心。包括eBay、Glispa、微软、Expedia、百度、美团、网易、京东、唯品会、中国移动、中国电信、国泰君安、华泰证券、联想、〇PP〇、魅族、去哪儿等等。ApacheKylin被用到了诸多如数据仓库,用户行为分析,流量(日志)分析,自助分析平台,电商分析,广告效果分析,实时分析,数据服务平台等各种场景。
3.Kylin使用场景
- 大规模数据集下亚秒级查询
- 维度不超过20个,最好在10个以内
- 可接受T+1(天、小时、分钟级别)
- 不需要分析明细数据(可变相解决)
4.Kylin主要特点
Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。
1)标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。
2)支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。
3)亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。
4)可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。
5)BI工具集成。
5.Kylin相关术语
5.1.数据仓库与商业智能
数据仓库(Data Warehouse):数据仓库是一个各种数据的中心存储系统(包括历史数据和当前数据),是BI的核心组件。这里所说的数据包括来自企业内部的各种业务数据,例如订单、库存、交易流、账目、客户、供应商等,同时也包括从外部获取的各种数据,例如爬虫通过合法手段爬取得数据。
商业智能(Business Intelligence):商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出合理的、明智的经营决策的工具,是企业数字化转型的关键系统。为了将数据转化为知识,需要利用数据仓库、联机事务处理(OLAP)工具和数据挖掘等技术。
5.2.OLTP vs OLAP
OLTP(Online Transaction Process)-事务驱动:联机事务处理,侧重于数据库的增删查改等常用业务操作,强调事物和并发。
OLAP(Online Analytical Process)-分析驱动:联机分析处理,即以多维的方式分析数据,强调磁盘IO吞吐,一般采用分区技术、并行处理技术。OLAP是一种软件技术,它使分析人员能够迅速、一致、交互式的从各方面观察数据,以达到深入理解数据的
目的。从各方面观察数据,也就是从不同纬度分析数据,因此也成为多维分析。
5.3.OLAP分类
参考:https://blog.csdn.net/Yuan_CSDF/article/details/117934281
ROLAP:基于关系型数据库,不需要预计算
MOLAP:基于多维数据集,需要预计算
5.4.维度和度量
维度:分析数据的角度
- 维度和度量是数据分析领域最常见的两个概念
- 维度:简单来讲就是观察数据的角度。例如从时间的角度来观察分析电商订单数据,那么时间就是维度。多个维度还可以组合
- 通常把纬度值相同的记录聚合在一起(groupBy),然后应用聚合函数(avg,max,min,等等)
- 维度一般是离散的值
度量:被分析的指标
- 聚合之后的统计值,即聚合运算的结果,一般为连续值
5.5.Cube & Cuboid & Cube Segment
Cube 和 Cuboid:
- MOLAP基于多维数据集,一个多维数据集成为一个Cube。
- 有了数据模型,接下来就可以把模型中的字段按照维度和度量来分类了(根据场景)
- 如果选择了N个维度,那么维度的组合可能性就有2^𝑛种
- 对于每一种维度组合,都要对度量做预计算,并保存为物化视图(分析的结果保存下来,类比分析结果汇总表),这就4叫做一个Cuboid(每一个维度组合及预计算数据)
- 所有的Cuboid构成一个Cube,即数据立方体
Segment:
- Cube的构建多是按照时间分段增量构建,或者实时构建,无论哪一种,都会按照一定时间分开存储为Segment,在HBase里就是一张单独的表。
Model、Cube、Segment、Cuboid的关系
- 一个模型根据不同的分析主题(场景),可以设计多个Cube
- 每个Cube下包含N个维度,维度的组合可能性就有2^n 种
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)