概述
定义
Apache Kylin是一个开源的分布式分析引擎,提供
Hadoop/Spark
之上的SQL查询接口及多维分析(MOLAP)
能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表
。
OLAP(online analytical processing)
OLAP(online analytical processing)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。从各个方面观察信息,也就是从不同的维度分析数据,因此OLAP也是多维度分析。
ROLAP(Relational OLAP)
基于关系型数据库,不需要预计算
MOLAP(Multidimensional OLAP)
基于多维数据集,需要预计算
OLAP Cube
MOLAP基于多维数据集,一个多维数据集称为一个OLAP Cube(立方体分析)。
一堆Cuboid(长方体)组成一个Cube。
![image-20200915131453227](./img/OLAP Cube.jpg)
Kylin的工作原理本质上是MOLAP(Multidimension On-Line Analysis Processing)Cube,多维立方体分析。
维度和度量
维度:即观察数据的角度。
比如员工数据,可以从性别角度来分析,也可以更加细化,从入职时间或者地区的维度来观察。维度是一组离散的值,比如说性别中的男和女,或者时间维度上的每一个独立的日期。因此在统计时可以将维度值相同的记录聚合在一起,然后应用聚合函数做累加、平均、最大和最小值等聚合计算。度量:即被聚合(观察)的统计值,也就是聚合运算的结果。
比如说员工数据中不同性别员工的人数,又或者说在同一年入职的员工有多少。
Cube和Cuboid
有了
维度跟度量
,一个数据表或者数据模型上的所有字段就可以分类了,它们要么是维度,要么是度量(可以被聚合)。于是就有了根据维度和度量做预计算的Cube理论。给定一个数据模型,我们可以对其上的所有维度进行聚合,对于N个维度来说,组合的所有可能性共有2n种。对于每一种维度的组合,将度量值做聚合计算,然后将结果保存为一个物化视图,称为
Cuboid
。所有维度组合的Cuboid作为一个整体,称为Cube。
特点
Kylin的主要特点包括支持SQL接口、支持超大规模数据集 、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。
标准化SQL接口
:Kylin是以标准化SQL作为对外服务的接口。支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。
亚秒级响应
:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。可伸缩性和高吞吐率
:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。BI工具集成
架构
REST Server
查询引擎(Query Engine)
Routing
元数据管理工具(Metadata)
任务引擎(Cube Build Engine)
安装
最后更新于