然後選擇創建的project
然後點擊data Source下的load Hive Table按鈕
填寫需要的hive表的全稱(庫名.表名),完成後點擊Sync按鈕就是數據導入
然後創建一個新的Model
Model Name只能是英文
選擇事實表(Fact Table),可以通過 add lookup Table添加其他表進行關聯
可以是inner join 也可以是left join,然後進行join條件的添加
接下來選擇會用作維度和度量的列。這裏只是選擇一個範圍,不代
表這些列將來一定要用作Cube的維度或度量,你可以把所有可能會用到
的列都選進來,後續創建Cube的時候,將只能從這些列中進行選擇。
選擇維度列時,維度可以來自事實表或維度表,如圖所示。。
選擇度量列時,度量只能來自事實表,如圖2-7所示
最後一步,是爲模型補充分割時間列信息和過濾條件。如果此模型
中的事實表記錄是按時間增長的,那麼可以指定一個日期/時間列作爲
模型的分割時間列,從而可以讓Cube按此列做增量構建
過濾(Filter)條件是指,如果想把一些記錄忽略掉,那麼這裏可以設
置一個過濾條件。Kylin在向Hive請求源數據的時候,會帶上此過濾條件。
最後,單擊“Save”保存此數據模型,隨後它將出現在“Models”的列表中。
創建cube
單擊“New”,選擇“New Cube”,會開啓一個包含若干步驟的嚮導。
第一頁,選擇要使用的數據模型,併爲此Cube輸入一個唯一的名稱(必需的)和描述(可選的)(如圖2-9所示);這裏還可以輸入一個郵件通知列表,用於在構建完成或出錯時收到通知。如果不想接收處於某些狀態的通知,那麼可以從“Notification Events”中將其去掉。
第二頁,選擇Cube的維度。可以通過以下兩個按鈕來添加維度。
·“Add Dimension”:逐個添加維度,可以是普通維度也可以是衍生(Derived)維度。
·“Auto Generator”:批量選擇並添加,讓Kylin自動完成其他信息。使用第一種方法的時候,需要爲每個維度起個名字,然後選擇表和列
如果是衍生維度的話,則必須是來自於某個維度表,一次可以選擇多個列;由於這些列值都可以從該維度表的主鍵值中衍生出來,所以實際上只有主鍵列會被Cube加入計算。而在Kylin的具體實現中,往往採用事實表上的外鍵替代主鍵進行計算和存儲。但是在邏輯上可以認爲衍生列來自於維度表的主鍵。
需要注意的是:維度的選擇都是在之前新建模型的時候設計好的,只能減少,不能增加
使用第二種方法的時候,Kylin會用一個樹狀結構呈現出所有的列,用戶只需要勾選所需要的列即可,Kylin會自動補齊其他信息,從而方便用戶的操作(如圖2-12所示)。請注意,在這裏Kylin會把維度表上的列都創建成衍生維度,這也許不是最合適的,在這種情況下,請使用第一種方法。
第三頁,創建度量。Kylin默認會創建一個Count(1)的度量。可以單擊“+Measure”按鈕來添加新的度量。Kylin支持的度量有:SUM、MIN、MAX、COUNT、COUNT DISTINCT、TOP_N、RAW等。請選擇需要的度量類型,然後再選擇適當的參數(通常爲列名)。
重複上面的步驟,創建所需要的度量。Kylin可以支持在一個Cube中添加多達上百個的度量;添加完所有度量之後,單擊“Next”
第四頁,是關於Cube數據刷新的設置。在這裏可以設置自動合併的閾值、數據保留的最短時間,以及第一個Segment的起點時間(如果Cube有分割時間列的話)
第五頁,高級設置。在此頁面上可以設置聚合組和Rowkey。
爲Cube配置參數。和其他Hadoop工具一樣,Kylin使用了很
多配置參數以提高靈活性,用戶可以根據具體的環境、場景等配置不同
的參數進行調優。Kylin全局的參數值可在conf/kylin.properties文件中進行
配置;如果Cube需要覆蓋全局設置的話,則需要在此頁面中指定。單
擊“+Property”按鈕,然後輸入參數名和參數值,如圖2-18所示,指
定“kylin.hbase.region.cut=1”,這樣此Cube在存儲的時候,Kylin將會爲每個
HTable Region分配1GB來創建一個HTable Region。
然後單擊Next跳轉到最後一個確認頁面,如有修改,則單擊“Prev”按
鈕返回以修改,最後再單擊“Save”按鈕進行保存,一個Cube就創建完成了。
創建好的Cube會顯示在“Cubes”列表中,如要對Cube的定義進行修
改,只需單擊“Edit”按鈕就可以進行修改。也可以展開此Cube行以查看更
多的信息,如JSON格式的元數據、訪問權限、通知列表等
構建cube
Cube的構建包含如下步驟,由任務引擎來調度執行。
1)創建臨時的Hive平表(從Hive讀取數據)。
2)計算各維度的不同值,並收集各Cuboid的統計數據。
3)創建並保存字典。
4)保存Cuboid統計信息。
5)創建HTable。
6)計算Cube(一輪或若干輪MapReduce)。
7)將Cube的計算結果轉成HFile。
8)加載HFile到HBase。
9)更新Cube元數據。
10)垃圾回收
進行構建操作
監控構建過程
歷史數據刷新(只針對增量構建的cube),刷新完成之後才能進行新數據查詢,否則查到的就是舊數據
多個segment,儘量進行合併,優化查詢性能和存儲性能