Apache Kylin快速入门并结合zeppelin做可视化展示

Kylin简介

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。
Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。

  1. 定义数据集上的一个星形或雪花形模型
  2. 在定义的数据表上构建cube
  3. 使用标准 SQL 通过 ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果
    Kylin 提供与多种数据可视化工具的整合能力,如 Tableau,PowerBI 等,令用户可以使用 BI 工具对 Hadoop 数据进行分析。
    image

样例 Cube 快速入门样例 Cube 快速入门

Kylin 提供了一个创建样例 Cube 脚本;脚本会创建五个样例 hive 表:

  1. 运行 ${KYLIN_HOME}/bin/sample.sh ;重启 kylin 服务器刷新缓存;
    image

image

  1. 用默认的用户名和密码 ADMIN/KYLIN 登陆 Kylin 网站,选择 project 下拉框(左上角)中的 “learn_kylin” 工程;
    image

image

  1. 选择名为 “kylin_sales_cube” 的样例 cube,点击 “Actions” -> “Build”,选择一个在 2014-01-01 之后的日期(覆盖所有的 10000 样例记录);
    image

image

  1. 点击 “Monitor” 标签,查看 build 进度直至 100%;
    image

  2. 点击 “Insight” 标签,执行 SQLs,例如:
    select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt
    image

Streaming 样例 Cube 快速入门

Kylin 也提供了 streaming 样例 cube 脚本。该脚本将会创建 Kafka topic 且不断的向生成的 topic 发送随机 messages。

  1. 首先设置 KAFKA_HOME,然后启动 Kylin。
    image

image

  1. 运行 ${KYLIN_HOME}/bin/sample.sh,它会在 learn_kylin 工程中生成 DEFAULT.KYLIN_STREAMING_TABLE 表,kylin_streaming_model 模型,Cube kylin_streaming_cube。
    image

  2. 运行 ${KYLIN_HOME}/bin/sample-streaming.sh,它会在 localhost:9092 broker 中创建名为 kylin_streaming_topic 的 Kafka Topic。它也会每秒随机发送 100 条 messages 到 kylin_streaming_topic。+
    image

  3. 遵循标准 cube build 过程,并触发 Cube kylin_streaming_cube build。
    image

  4. 点击 “Monitor” 标签,查看 build 进度直至至少有一个 job 达到 100%。

  5. 点击 “Insight” 标签,执行 SQLs,例如:

点击查看代码
select count(*), HOUR_START from kylin_streaming_table group by HOUR_START
  1. 验证查询结果。

Kylin简单例子演示

官方的案例虽然只有几张表,但是对于初学者来说还是有点复杂,接下来我将演示一个简单易懂的例子
首先我们需要创建两张表,并将一些数据载入进去(两张表已经创建完成,可以直接载入)
点击data source 再点击load table按钮
image

添加emp、dept两张表
image

我们来看一下这两张表的字段吧
image

需求:求出各个部门的薪资总和

1. 首先新建一个model

image

2. 填写Model名称及描述后Next

image

3. 选择事实表

image

4. 添加维度表

image

5. 选择inner join

image

6. 选择需要的查询的字段

image

7. 选择需要统计的字段

image

8. 最后一步分区这块不需要修改

image

9. 构建cube

image

10. 选择Model及填写Cube Name

image

11. 添加维度

image

image

12. 添加需要预计算的内容

image

image

13. 接下来的配置全部选择next,最后点击save

image

image

image

image

14. Cube配置完成,开始build

image

15. 查看build进度(第一次build可能会有点慢)

image

Build中的操作简单概括:创建hive临时表,用于将事实表数据暂时存储,然后根据model进行join操作,维度的多少影响cube build完成的时间,最后的数据都将在hive的临时表上,将这张表导出成Hfile(写入HBASE的文件类型),将Hfile导入HBASE,HBASE按照文件载入预计算结果,清理hive中的临时表,最后将结果落盘到hdfs。
image

16. 现在去完成我们的需求

image

输入sql:select dname,sum(sal) from emp e join dept d on e.deptno = d.deptno group by dname;
就可以得出各个部门的薪资总和了
image

Zeppelin结合kylin演示

1. 进入zeppelin页面

image

2. 配置Zeppelin支持Kylin

image
搜索kylin插件
image
修改完成点击Save完成(这里按照实际情况填写)
image

3. 案例实操

需求:查询员工的详细信息,并可视化展示

1)点击Notebook创建新的note

image

2) 填写Note Name点击Create

image

image

3)执行查询

image

4)结果展示

image

5)其他图表格式

image

image

posted @ 2022-04-12 15:46  小笼包想飞  阅读(274)  评论(1编辑  收藏  举报