文章目录
理论知识
介绍
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口和多维分析(OLAP)能力,并支持超大规模数据,能在亚秒内查询巨大的hive表。
架构
Kylin的架构图如下图所示:
REST Server
REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发。此类应用程序可以通过查询、获取结果、触发cube任务、获取元数据即用户权限等,也可通过Restful接口实现SQL查询。
查询引擎(Query Engine)
当cube准备就绪后,查询引擎就能获取并解析用户查询,随后会与系统中其他组件进行交互,从而向用户返回查询结果。
路由器(Routing)
Kylin最初设计时考虑过将Kylin不能执行的查询引导到Hive中执行,但实践后发现Hive和Kylin的速度差异过大,导致用户无法对查询速率有一致的期望,最后这个路由功能在发行版中默认关闭。
元数据管理工具(Metadata)
Kylin是一款元数据驱动型应用程序,因此元数据管理工具是一大关键性组件,用于管理Kylin中保存的所有元数据,包括最为重要的cube数据。其他全部组件的正常运转都需要以元数据管理工具为基础,Kylin的元数据存储在HBase中。
任务引擎(Cube Build Engine)
任务引擎的设计目的在于处理所有离线任务,包括shell脚本、Java调用和MapReduce任务等。任务引擎对Kylin中的全部任务加以管理协调,确保每一项任务都能得到执行,并处理其中出现的故障。
特点
1)、标准的SQL接口:Kylin以标准的SQL作为对外服务的接口;
2)、支持超大数据集:Kylin早在2015年eBay生产环境中就能支持百亿记录的秒级查询;
3)、亚秒级响应:Kylin优异的查询响应速度得益于预计算,即很多复杂的计算(连接、聚合等)在离线的预计算过程中就已经完成,从而大大降低了查询时所需的计算量,提升了响应速率;
4)、可伸缩性和高吞吐率:单结点Kylin可实现每秒70个查询,亦可以搭建Kylin集群;
5)、BI工具集成:Kylin可以与现有的BI工具集成,包括:ODBC(Tableau、Excel、PowerBI等)、JDBC(Saiku、BIRT等)和RestAPI(js、web等)。
Kylin团队还贡献了Zeppelin插件,可以通过Zeppelin访问Kylin服务。
安装配置和启动
我的HBase版本为1.3.1,因此需要下载的Kylin压缩包为apache-kylin-2.3.1-hbase1x-bin.tar.gz。
下载解压后,进入apache-kylin-2.3.1-bin目录,修改以下配置文件: