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顶级项目,核心开发者及贡献者都是中国人。

官网:http://kylin.apache.org/

2.谁在用Kylin

当前已经有超过100多家国内国外的公司正式使用Kylin作为其大数据分析平台的核心。包括eBay、Glispa、微软、Expedia、百度、美团、网易、京东、唯品会、中国移动、中国电信、国泰君安、华泰证券、联想、〇PP〇、魅族、去哪儿等等。ApacheKylin被用到了诸多如数据仓库,用户行为分析,流量(日志)分析,自助分析平台,电商分析,广告效果分析,实时分析,数据服务平台等各种场景。

3.Kylin使用场景

  1. 大规模数据集下亚秒级查询
  2. 维度不超过20个,最好在10个以内
  3. 可接受T+1(天、小时、分钟级别)
  4. 不需要分析明细数据(可变相解决)

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.维度和度量

维度:分析数据的角度

  1. 维度和度量是数据分析领域最常见的两个概念
  2. 维度:简单来讲就是观察数据的角度。例如从时间的角度来观察分析电商订单数据,那么时间就是维度。多个维度还可以组合
  3. 通常把纬度值相同的记录聚合在一起(groupBy),然后应用聚合函数(avg,max,min,等等)
  4. 维度一般是离散的值

度量:被分析的指标

  1. 聚合之后的统计值,即聚合运算的结果,一般为连续值

5.5.Cube & Cuboid & Cube Segment 

Cube 和 Cuboid:

  1. MOLAP基于多维数据集,一个多维数据集成为一个Cube。
  2. 有了数据模型,接下来就可以把模型中的字段按照维度和度量来分类了(根据场景)
  3. 如果选择了N个维度,那么维度的组合可能性就有2^𝑛种
  4. 对于每一种维度组合,都要对度量做预计算,并保存为物化视图(分析的结果保存下来,类比分析结果汇总表),这就4叫做一个Cuboid(每一个维度组合及预计算数据)
  5. 所有的Cuboid构成一个Cube,即数据立方体

Segment:

  1. Cube的构建多是按照时间分段增量构建,或者实时构建,无论哪一种,都会按照一定时间分开存储为Segment,在HBase里就是一张单独的表。

Model、Cube、Segment、Cuboid的关系

  1. 一个模型根据不同的分析主题(场景),可以设计多个Cube
  2. 每个Cube下包含N个维度,维度的组合可能性就有2^n 种

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