什么是 Kylin (分布式分析引擎)
Posted 夏初夏那
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是 Kylin (分布式分析引擎)相关的知识,希望对你有一定的参考价值。
Kylin
什么是Kylin
概念
Apache Kylin
(Extreme OLAP Engine for Big Data )是一个开源的分布式分析引擎
,为 Hadoop等大型分布式数据平台之上的超大规模数据集通过标准 SQL 查询
及多维分析( OLAP )
功能,提供亚秒级
的交互式分析能力。
特点
- 它提供 Hadoop 之上的 SQL 查询接口及多维分析( OLAP )能力以支持大规模数据,能够处理 TB 乃至 PB 级别的分析任务,能够在亚秒级查询巨大的Hive 表,并
支持高并发
。
Kylin的优势
注意
支持 SQL 接口、支持超大数据集、亚秒级响应、可伸缩性、高吞吐率、BI 工具集成等
1、标准 SQL 接口
- Apache Kylin 以标准 SQL 作为对外服务的主要接口:Kylin 使用的查询模型是数据源中的关系模型表,一般而言,也就是指 Hive 表
- 终端用户只需要像原来查询Hive表一样编写 SQL ,就可以无缝地切换到 Kylin ,几乎不需要额外的学习,甚至原本的 Hive 查询也因为与 SQL 同源,大多都无须修改就能直接在 Kylin 上运行。
2、支持超大规模集
- Apache Kylin 对大数据的支撑能力可能是目前所有技术中最为领先的,千亿以上记录秒级查询
- 因为使用了
Cube 预计算技术
,在理论上, Kylin 可以支撑的数据集大小没有上限,仅受限于存储系统和分布式计算系统的承载能力,并且查询速度不会随数据集的增大而减慢
- Kylin 在数据集规模上的
局限性
主要在于维度的个数和基数。它们一般由数据模型来决定,不会随着数据规模的增长而线性增长,这也意味着 Kylin 对未来数据的增长有着更强的适应能力
3、亚秒级响应
- Apache Kylin 拥有优异的查询响应速度,这点得益于
预计算
,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需要的计算量,提高了响应速度
4、BI 及可视化工具集成
-
Apache Kylin 提供了丰富的 API ,以与现有的 BI 工具集成
-
具体包括
- ODBC 接口:与 Tableau 、 Excel 、 Power BI 等工具集成。
- JDBC 接口:与 Saiku 、 BIRT 等 Java 工具集成。
- Rest API :与 javascript 、 Web 网页集成
Kylin的工作原理
工作原理
- 典型的
空间换时间
具体过程
- 1.、
指定
数据模型,定义
维度和度量 - 2.、
预计算
Cube ,计算所有 Cuboid 并保存为物化视图
- 3、
执行
查询时,读取 Cuboid ,运算
,产生查询结果
说明
- Kylin 的查询过程
不会
扫描原始记录,而是通过预计算
预先完成表的关联、聚合等复杂运算,并利用预计算的结果来执行查询,因此相比非预计算的查询技术,其速度一般要快一到两个数量级,并且这点在超大的数据集上优势更明显。当数据集达到千亿乃至万亿级别时, Kylin 的速度甚至可以超越其他非预计算技术1000倍以上。
总结
- Kylin 的
核心思想
是Cube 预计算
,理论基础是空间换时间
,把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询。
以上是关于什么是 Kylin (分布式分析引擎)的主要内容,如果未能解决你的问题,请参考以下文章
满满干货,Kylin从入门到精通,含Kylin3.0生产环境实战总结