数仓 即席查询 之 Kylin 安装与预计算

文章目录

  • 什么是即席查询
  • Kylin简介
  • Kylin 安装和启动
  • Kylin使用
    • 创建工程
    • 获取数据源
    • 创建model
    • 构建cube
  • 使用进阶

什么是即席查询

即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

Kylin简介

https://blog.csdn.net/weixin_45417821/article/details

Kylin 安装和启动

https://blog.csdn.net/weixin_45417821/article/details

Kylin使用

以gmall数据仓库中的dwd_order_detail作为事实表,dim_user_info、dim_sku_info、dim_base_province作为维度表,构建星型模型,并演示如何使用Kylin进行OLAP分析。

创建工程

创建工程/选择数据源教学:https://blog.csdn.net/weixin_45417821/article/details

1)添加项目名称和描述,点击submit 按钮提交

数仓 即席查询 之 Kylin 安装与预计算_第1张图片

获取数据源

1)选择以下表格,并点击Sync按钮

dwd_order_detail
dim_sku_info
dim_user_info
dim_base_province

数仓 即席查询 之 Kylin 安装与预计算_第2张图片
注意事项:
Kylin不能处理Hive表中的复杂数据类型(Array,Map,Struct),即便复杂类型的字段并未参与到计算之中。故在加载Hive数据源时,不能直接加载带有复杂数据类型字段的表。而在dim_sku_info表中存在两个复杂数据类型的字段(平台属性和销售属性),故dim_sku_info不能直接加载,需对其进行以下处理。
(1)在hive客户端创建一个视图,如下。该视图已经将dim_sku_info表中的复杂数据类型的字段去掉,在后续的计算中,不再使用dim_sku_info,而使用dim_sku_info_view。

hive (gmall)>
create view dim_sku_info_view
as
select
    id,
    price,
    sku_name,
    sku_desc,
    weight,
    is_sale,
    spu_id,
    spu_name,
    category3_id,
    category3_name,
    category2_id,
    category2_name,
    category1_id,
    category1_name,
    tm_id,
    tm_name,
    create_time
from dim_sku_info;

(2)在kylin中重新导入dim_sku_info_view视图

数仓 即席查询 之 Kylin 安装与预计算_第3张图片删掉 dim_sku_info
数仓 即席查询 之 Kylin 安装与预计算_第4张图片

创建model

model 教学 :https://blog.csdn.net/weixin_45417821/article/details

1)填写Model信息,点击Next

数仓 即席查询 之 Kylin 安装与预计算_第5张图片
2)指定事实表
数仓 即席查询 之 Kylin 安装与预计算_第6张图片
4)选择维度表,并指定事实表和维度表的关联条件,点击Ok

数仓 即席查询 之 Kylin 安装与预计算_第7张图片
数仓 即席查询 之 Kylin 安装与预计算_第8张图片
数仓 即席查询 之 Kylin 安装与预计算_第9张图片
数仓 即席查询 之 Kylin 安装与预计算_第10张图片
4)指定维度字段,并点击Next

数仓 即席查询 之 Kylin 安装与预计算_第11张图片
5)指定度量字段,并点击Next

数仓 即席查询 之 Kylin 安装与预计算_第12张图片
6)指定事实表分区字段(仅支持时间分区),点击Save按钮,model创建完毕

数仓 即席查询 之 Kylin 安装与预计算_第13张图片

构建cube

Cube 教学 :https://blog.csdn.net/weixin_45417821/article/details

1)填写cube信息,选择cube所依赖的model,并点击next
数仓 即席查询 之 Kylin 安装与预计算_第14张图片
2)选择所需的维度,如下图所示
数仓 即席查询 之 Kylin 安装与预计算_第15张图片数仓 即席查询 之 Kylin 安装与预计算_第16张图片数仓 即席查询 之 Kylin 安装与预计算_第17张图片数仓 即席查询 之 Kylin 安装与预计算_第18张图片
数仓 即席查询 之 Kylin 安装与预计算_第19张图片
3)选择所需度量值,如下图所示

数仓 即席查询 之 Kylin 安装与预计算_第20张图片
数仓 即席查询 之 Kylin 安装与预计算_第21张图片
数仓 即席查询 之 Kylin 安装与预计算_第22张图片4)cube自动合并设置,cube需按照日期分区字段每天进行构建,每次构建的结果会保存在Hbase中的一张表内,为提高查询效率,需将每日的cube进行合并,此处可设置合并周期。
数仓 即席查询 之 Kylin 安装与预计算_第23张图片
5)Kylin高级配置(优化相关,暂时跳过)
数仓 即席查询 之 Kylin 安装与预计算_第24张图片6)Kylin相关属性配置覆盖
数仓 即席查询 之 Kylin 安装与预计算_第25张图片7)Cube信息总览,点击Save,Cube创建完成
数仓 即席查询 之 Kylin 安装与预计算_第26张图片8)构建Cube(计算),点击对应Cube的action按钮,选择build
数仓 即席查询 之 Kylin 安装与预计算_第27张图片9)选择要构建的时间区间,点击Submit
数仓 即席查询 之 Kylin 安装与预计算_第28张图片
10)点击Monitor查看构建进度

数仓 即席查询 之 Kylin 安装与预计算_第29张图片

使用进阶

1)每日全量维度表及拉链维度表重复Key问题如何处理
按照上述流程,会发现,在cube构建流程中出现以下错误
数仓 即席查询 之 Kylin 安装与预计算_第30张图片
错误原因分析:
上述错误原因是model中的维度表dim_user_info为拉链表、dim_sku_info(dim_sku_info_view)为每日全量表,故使用整张表作为维度表,必然会出现订单明细表中同一个user_id或者sku_id对应多条数据的问题,针对上述问题,有以下解决方案。
在hive客户端为拉链表以及每日全量维度表创建视图,在创建视图时对数据加以过滤,保证从视图中查出的数据是一份全量最新的数据即可。

(1)创建维度表视图

--拉链维度表视图
create view dim_user_info_view as select * from dim_user_info where dt='9999-99-99';

--全量维度表视图(注意排除复杂数据类型字段)
create view dim_sku_info_view
as
select
    id,
    price,
    sku_name,
    sku_desc,
    weight,
    is_sale,
    spu_id,
    spu_name,
    category3_id,
    category3_name,
    category2_id,
    category2_name,
    category1_id,
    category1_name,
    tm_id,
    tm_name,
    create_time
from dim_sku_info
where dt=date_add(current_date,-1);

--当前情形我们先创建一个2020-06-14的视图,由于之前已经创建了dim_sku_info_view,故无需重新创建,修改之前的视图即可。
alter view dim_sku_info_view
as
select
    id,
    price,
    sku_name,
    sku_desc,
    weight,
    is_sale,
    spu_id,
    spu_name,
    category3_id,
    category3_name,
    category2_id,
    category2_name,
    category1_id,
    category1_name,
    tm_id,
    tm_name,
    create_time
from dim_sku_info
where dt='2020-06-14';

将 任务,cube ,modul 以及 dim_user_info 表删除,添加 dim_user_info_view
数仓 即席查询 之 Kylin 安装与预计算_第31张图片之后再次操作和Kylin使用的相同操作

数仓 即席查询 之 Kylin 安装与预计算_第32张图片
成功!

你可能感兴趣的:(数据仓库项目,kylin,数据仓库,大数据)