Kylin实践—— Kylin的使用以及Model和Cube构建详细流程
Posted 扫地增
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kylin实践—— Kylin的使用以及Model和Cube构建详细流程相关的知识,希望对你有一定的参考价值。
文章目录
Kylin如何使用?
- 首先,在测试环境启动
Hadoop、Hive、HBase、Zookeeper
- 然后,在测试环境
/home/hadoop/kylin/kylin-2.5.1-bin-hbase
中启动Kylin
,执行如下命令:
[hadoop@kb-testhadoop01 kylin-2.5.1-bin-hbase]$ bin/kylin.sh start
注意:启动前执行
jps
查看Hadoop、Hive、HBase、Zookeeper
是否启动,如出现以下信息则kylin
启动成功。
- 在http://kb-testhadoop01:7070/kylin/查看Web页面
- 进入
Kylin
输入
默认的用户名:ADMIN
密码:KYLIN
。
- 进入到
Kylin
首页如下图所示:
- 在首页中有两个按钮一个是
Manager Project
、一个是Add Project
,我们可以使用这两个按钮来创建一个我们的第一个工程,这两个点那个都可以。这里我就点Manager Project
。
- 点击
Manager Project
进入一下页面,因为是第一次进入我们发现只有一个按钮Add Project
。
我们点击
add project
来添加一个工程:需要填以下信息如图所示:
到这里我们的项目就建完了,建完后会出现以下信息
那么建完项目以后我们要要干什么呢?我们是要分析数据对吧,数据在哪里呢?
数据是不是在hive
里面,可能大家会想现在你数据还没有呢,是不是要先去hive
中到数据呢,其实确实需要的。
需求:实现按照维度(工作地点)统计员工信息
3.1 数据准备
在Hive
中创建数据,分别创建部门和员工外部表,并向表中导入数据。
(1)原始数据
部门表数据:
10 ACCOUNTING 1700
20 RESEARCH 1800
30 SALES 1900
40 OPERATIONS 1700
员工表数据:
7369 SMITH CLERK 7902 1980-12-17 800.00 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
7566 JONES MANAGER 7839 1981-4-2 2975.00 20
7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
7839 KING PRESIDENT 1981-11-17 5000.00 10
7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
7900 JAMES CLERK 7698 1981-12-3 950.00 30
7902 FORD ANALYST 7566 1981-12-3 3000.00 20
7934 MILLER CLERK 7782 1982-1-23 1300.00 10
(2)建表语句
创建部门表
create external table if not exists test.kylin_test_dept
(
deptno int,
dname string,
loc int
)
row format delimited fields terminated by '\\t';
创建员工表
create external table if not exists test.kylin_test_emp
(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
)
row format delimited fields terminated by '\\t';
(3)查看创建的表,确保表已存在
(4)向外部表中导入数据
导入数据
load data local inpath '/home/hadoop/datas/dept.txt' into table test .kylin_test_dept;
load data local inpath '/home/hadoop/datas/emp.txt' into table test .kylin_test_emp;
查询结果
hive > select * from test .kylin_test_emp;
hive > select * from test .kylin_test_dept;
这个时候我们点击上面的菜单选项
Model
,回到首页,然后我们点击下面的DataSource
我们发现在里面三个加载我们的数据源的按钮。如下图所示:
因为刚才我们已经在
hive
中建立数据表,所以我们不使用load table
(手动填表名,多个表使用逗号分隔),如果是已经有了表和数据请使用load table from tree
,这里我们就使用这种方式
同步完成后我们发现现在表已经过来了,但是表里并没有数据,过来的只是表的元数据,如果现在发现有表加载错了也可以点击
Unload table
移除
到这里我们的表已经加载过来了,下面我们就要定义星型模型了,我们要让
Kylin
知道那个表是事实表,那个表是维度表,
既然我们要定义模型,那么我们点击Models
,然后我们要新建一个模型点击New->new model
进入如下界面:
那么,如何定义一个模型呢?首先我们要给模型添加一个名字和描述然后点
next
。
进入第二步
data Models
来定义我们的模型,首先我们需要选择一张表作为事实表,然后再选一张表作为维度表
在添加维度表时也就是
Lookuptable
时,我们需要指定他们之间相互关联的外键,这里在选择join
时有两种一个是left join
一个是inner join
这里我们使用内链接
下一步我们就需要指定那些是我们分析的维度
到这里我们的维度就建好了,下面我们建立度量
Measures
的选择只能是在事实表中的字段,不能是维度表中的字段
这里进行设置过滤条件,和分区信息,也就是增量表(一段时间一个分区)和全量表(每一次都将所有的数据备份)的设置,因为在数仓中表需要分这两种类型,增量表一段时间一个分区所以这个
partition
就是为了给增量表设置的,这里就需要理解,增量表每个一段时间增加一些新的数据,所以新增数据的这个分区我们也需要构建一个Cube
,在查询时Kylin
才能进行查询。
然后我们点
save
保存然后点yes
,到这里我们的model
星型模型已将构建好了这里我们就可以去构建我们的Cube
了。
下面我们就点
new Cube
,我们可已经进行如下操作:
进行维度细化:
选完之后,接着我们选择度量
我们发现他有一个默认的度量就是
Count
,然后点击Measure
添加度量,注意对于平均值,因为后边有很多的分区合并,这样求平均值就不方便了
然后一路
next
最后save->yes
。
做临时宽表
越向外维度也就越少
预计算:点击action->build
构建Cube
,大家知道Cube
构建的过程就是预计算的过程
Build
之后我们可以通过Monitor
实现对任务进行监控,监控页面具体介绍如下:
在这里我们点击右下角蓝色箭头可以展现
kylin
构建Cube
流程
这个执行流程比较长,一会会给大家一步步的介绍:
构建完
Cube
(也就是执行完预计算):
我们就要进行查询了首先我们开来介绍下在哪里查询:
当我们点
save
会出现这样一个页面我们submit
之后,那么结果被保存到哪里去了呢?
刚才我们是不是说了一个
saved queries
,那我们来看是不是结果就被保存到这里来了
那么我们刚才执行了这么多的
sql
我想在执行之前的sql
怎么办呢一个sql
好几百行我不可能重新写吧!其实我们刚才也注意到其实kylin
是有一个Query History
的,那么我们来看:
hive查询和kylin查询简单对比:
执行sql1:
select
d.loc,
e.job,
d.dname,
sum(e.sal)
from kylin_test_emp e
join kylin_test_dept d
on e.deptno = d.deptno
group by d.dname,
d.loc,
e.job;
执行sql2:
我们可以看到这两者之间是有比较大的差距的,我们可以想一下如果是在数据量极大的情况下使用
kylin
是要比使用hive
快很多倍的,
到这里呢?我们还有system
这个页面没有介绍,那么我们来看:
其实从功能键我们就可以知道这个页面主要是和修改配置有关系,一般情况下很少能用的到,这里我们就不详细说了,有兴趣的可以自己去了解一下,大家也看到
Kylin
我就装在了我们的测试集群:用户名:ADMIN密码:KYLIN
注意都是大写。
那下面我们要了解什么呢?刚才大家还记得在kylin
里面构建Model
和Cube
的时候,我有些高级的设置是没有说的,那么我现在就来和大家说一下:Cube 构建流程.
以上是关于Kylin实践—— Kylin的使用以及Model和Cube构建详细流程的主要内容,如果未能解决你的问题,请参考以下文章
实践 | Apache Kylin在4399大数据平台的应用