第3章 快速入门

需求:实现按照维度(工作地点)统计员工信息

3.1 数据准备

在Hive中创建数据,分别创建部门和员工外部表,并向表中导入数据。
(1)原始数据

(2)建表语句
创建部门表

create external table if not exists default.dept(
	deptno int,
	dname string,
	loc int
)
row format delimited fields terminated by '\t';

创建员工表

create external table if not exists default.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)查看创建的表

hive (default)> show tables;
OK
tab_name
dept
emp

(4)向外部表中导入数据
导入数据

hive (default)> load data local inpath '/opt/module/datas/dept.txt' into table default.dept;
hive (default)> load data local inpath '/opt/module/datas/emp.txt' into table default.emp;

查询结果

hive (default)> select * from emp;
hive (default)> select * from dept;

3.2 创建项目

3.2.1 登录系统

快速学习-Kylin入门_hive

3.2.2 创建工程

1)点击图上所示“+”号
快速学习-Kylin入门_数据分析_02
2)填入项目名及描述点击Submit
快速学习-Kylin入门_hive_03

3.2.3 选择数据源

1)选择加载数据源方式
快速学习-Kylin入门_大数据_04
2)输入要作为数据源的表
快速学习-Kylin入门_大数据_05
3)查看数据源
快速学习-Kylin入门_hive_06

3.3 创建Model

1)回到Models页面
快速学习-Kylin入门_hive_07
2)点击New按钮后点击New Model
快速学习-Kylin入门_数据分析_08
3)填写Model名称及描述后Next
快速学习-Kylin入门_hive_09
4)选择事实表
快速学习-Kylin入门_大数据_10
5)添加维度表
快速学习-Kylin入门_python_11
6)选择添加的维度表及join字段
快速学习-Kylin入门_python_12
快速学习-Kylin入门_hive_13
7)选择维度信息
快速学习-Kylin入门_hive_14
8)选择度量信息
快速学习-Kylin入门_大数据_15
9)添加分区信息及过滤条件之后“Save
快速学习-Kylin入门_hive_16
10)创建Model完成
快速学习-Kylin入门_大数据_17

3.4 创建Cube

1)点击New按钮然后选择New Cube
快速学习-Kylin入门_大数据_18
2)选择Model及填写Cube Name
快速学习-Kylin入门_python_19
3)添加维度
快速学习-Kylin入门_数据分析_20
快速学习-Kylin入门_hive_21
4)添加需要做预计算的内容
快速学习-Kylin入门_数据源_22
快速学习-Kylin入门_python_23
5)动态更新相关(默认)
快速学习-Kylin入门_大数据_24
6)高阶模块(默认)
快速学习-Kylin入门_hive_25
7)需要修改的配置
快速学习-Kylin入门_hive_26
8)Cube信息展示
快速学习-Kylin入门_大数据_27
9)Cube配置完成
快速学习-Kylin入门_python_28
10)触发预计算
快速学习-Kylin入门_hive_29
11)查看Build进度
快速学习-Kylin入门_大数据_30
12)构建Cube完成
快速学习-Kylin入门_python_31

3.5 Hive和Kylin性能对比

需求:根据部门名称[dname]统计员工薪资总数[sum(sal)]

3.5.1 Hive查询

hive> select dname,sum(sal) from emp e join dept d on e.deptno = d.deptno group by dname;
Query ID = atguigu_20181210104140_4931b735-5bad-4a4f-bce6-67985b8fe30a
Total jobs = 1
SLF4J: Class path contains multiple SLF4J bindings.
… …
… …
Stage-Stage-2: Map: 1  Reduce: 1   Cumulative CPU: 3.95 sec   HDFS Read: 13195 HDFS Write: 48 SUCCESS
Total MapReduce CPU Time Spent: 3 seconds 950 msec
OK
ACCOUNTING      3750.0
RESEARCH        10875.0
SALES   9400.0
Time taken: 23.893 seconds, Fetched: 3 row(s)
hive>

3.5.2 Kylin查询

1)进入Insight页面
快速学习-Kylin入门_python_32
2)在New Query中输入查询语句并Submit
快速学习-Kylin入门_hive_33
3)数据图表展示及导出
快速学习-Kylin入门_大数据_34
4)图表展示之条形图
快速学习-Kylin入门_数据分析_35
4)图表展示之饼图
快速学习-Kylin入门_数据源_36