什么是 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的介绍

满满干货,Kylin从入门到精通,含Kylin3.0生产环境实战总结

apache kylin的单节点及多节点安装

大数据分析平台Apache Kylin的部署(Cube构建使用)

Kylin实践——Kylin中必须要理解的基本概念和术语

Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台