1.0 Kylin
1.1 Kylin簡介
1.1.1 Kylin術語
1.1.2 Kylin架構
- 計算層:Metadata(元數據) Cube Build Engine(cube構建引擎)
- 可以離線和實時,數據儲存在HBASE(隨機實時的查詢)
- 查詢層:REST Server(rest服務層,對接使用者的SQL)和 Query Engine(查詢引擎層,把SQL轉換爲機器識別的語言)
- 路由層(Routing):現在關閉了 不是多維的查詢只去HBase上查詢
1.1.3 kylin的特點
- 標準SQL介面
- 支援超大數據集
- 亞秒級響應
- 可伸縮性和高吞吐率
- BI工具整合
1.2 Kylin安裝
1.3 Kylin使用
這是重點章節
- 7天小合併 28天大合併
- 通過RESTful API實現
- 查詢的時候 能做的查詢只有OLAP的查詢–>group by的欄位加上聚合函數;事實表在前;join的時候,要用建模型的join
1.4 Kylin Cube構建原理
1.4.1 維度和度量
1.4.2 Cube和Cuboid
- 0維的可以不算 kylin也沒有算
- 0維就是沒有group by
1.4.3 Cube儲存原理
1.4.4 Cube構建演算法
構建演算法都是先算最高維的數據
- 逐層構建演算法(layer)
- 快速構建演算法(inmem)
1.5 Kylin Cube構建優化
1.4 和1.5不重要
1.5.1 使用衍生維度(derived dimension)
- 使用對應表的外來鍵進行算 不按照選擇的欄位的進行計算—>儘量不使用derived
- 減少計算量但是會拖慢查詢速度
1.5.2 使用聚合組(Aggregation group)
三種區分開就可以
- 一種強大的減枝工具
- 強制維度(必須要有的維度A)
- 層級維度(A->B,B不可以單獨出現)
- 聯合維度(AB作爲一個整體 )
1.5.3 Row Key優化
原理理解就可以
- 被用作過濾的維度放在前面(優化查詢)
- 基數大的維度放在基數小維度前面(優化計算)
- count distinct的數大的就是基數大
- kylin在選擇的時候直接選擇的cuboid小的 所以我們儘可能的把基數大的數據放在前面
- 設計HBase 的rowkey時 要一起查詢的數據儘量放在一起
1.5.4 併發粒度優化
- segment:hbase中的一張表
- 主要是增加分割區從而增加並行度
- 閾值減少到5G
hbase有列族 分割區(region)怎麼來的:自己分裂,預分割區
1.6 Kylin BI工具整合
1.6.1 JDBC
- kylin對接dwd層(星型模型)
- 也可以直接對接展示系統就可以不用往繼續走dw層
1.6.2 Zepplin
- zk的master的埠號也是8080,改爲8089
kylin:多維分析 OLAP
presto:適合複雜的分析