如何使用ApacheKylin框架

本篇内容主要讲解“如何使用Apache Kylin框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Apache Kylin框架”吧!

10年积累的成都网站设计、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有临潭免费网站建设让你可以放心的选择与我们合作。

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

Apache Kylin框架介绍
Apache kylin 能提供低延迟(sub-second latency)的秘诀就是预计算,即针对一个星型拓扑结构的数据立方体,预计算多个维度组合的度量,然后将结果保存在hbase中,对外暴露JDBC、ODBC、Rest API的查询接口,即可实现实时查询。Kylin从Hadoop Hive中获取数据,然后经过Cube Build Engine,将Hive中的数据Build成一个OLAP Cube保存在HBase中。用户执行SQL查询时,通过Query引擎,将SQL语句解析成OLAP Cube查询,然后将结果返回给用户。

Apache Kylin核心概念
表(table):This is definition of hive tables as source of cubes,在build cube 之前,必须同步在 kylin中。
模型(model):模型描述了一个星型模式的数据结构,它定义了一个事实表(Fact Table)和多个查找表(Lookup Table)的连接和过滤关系。
Cube 描述:描述一个Cube实例的定义和配置选项,包括使用了哪个数据模型、包含哪些维度和度量、如何将数据进行分区、如何处理自动合并等等。
Cube实例:通过Cube描述Build得到,包含一个或者多个Cube Segment。
分区(Partition):用户可以在Cube描述中使用一个DATA/STRING的列作为分区的列,从而将一个Cube按照日期分割成多个segment。
立方体段(cube segment):它是立方体构建(build)后的数据载体,一个 segment 映射hbase中的一张表,立方体实例构建(build)后,会产生一个新的segment,一旦某个已经构建的立方体的原始数据发生变化,只需刷新(fresh)变化的时间段所关联的segment即可。
聚合组:每一个聚合组是一个维度的子集,在内部通过组合构建cuboid。
作业(job):对立方体实例发出构建(build)请求后,会产生一个作业。该作业记录了立方体实例build时的每一步任务信息。作业的状态信息反映构建立方体实例的结果信息。如作业执行的状态信息为RUNNING 时,表明立方体实例正在被构建;若作业状态信息为FINISHED ,表明立方体实例构建成功;若作业状态信息为ERROR ,表明立方体实例构建失败!
样例 Cube 快速入门
执行$KYLIN_HOME/bin/sample.sh,等待脚本执行完毕,导入学习工程,Kylin 提供了一个创建样例 Cube 脚本;脚本会创建五个样例 Hive 表,该表主要是记录销售信息数据。我们将基于该表进行销售相关信息进行分析。

导入学习工程后需要重新加载元素据或者是重启kylin服务才能使工程生效。这里我们采用重新加载的方式来进行处理。

访问主机: http://hostname:7070,用默认的用户名和密码 ADMIN/KYLIN 登陆 Kylin 网站

选择 project 下拉框(左上角)中的 learn_kylin 工程;可以看到该项目下存在刚刚导入的Hive库。

连接一下Hive库,查看Hive default库中的表,存在上面的五张表

进入kylin Web界面登录 》System 》reload metadata,重新加载元素据。

执行完成后可以查看导入模型,存在两个模型,本次我们主要是学习“kylin_sales_cube”

选择该数据模型,点击“Build”构建cube。

选择数据分区范围,选择一个在 2014-01-01 之后的日期(覆盖所有的 10000 样例记录)。

点击monitor,查看正在构建cube的作业,刷新查看构建进度,等待构建完成
这一步会比较耗时,因为这步会进行预计算,默认是MapReduce作业。

如果长时间没有完成,请再次点击刷新,状态信息会更新,期间遇到错误如下所示:

经查看是由于hadoop的历史任务服务器没有启动导致,执行命令开启 

$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

jps检测是否有JobHistoryServer进程,存在进程则证明启动成功

启动后可以,点击“ACTION”下面有个“PENDING”选项可以恢复再次运行的状态。

构建完成

查询构建完成的cube,在“Insight”选项卡中执行SQL,首先我们执行一条SQL用来统计“KYLIN_SALES”表的数目。

select count(*) from KYLIN_SALES

执行结果耗时1.77秒

再次执行耗时就非常快了,第四次执行耗时0.11秒

接下来我们执行一条业务分析的SQL,用来统计每日销售总金额和购买人数量。执行结果,结果展示较快

select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers

from kylin_sales group by part_dt order by part_dt

基于上面的SQL再次进行扩展,进行多表关联,对销售数据进行多维分析,查看不同分类下商品的销售情况。查看多表关联查询结果,速度依然很快。

SELECT sum(KYLIN_SALES.PRICE) AS price_sum,

       KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,

       KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME

FROM KYLIN_SALES

INNER JOIN KYLIN_CATEGORY_GROUPINGS ON KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID

AND KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID

GROUP BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,

         KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME

ORDER BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME ASC,

         KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME DESC

点击Visualization 可视化展示,用户可以选择“图形类型”,“维度”和“度量”。

到此,相信大家对“如何使用Apache Kylin框架”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


网站栏目:如何使用ApacheKylin框架
分享URL:http://pwwzsj.com/article/jigpsj.html