1 创建工程

1)点击下图中的"+"。

2)填写项目名称和描述信息,并点击Submit按钮提交。

2 获取数据源

1)点击DataSource

2)点击下图按钮导入Hive表

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

dwd_order_detail

dim_sku_info

dim_user_info

dim_base_province

注意事项

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

hive (default)> use gmall;

hive (gmall)>
create view dim_sku_info_view
as
selectid,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视图

删除用不到的表

3 创建model

1)点击Models,点击"+New"按钮,点击"★New Model"按钮。

2)填写Model信息,点击Next

3)指定事实表

4)选择维度表,并指定事实表和维度表的关联条件,点击Ok

点击Add Lookup Table

维度表添加完毕之后,点击Next

5)指定维度字段,并点击Next

6)指定度量字段,并点击Next

7)指定事实表分区字段(仅支持时间分区),点击Save按钮,model创建完毕

4 构建cube

1)点击new, 并点击new cube

2)填写cube信息,选择cube所依赖的model,并点击next

3)选择所需的维度,如下图所示

4)选择所需度量值,如下图所示

 

5)cube自动合并设置,cube需按照日期分区字段每天进行构建,每次构建的结果会保存在Hbase中的一张表内,为提高查询效率,需将每日的cube进行合并,此处可设置合并周期。

6)Kylin高级配置(优化相关,暂时跳过)

7)Kylin相关属性配置覆盖

8)Cube信息总览,点击Save,Cube创建完成

到此,cube配置完毕,开始计算。

9)构建Cube(计算),点击对应Cube的action按钮,选择build

10)选择要构建的时间区间,点击Submit

11)点击Monitor查看构建进度

5 使用进阶

1)每日全量维度表及拉链维度表重复Key问题如何处理

查看报错日志

错误原因分析:

上述错误原因是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-15的视图,由于之前已经创建了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-15';

(2)在DataSource中导入新创建的视图,之前的维度表,可选择性删除。

(3)重新创建model、cube。

接下来创建model、cube,和前面的步骤完全一样。

2)如何实现每日自动构建cube

Kylin提供了Restful API,因次我们可以将构建cube的命令写到脚本中,将脚本交给azkaban或者oozie这样的调度工具,以实现定时调度的功能。

脚本如下:

#!/bin/bash
cube_name=order_cube
do_date=`date -d '-1 day' +%F`#获取00:00时间戳
start_date_unix=`date -d "$do_date 08:00:00" +%s`
start_date=$(($start_date_unix*1000))#获取24:00的时间戳
stop_date=$(($start_date+86400000))curl -X PUT -H "Authorization: Basic QURNSU46S1lMSU4=" -H 'Content-Type: application/json' -d '{"startTime":'$start_date', "endTime":'$stop_date', "buildType":"BUILD"}' http://hadoop102:7070/kylin/api/cubes/$cube_name/build

6 Zepplin

(1)将zeppelin-0.8.0-bin-all.tgz上传至Linux

(2)解压zeppelin-0.8.0-bin-all.tgz之/opt/module

[zhang@hadoop102 sorfware]$ tar -zxvf zeppelin-0.8.0-bin-all.tgz -C /opt/module/

zeppelin的web默认端口号为8080,可能会和前面配置的zookeeper的配置端口相冲突,所以先修改一下端口号。

[zhang@hadoop102 conf]$ mv zeppelin-site.xml.template zeppelin-site.xml
[zhang@hadoop102 conf]$ vim zeppelin-site.xml

启动

[zhang@hadoop102 zeppelin]$ bin/zeppelin-daemon.sh start

web端访问并配置Zepplin支持Kylin

搜索Kylin插件并修改相应的配置

案例实操

(1)点击Notebook创建新的note

结果展示

 

