ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-12 16:04:53  阅读:238  来源: 互联网

标签:Cube kylin 样例 点击 zeppelin Apache Kylin build


目录

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

标签:Cube,kylin,样例,点击,zeppelin,Apache,Kylin,build
来源: https://www.cnblogs.com/xiaolongbaoxiangfei/p/16135485.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有