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

走进Kylin

Kylin是什么

Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay Inc 开发并贡献至开源社区。 它能在亚秒内查询巨大的 Hive 表

Kylin架构

image.png

REST Server

REST Server 是一套面向应用程序开发的入口点,旨在实现针对 Kylin 平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发 cube 构建任务、获取元数据以及获取用户权限等等。
另外可以通过 Restful 接口实现 SQL 查询。

查询引擎(Query Engine)

当 cube 准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

路由器(Routing)

在最初设计时曾考虑过将 Kylin 不能执行的查询引导去 Hive 中继续执行,但在实践后发现 Hive 与 Kylin 的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

元数据管理工具(Metadata)

Kylin 是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在 Kylin 当中的所有元数据进行管理,其中包括最为重要的 cube 元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin 的元数据存储在 hbase 中。

任务引擎(Cube Build Engine)

这套引擎的设计目的在于处理所有离线任务,其中包括 shell 脚本、Java API 以及 Map Reduce 任务等等。任务引擎对 Kylin 当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

Kylin的特点

Kylin 的主要特点包括支持 SQL 接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI 工具集成等。

  • 标准 SQL 接口:Kylin 是以标准的 SQL 作为对外服务的接口。
  • 支持超大数据集:Kylin 对于大数据的支撑能力可能是目前所有技术中最为领先的。
    • 早在 2015 年 eBay 的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。
  • 亚秒级响应:Kylin 拥有优异的查询相应速度,这点得益于预计算。
    • 很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。
  • 可伸缩性和高吞吐率:单节点 Kylin 可实现每秒 70 个查询,还可以搭建 Kylin 的集群。
  • BI 工具集成:Kylin 可以与现有的 BI 工具集成,具体包括如下内容:
    • ODBC:与 Tableau、Excel、PowerBI 等工具集成
    • JDBC:与 Saiku、BIRT 等 Java 工具集成
    • RestAPI:与 JavaScript、Web 网页集成
    • Zepplin:Kylin 开发团队贡献的插件,也可以使用 Zepplin 来访问 Kylin 服务。