需求:實現按照維度(工作地點)統計員工信息
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;
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)圖表展示之餅圖