入门案例
- 测试数据表结构介绍
- 导入测试数据
- 按照日期统计订单总额/总数量(Hive方式)
- 按照日期统计订单总额/总数量(Kylin方式)
- 创建项目(Project)
- 创建数据源(DataSource)
- 创建模型(Model)
- 创建立方体(Cube)
- 执行构建
- 执行SQL语句分析
- 按照订单渠道名称统计订单总额/总数量
- 按照日期、区域、产品维度统计订单总额/总数量
测试数据表结构介绍
- 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 | 区域名称 |
导入测试数据
- 需要准备一些测试表、测试数据。
- Hive中创建表
- 将数据从本地文件导入到Hive
- 操作步骤
- 1、使用 beeline 连接Hive
!connect jdbc:hive2://node1:10000
- 2、创建并切换到 hanjiaxiaozhi_kylin_dw数据库
create database hanjiaxiaozhi_kylin_dw;
use hanjiaxiaozhi_kylin_dw;
- 3、将hive.sql文件,执行sql、创建测试表
-- 查看表是否创建成功
show tables;
- 4、在home目录创建~/dat_file 文件夹,并将测试数据文件上传到该文件夹中
mkdir ~/dat_file
导入数据到表中
- 5、执行一条SQL语句,确认数据是否已经成功导入
select * from dw_sales;
按照日期统计订单总额/总数量(Hive方式)
操作步骤:
- 1、使用beeline连接Hive
- 2、切换到hanjiaxiaozhi_dw数据库
use hanjiaxiaozhi_dw
- 3、在代码目录中创建sql文件,编写SQL语句
select date1, sum(price) as total_money, sum(amount) as total_amount from dw_sales group by date1;
按照日期统计订单总额/总数量(Kylin方式)
- 要使用Kylin进行OLAP分析,需要按照以下方式来进行。
- 1、创建项目(
Project
) - 2、创建数据源(
DataSource
)
- 指定有哪些数据需要进行数据分析
- 3、创建模型(
Model
)
- 指定具体要对哪个事实表、那些维度进行数据分析
- 4、创建立方体(
Cube
)
- 指定对哪个数据模型执行数据预处理,生成不同维度的数据
- 5、执行构建、等待构建完成
- 6、再
执行SQL
查询,获取结果
- 从Cube中查询数据
- 操作步骤
创建项目(Project)
创建数据源(DataSource)
- 将Hive中的表都导入到Kylin中 在添加表名中,指定数据库名
hanjiaxiaozhi_kylin_dw.dim_channel,hanjiaxiaozhi_kylin_dw.dim_product,hanjiaxiaozhi_kylin_dw.dim_region,hanjiaxiaozhi_kylin_dw.dw_sales
创建模型(Model)
- 1、 指定模型名称
- 2、 指定事实表
- 3、 指定维度表
- 4、 指定待分析的指标
- 5、 指定分区和过滤条件
创建立方体(Cube)
- 1、选择数据模型
- 2、指定维度
- 3、指定度量
- 4、指定刷新设置
- 5、指定执行引擎
执行构建
执行SQL语句分析
- 在Insight选项卡中,执行以下SQL语句
select
date1,
sum(price) as total_money,
sum(amount) as total_amount
from
dw_sales
group by date1;
按照订单渠道名称统计订单总额/总数量
- 1、创建Model
- 指定关联表、关联条件
- 2、创建Cube
- 3、执行构建、等待构建完成
- 4、执行SQL查询,获取结果
- 执行SQL查询,获取结果
select
t2.channelid,
t2.channelname,
sum(t1.price) as total_money,
sum(t1.amount) as total_amount
from
dw_sales t1
inner join dim_channel t2
on t1.channelid = t2.channelid
group by t2.channelid, t2.channelname
按照日期、区域、产品维度统计订单总额/总数量
- 1、创建Model
指定关联表、关联条件
指定维度字段
- 2、创建Cube
指定cube维度
- 3、执行构建、等待构建完成
- 4、执行SQL查询,获取结果
select
t1.date1,
t2.regionid,
t2.regionname,
t3.productid,
t3.productname,
sum(t1.price) as total_money,
sum(t1.amount) as total_amount
from
dw_sales t1
inner join dim_region t2
on t1.regionid = t2.regionid
inner join dim_product t3
on t1.productid = t3.productid
group by
t1.date1,
t2.regionid,
t2.regionname,
t3.productid,
t3.productname
order by
t1.date1,
t2.regionname,
t3.productname