需求:实现按照维度(工作地点)统计员工信息
1 数据准备
在Hive中创建数据,分别创建部门和员工外部表,并向表中导入数据。
(1)原始数据
(2)建表语句
创建部门表
create external table if not exists default.dept( deptno int, dname string, loc int ) row format delimited fields terminated by ' ';
创建员工表
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 ' ';
(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;
2 创建项目
2.1 登录系统

2.2 创建工程
1)点击图上所示“+”号

2)填入项目名及描述点击Submit

2.3 选择数据源
1)选择加载数据源方式

2)输入要作为数据源的表

3)查看数据源

3 创建Model
1)回到Models页面

2)点击New按钮后点击New Model

3)填写Model名称及描述后Next

4)选择事实表

5)添加维度表

6)选择添加的维度表及join字段


7)选择维度信息

8)选择度量信息

9)添加分区信息及过滤条件之后“Save”

10)创建Model完成

4 创建Cube
1)点击New按钮然后选择New Cube

2)选择Model及填写Cube Name

3)添加维度


4)添加需要做预计算的内容


5)动态更新相关(默认)

6)高阶模块(默认)

7)需要修改的配置

8)Cube信息展示

9)Cube配置完成

10)触发预计算

11)查看Build进度

12)构建Cube完成

5 Hive和Kylin性能对比
需求:根据部门名称[dname]统计员工薪资总数[sum(sal)]
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>
5.2 Kylin查询
1)进入Insight页面

2)在New Query中输入查询语句并Submit

3)数据图表展示及导出

4)图表展示之条形图

4)图表展示之饼图
