即席查询 之 apache kylin 的使用

一,kylin 定义:

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

二,kylin 架构:

1REST Server

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

2)查询引擎(Query Engine

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

3)路由器(Routing

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

4)元数据管理工具(Metadata

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

5)任务引擎(Cube Build Engine

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

三, kylin 特点:

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

1)标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。(可以通过写sql 的方式就行查询)

2)支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。

3)亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。

4)可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。

5)BI工具集成:

Kylin可以与现有的BI工具集成,具体包括如下内容。

ODBC:与Tableau、Excel、PowerBI等工具集成

JDBC:与Saiku、BIRT等Java工具集成

RestAPI:与JavaScript、Web网页集成

Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

四,kylin 的安装。

五,kylin 的使用:

(1)创建工程

1.1 创建工程:

1.2 填写项目名称和项目描述信息

(2)获取数据源

2.1点击DataSource

 

2.2点击下图按钮导入Hive表

2.3选择所需数据表,并点击Sync按钮

(3)创建model

1.1点击Models,点击"+New"按钮,点击"★New Model"按钮。

1.2填写Model信息,点击Next

1.3.1 指定事实表

1.3.2选择维度表,并指定事实表和维度表的关联条件,点击Ok

1.3.3维度表添加完毕之后,点击Next

1.4 指定维度字段,并点击Next

1.5.指定度量字段,并点击Next

1.6.指定事实表分区字段(仅支持时间分区),点击Save按钮,model创建完毕

(4) 构建cube   计算引擎根据定义的cube 进行预计算 将结果存储到hbase 数据库。

1.1 点击new, 并点击new cube

1.2 填写cube信息,选择cube所依赖的model,并点击next

1.3 选择所需的维度,如下图所示

1.4 选择所需度量值,如下图所示

1.5 cube自动合并设置,cube需按照日期分区字段每天进行构建,每次构建的结果会保存在Hbase中的一张表内,为提高查询效率,需将每日的cube进行合并,此处可设置合并周期。

1.6 Kylin高级配置(优化相关,看我下一篇博客,暂时跳过)

1.7 Kylin相关属性配置覆盖

1.8 Cube信息总览,点击Save,Cube创建完成

1.9 构建Cube(计算),点击对应Cube的action按钮,选择build

2.1 选择要构建的时间区间,点击Submit

2.2 点击Monitor查看构建进度

3.1 写sql 进行查询

猜你喜欢

转载自blog.csdn.net/Hao_JunJie/article/details/111216525