這麼有趣的Kylin入門實操,你值得一試!

寫在前面: 博主是一名軟件工程系大數據應用開發專業大二的學生,暱稱來源於《愛麗絲夢遊仙境》中的Alice和自己的暱稱。作爲一名互聯網小白,寫博客一方面是爲了記錄自己的學習歷程,一方面是希望能夠幫助到很多和自己一樣處於起步階段的萌新。由於水平有限,博客中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!個人小站:http://alices.ibilibili.xyz/ , 博客主頁:https://alice.blog.csdn.net/
儘管當前水平可能不及各位大佬,但我還是希望自己能夠做得更好,因爲一天的生活就是一生的縮影。我希望在最美的年華,做最好的自己

        上一篇博客已經爲各位朋友帶來了Kylin的簡介以及安裝部署(👉第一個"國產"Apache頂級項目——Kylin,瞭解一下!)。本篇博客,博主爲大家帶來的是關於Kylin的實際應用操作!

        碼字不易,先贊後看,養成習慣

在這裏插入圖片描述


入門案例

測試數據表結構介紹

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 區域名稱

導入測試數據

爲了方便後續學習Kylin的使用,需要準備一些測試表、測試數據。

1.Hive中創建表
2.將數據從本地文件導入到Hive

操作步驟

1、使用 beeline 連接Hive

!connect jdbc:hive2://node1:10000

2、創建並切換到 itcast_dw 數據庫

create database itcast_kylin_dw;
use itcast_kylin_dw;

3、找到資料中的hive.sql文件,執行sql、創建測試表

-- 查看錶是否創建成功
show tables;

在這裏插入圖片描述
4、在home目錄創建~/dat_file 文件夾,並將測試數據文件上傳到該文件夾中
mkdir ~/dat_file

導入數據到表中

-- 導入數據
LOAD DATA LOCAL INPATH '/root/dat_file/dw_sales_data.txt' OVERWRITE  INTO TABLE dw_sales;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_channel_data.txt' OVERWRITE  INTO TABLE dim_channel;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_product_data.txt' OVERWRITE  INTO TABLE dim_product;
LOAD DATA LOCAL INPATH '/root/dat_file/dim_region_data.txt' OVERWRITE  INTO TABLE dim_region;

5、執行一條SQL語句,確認數據是否已經成功導入
在這裏插入圖片描述

指標和維度

在完成了上面的數據準備操作後,我們就開始進行kylin的實際操作了。但我們還需要先了解什麼是指標和維度

先來看下面這個問題
在這裏插入圖片描述
相信各位朋友已經有了自己的答案,這裏提供一種思路:

紅色字體是指標/度量?還是維度?
答案:指標/度量【到底要看什麼?獲取什麼?】

藍色字體是指標/度量?還是維度?
答案:維度【怎麼看!怎麼獲取!】

結論:需求決定哪些是維度,哪些是指標。

好了,明確了什麼是維度,什麼是指標之後,我們就可以開啓kylin的使用之旅了~

按照日期統計訂單總額/總數量(Kylin方式)

要使用Kylin進行OLAP分析,需要按照以下方式來進行。

1、創建項目(Project)

2、創建數據源(DataSource)

  • 指定有哪些數據需要進行數據分析

3、創建模型(Model)

  • 指定具體要對哪個事實表、那些維度進行數據分析

4、創建立方體(Cube)

  • 指定對哪個數據模型執行數據預處理,生成不同維度的數據

5、執行構建、等待構建完成

6、再執行SQL查詢,獲取結果

  • 從Cube中查詢數據

具體步驟:

1、創建項目(Project)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2、創建數據源(DataSource)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3、創建模型(Model)

在這裏插入圖片描述
設置model名稱
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
直接下一步
在這裏插入圖片描述
save保存完畢,就可以看見一個已經創建好了的Model
在這裏插入圖片描述

4、創建立方體(Cube)

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
保存完畢,我們可以看見一個新的Cube已經創建好了~
在這裏插入圖片描述

5、執行構建、等待構建完成

在這裏插入圖片描述
此時進度條還是灰色的,稍等片刻,等到加載完畢~
在這裏插入圖片描述
在這裏插入圖片描述
待加載完畢,我們可以發現此時的cube狀態已經變成READY了。
在這裏插入圖片描述

6、再執行SQL查詢,獲取結果

從Cube中查詢數據
在這裏插入圖片描述
在這裏插入圖片描述

我們可以發現用Kylin執行HQL語句的速度最早爲3.88s,第二次執行就變成了0.01s

那如果在Hive的命令行窗口執行相同的HQL語句,耗時將爲多少呢?
在這裏插入圖片描述
可以看到Hive將HQL轉化成MapReduce程序去執行後,查詢的時間爲12.764s,這個速度與上面用Kylin執行的速度相比,差了近100倍。如果數據量更大一些,Kylin的優勢將會更加明顯。

下面我們來總結一下上面這個入門案例:

如果有認真執行上面演示的案例
我相信推導出下面的關係應該不難
在這裏插入圖片描述
        因爲我們在設置Model的時候,會選擇事實表中所有有可能用到的維度,而在設置Cube的時候,就需要根據實際的SQL需求,選擇確定使用到的維度。

        在創建一個Cube的時候,第一步就需要選擇依賴於一個Model,所以Model和Cube的對應關係應該是一對多,且Model包含Cube的關係。

        另外,在Cube內的元素,也是可以重複的,不同的Cube就相當於一個Model的子集。

在這裏插入圖片描述
        關於前面的步驟中,設置維度—維度就是sql中GroupBY後面的字段.

在這裏插入圖片描述
        設置指標/度量—指標/度量就是sql中select 後面的字段.
        整個配置過程都來源於SQL,來源於需求。
在這裏插入圖片描述
        運用所學這裏再回顧一下剛介紹Kylin時所介紹的架構圖
在這裏插入圖片描述
        可以看出,整個流程分爲創建項目引入數據創建模型創建cube編譯查詢

        另外,我們在最後查看最終計算完畢的結果數據時,可以發現一些額外的信息。

        Kylin將查詢後的結果寫入到了HBase的表中
在這裏插入圖片描述
        我們根據顯示的信息,去HBase中查詢

在這裏插入圖片描述
在這裏插入圖片描述
可以發現雖然內容被加密了,但是能證明有數據

說明初次體驗Kylin體驗還是不錯的~

在這裏插入圖片描述


總結

        本篇博客用一個入門案例爲大家演示了Kylin的基本操作,關於Kylin的進階操作會在後續的博文中爲大家揭曉,敬請期待!

        如果以上過程中出現了任何的紕漏錯誤,煩請大佬們指正😅

        受益的朋友或對大數據技術感興趣的夥伴記得點贊關注支持一波🙏

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章