摘要
在“用Apache Spark分析8000萬亞馬遜產(chǎn)品評分評價”中,Max Woolf利用Python,R及Apache Spark分析了亞馬遜數(shù)據(jù)集。
本文將介紹如何利用Apache Kylin和Tableau來輕松生成即席查詢報表并查看其響應(yīng)時間。
軟硬件要求
所需軟件:
Kylin 1.6或以上
BI工具,你可以使用任何你喜愛的BI工具,Tableau Desktop將是本文使用的BI工具。
可選項:如果你沒辦法直接訪問Hadoop集群,可以用Docker來裝載一個Hadoop系統(tǒng) (我裝載了沒有問題)
克隆以下文件包
git clonehttps://github.com/albertoRamon/Kylin.git
關(guān)于亞馬遜產(chǎn)品評價數(shù)據(jù)集
這個數(shù)據(jù)集提供了兩種文件:
評價文件:包含購買完產(chǎn)品后客戶給產(chǎn)品的打分,從0到5顆星,并寫產(chǎn)品評價。
元數(shù)據(jù)文件:包含產(chǎn)品的完整描述:產(chǎn)品名稱,產(chǎn)品品牌,產(chǎn)品圖片,產(chǎn)品分類等。
這些文件中的亞馬遜產(chǎn)品通過asin唯一識別碼進行關(guān)聯(lián)。
我們使用如下兩個文件:
元數(shù)據(jù)文件是一個gz壓縮的json文件,包含940萬的產(chǎn)品數(shù)據(jù)。(大?。?.4GB/10.5GB)
產(chǎn)品評價文件是一個未壓縮的CSV文件,包含8260萬的評價數(shù)據(jù)。
將數(shù)據(jù)下載下來(未壓縮)并存在DataDownloaded文件夾,如圖所示:

注釋1: 下載大文件需要寫郵件提交申請。
注釋2: 產(chǎn)品評價文件可以用subset部分的一個較小文件替代。
準備數(shù)據(jù)集
我們需要把這兩個原始文件加載到Hive表中,執(zhí)行這個命令的python腳本如下
python processItem.pypython processMetadata.py
隨后你會在DataProcessed文件夾中生成兩個新文件,如圖所示:

將數(shù)據(jù)復(fù)制到Hive并創(chuàng)建表
如果你在使用Docker
編輯腳本/01-ImportData.sh并指定ID Docker鏡像
ContainerID=’58b’
執(zhí)行以下腳本: 復(fù)制數(shù)據(jù)到Docker容器并創(chuàng)建Hive表
./Scripts/01-ImportData.sh
如果你沒有使用Docker:
手動復(fù)制DataProcessed文件夾中的數(shù)據(jù)到你的集群gateway,編輯腳本/02-CreateTB.sql 并指定路徑。
set hivevar:PathFiles=/Amazon_Review;
連接你的集群并執(zhí)行:
hive -f 02-CreateTB.sql
構(gòu)建Cube
創(chuàng)建新項目
點擊

并輸入一個項目名稱

導(dǎo)入數(shù)據(jù)源
點擊

和

選擇需要導(dǎo)入的表 (按住Ctrl多選)

創(chuàng)建數(shù)據(jù)模型
點擊

和

指定一個事實表

指定一個維度表

指定一個維度字段

指定一個計算字段

定義Cube
點擊

選擇之前定義的Amazon_Review的數(shù)據(jù)模型

定義其中兩個維度為Normal

定義計算字段

在配置文件中覆蓋:

開始構(gòu)建:

>

處理8000萬行數(shù)據(jù),在一臺筆記本上用了30分鐘:

用BI工具連接Cube
用Tableau連接Cube生成報表
