Apache Kylin Cube 的存儲

  簡單的說Cuboid的維度會映射爲HBase的Rowkey,Cuboid的指標會映射爲HBase的Value。

                      Cube映射成HBase存儲

 

 

  如上圖原始表所示:Hive表有兩個維度列year和city,有一個指標列price。如上圖預聚合表所示:我們具體要計算的是year和city這兩個維度所有維度組合(即4個cuboid)下的sum(priece)指標,這個指標的具體計算過程就是由MapReduce完成的。
如上圖字典編碼所示:爲了節省存儲資源,Kylin對維度值進行了字典編碼。圖中將beijing和shanghai依次編碼爲0和1。

  如上圖HBase KV存儲所示:在計算cuboid過程中,會將Hive表的數據轉化爲HBase的KV形式。Rowkey的具體格式是cuboid id + 具體的維度值(最新的Rowkey中爲了併發查詢還加入了ShardKey),以預聚合表內容的第2行爲例,其維度組合是(year,city),所以cuboid id就是00000011,cuboid是8位,具體維度值是1994和shanghai,所以編碼後的維度值對應上圖的字典編碼也是11,所以HBase的Rowkey就是0000001111,對應的HBase Value就是sum(priece)的具體值

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