前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这么有趣的Kylin入门实操,你值得一试!

这么有趣的Kylin入门实操,你值得一试!

作者头像
大数据梦想家
发布2021-01-27 16:13:00
4360
发布2021-01-27 16:13:00
举报
文章被收录于专栏:大数据成长之路

写在前面: 博主是一名软件工程系大数据应用开发专业大二的学生,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于起步阶段的萌新。由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!个人小站:http://alices.ibilibili.xyz/ , 博客主页:https://alice.blog.csdn.net/ 尽管当前水平可能不及各位大佬,但我还是希望自己能够做得更好,因为一天的生活就是一生的缩影。我希望在最美的年华,做最好的自己

上一篇博客已经为各位朋友带来了Kylin的简介以及安装部署(?第一个"国产"Apache顶级项目——Kylin,了解一下!)。本篇博客,博主为大家带来的是关于Kylin的实际应用操作!

码字不易,先赞后看,养成习惯


入门案例

测试数据表结构介绍

1、(事实表)dw_sales

列名

列类型

说明

id

string

订单id

date1

string

订单日期

channelid

string

订单渠道(商场、京东、天猫)

productid

string

产品id

regionid

string

区域名称

amount

int

商品下单数量

price

double

商品金额

2、(维度表_渠道方式)dim_channel

列名

列类型

说明

channelid

string

渠道id

channelname

string

渠道名称

3、(维度表_产品名称)dim_product

列名

列类型

说明

productid

string

产品id

productname

string

产品名称

4、(维度表_区域)dim_region

列名

列类型

说明

regionid

string

区域id

regionname

string

区域名称

导入测试数据

为了方便后续学习Kylin的使用,需要准备一些测试表、测试数据。

1.Hive中创建表 2.将数据从本地文件导入到Hive

操作步骤

1、使用 beeline 连接Hive

代码语言:javascript
复制
!connect jdbc:hive2://node1:10000

2、创建并切换到 itcast_dw 数据库

代码语言:javascript
复制
create database itcast_kylin_dw;
use itcast_kylin_dw;

3、找到资料中的hive.sql文件,执行sql、创建测试表

代码语言:javascript
复制
-- 查看表是否创建成功
show tables;

4、在home目录创建~/dat_file 文件夹,并将测试数据文件上传到该文件夹中 mkdir ~/dat_file

导入数据到表中

代码语言:javascript
复制
-- 导入数据
LOAD DATA LOCAL INPATH '/root/dat_file/dw_sales_data.txt' OVERWRITE  INTO TABLE dw_sales;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_channel_data.txt' OVERWRITE  INTO TABLE dim_channel;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_product_data.txt' OVERWRITE  INTO TABLE dim_product;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_region_data.txt' OVERWRITE  INTO TABLE dim_region;

5、执行一条SQL语句,确认数据是否已经成功导入

指标和维度

在完成了上面的数据准备操作后,我们就开始进行kylin的实际操作了。但我们还需要先了解什么是指标和维度?

先来看下面这个问题

相信各位朋友已经有了自己的答案,这里提供一种思路:

红色字体是指标/度量?还是维度? 答案:指标/度量【到底要看什么?获取什么?】 蓝色字体是指标/度量?还是维度? 答案:维度【怎么看!怎么获取!】

结论:需求决定哪些是维度,哪些是指标。

好了,明确了什么是维度,什么是指标之后,我们就可以开启kylin的使用之旅了~

按照日期统计订单总额/总数量(Kylin方式)

要使用Kylin进行OLAP分析,需要按照以下方式来进行。

1、创建项目(Project)

2、创建数据源(DataSource)

  • 指定有哪些数据需要进行数据分析

3、创建模型(Model)

  • 指定具体要对哪个事实表、那些维度进行数据分析

4、创建立方体(Cube)

  • 指定对哪个数据模型执行数据预处理,生成不同维度的数据

5、执行构建、等待构建完成

6、再执行SQL查询,获取结果

  • 从Cube中查询数据
具体步骤:
1、创建项目(Project)
2、创建数据源(DataSource)
3、创建模型(Model)

设置model名称

直接下一步

save保存完毕,就可以看见一个已经创建好了的Model

4、创建立方体(Cube)

保存完毕,我们可以看见一个新的Cube已经创建好了~

5、执行构建、等待构建完成

此时进度条还是灰色的,稍等片刻,等到加载完毕~

待加载完毕,我们可以发现此时的cube状态已经变成READY了。

6、再执行SQL查询,获取结果

从Cube中查询数据

我们可以发现用Kylin执行HQL语句的速度最早为3.88s,第二次执行就变成了0.01s

那如果在Hive的命令行窗口执行相同的HQL语句,耗时将为多少呢?

可以看到Hive将HQL转化成MapReduce程序去执行后,查询的时间为12.764s,这个速度与上面用Kylin执行的速度相比,差了近100倍。如果数据量更大一些,Kylin的优势将会更加明显。

下面我们来总结一下上面这个入门案例:

如果有认真执行上面演示的案例 我相信推导出下面的关系应该不难

因为我们在设置Model的时候,会选择事实表中所有有可能用到的维度,而在设置Cube的时候,就需要根据实际的SQL需求,选择确定使用到的维度。

在创建一个Cube的时候,第一步就需要选择依赖于一个Model,所以Model和Cube的对应关系应该是一对多,且Model包含Cube的关系。

另外,在Cube内的元素,也是可以重复的,不同的Cube就相当于一个Model的子集。

关于前面的步骤中,设置维度—维度就是sql中GroupBY后面的字段.

设置指标/度量—指标/度量就是sql中select 后面的字段. 整个配置过程都来源于SQL,来源于需求。

运用所学这里再回顾一下刚介绍Kylin时所介绍的架构图

可以看出,整个流程分为创建项目引入数据创建模型创建cube编译查询

另外,我们在最后查看最终计算完毕的结果数据时,可以发现一些额外的信息。

Kylin将查询后的结果写入到了HBase的表中

我们根据显示的信息,去HBase中查询

可以发现虽然内容被加密了,但是能证明有数据

说明初次体验Kylin体验还是不错的~


总结

本篇博客用一个入门案例为大家演示了Kylin的基本操作,关于Kylin的进阶操作会在后续的博文中为大家揭晓,敬请期待!

如果以上过程中出现了任何的纰漏错误,烦请大佬们指正?

受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 入门案例
    • 测试数据表结构介绍
      • 导入测试数据
        • 指标和维度
          • 按照日期统计订单总额/总数量(Kylin方式)
            • 具体步骤:
        • 总结
        相关产品与服务
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档