即席查询—— Kylin使用相关推荐

  1. 数据仓库之电商数仓-- 5、即席查询Kylin

    目录 一.Kylin 1.1 Kylin简介 1.1.1 Kylin定义 1.1.2 Kylin相关术语 1.1.3Kylin架构 1.1.4 Kylin特点 1.2 Kylin安装 1.2.1 Ky ...

  2. Kylin、druid、presto、impala四种即席查询对比--(转载)

    一.什么是即席查询 即席查询是用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表.普通查应用查询是定制开发的,即席查询是用户自定义查询条件 理解:快速的执行自定义SQL(可能 ...

  3. Kylin即席查询教程

    KylinKylin即席查询教程 学习目标 简介 核心概念 数据仓库,OLAP与OLTP,维度和度量,事实表和维度表.星型模型和雪花模型. 数据仓库 DW 这是商业智能(BI)的核心部分,主要是将不同 ...

  4. #研发解决方案#数据开放实验室:再战即席查询和数据开放

    创建于2017/9/7 最后更新于2017/9/16 关键词:大数据,HBase,数据开放,即席查询,数据授权,HDFS,Zeppelin,Kylin, 提纲: 解决什么场景 即席查询的发展历程 五个 ...

  5. 尚硅谷大数据项目之电商数仓(4即席查询数据仓库)

    尚硅谷大数据项目之电商数仓(即席查询) (作者:尚硅谷大数据研发部) 版本:V4.0 第1章 Presto 1.1 Presto简介 1.1.1 Presto概念 1.1.2 Presto架构 1.1 ...

  6. 本地数仓项目(四)—— 即席查询

    1 背景 本文描述本地数仓项目即席查询相关内容,主要涉及即席查询工具包括Presto.Druid.Kylin. 本文基于文章<本地数据仓库项目(一) -- 本地数仓搭建详细流程> 和< ...

  7. OLTP、OLAP、即席查询(ad hoc query)区别与联系

    对于目前来讲,对数据的处理主要集中在两个方面,一种是联机事务处理 OLTP(on-line transaction processing),另一种是联机分析处理 OLAP(On-Line Analyt ...

  8. 是选impala还是presto_Kylin、druid、presto、impala四种即席查询对比

    一.什么是即席查询 即席查询是用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表.普通查应用查询是定制开发的,即席查询是用户自定义查询条件 理解:快速的执行自定义SQL(可能 ...

  9. OLTP, OLAP, 即席查询(ad hoc query)区别与联系

    对于目前来讲,对数据的处理主要集中在两个方面,一种是联机事务处理OLTP(on-line transaction processing),另一种是联机分析处理OLAP(On-Line Analytic ...

  10. 【电商数仓】数仓即席查询之Presto简介,安装,Presto优化之数据存储、查询SQL、一些注意事项

    文章目录 一 Presto简介 1 Presto概念 2 Presto架构 3 Presto优缺点 4 Presto.Impala性能比较 二 Presto安装 1 Presto Server安装 2 ...

最新文章

  1. 不止 JDK7 的 HashMap ,JDK8 的 ConcurrentHashMap 也会造成 CPU 100%?原因与解决~
  2. 时间段为查询条件时的日期边界查询不到问题
  3. Linux查看Bios信息
  4. leetcode 357. Count Numbers with Unique Digits | 357. 计算各个位数不同的数字个数(Java)
  5. GNS3从入门到精通
  6. Algorithms - Insertion Sort - 插入排序
  7. Centos7搭建LAMP+Typecho博客
  8. Java 8 中的这个接口真好用!炸了!
  9. Linux中断处理“下半部”机制
  10. 怎样找到win7系统默认的微信缓存文件夹路径
  11. “四大神兽”拆机指北
  12. 来电转接点击选择联系人按钮-没有出现联系人
  13. 如何使用Photoshop将图片变小?
  14. 若依的${params.dataScope}
  15. 实验11-1-7 藏头诗 (15 分)
  16. 软件“生命”系统进化论——软件以负熵为生
  17. css层叠性css层叠性
  18. -XX:+DisableExplicitGC弊端
  19. 《硬件架构的艺术》读书笔记:Chapter 1 亚稳态的世界
  20. 【语义地图】Ubuntu18.04 Suma++代码配置运行

热门文章

  1. hysys动态模拟教程_泄压过程的HYSYS动态模拟.pdf
  2. 地理入门-经纬度时区速成总结篇(转)
  3. Python 3——xlsxwriter生成图表
  4. linux 开根号函数,Linux里隐藏的计算器开根号,问他它的地球未解之谜吗?
  5. 抖音无水印下载不求人
  6. vue 实现 word、ppt、excel、图片、PDF、视频、音频等格式的文件下载
  7. [完美解决,亲测有效] 无法访问你试图使用的功能所在的网络位置--软件安装一半,退出后重新安装其他软件一直弹出某个安装程序的问题
  8. mac gif图片压缩
  9. 上海瀚示中文显示电子拣货标签 智能仓储物流工匠级革新
  10. C语言学习-翁凯(第四章笔记)