入门案例

  • 测试数据表结构介绍
  • 导入测试数据
  • 按照日期统计订单总额/总数量(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)

kylin 连接 hive 失败 报错 spark kylin和hive_SQL

创建数据源(DataSource)

  • 将Hive中的表都导入到Kylin中 在添加表名中,指定数据库名hanjiaxiaozhi_kylin_dw.dim_channel,hanjiaxiaozhi_kylin_dw.dim_product,hanjiaxiaozhi_kylin_dw.dim_region,hanjiaxiaozhi_kylin_dw.dw_sales
  • kylin 连接 hive 失败 报错 spark kylin和hive_SQL_02


  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_03


创建模型(Model)

  • 1、 指定模型名称
  • kylin 连接 hive 失败 报错 spark kylin和hive_kylin_04

  • 2、 指定事实表
  • kylin 连接 hive 失败 报错 spark kylin和hive_Kylin_05

  • 3、 指定维度表
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_06

  • 4、 指定待分析的指标
  • kylin 连接 hive 失败 报错 spark kylin和hive_SQL_07

  • 5、 指定分区和过滤条件
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_08

创建立方体(Cube)

  • 1、选择数据模型
  • kylin 连接 hive 失败 报错 spark kylin和hive_kylin_09

  • 2、指定维度
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_10


  • kylin 连接 hive 失败 报错 spark kylin和hive_Kylin_11

  • 3、指定度量
  • kylin 连接 hive 失败 报错 spark kylin和hive_SQL_12

  • 4、指定刷新设置
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_13

  • 5、指定执行引擎
  • kylin 连接 hive 失败 报错 spark kylin和hive_kylin_14

执行构建

kylin 连接 hive 失败 报错 spark kylin和hive_Kylin_15


kylin 连接 hive 失败 报错 spark kylin和hive_kylin_16

执行SQL语句分析

kylin 连接 hive 失败 报错 spark kylin和hive_SQL_17

  • 在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
    指定关联表、关联条件
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_18


指定维度字段

kylin 连接 hive 失败 报错 spark kylin和hive_Kylin_19

  • 2、创建Cube
    指定cube维度
  • kylin 连接 hive 失败 报错 spark kylin和hive_Hive_20


  • 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