Kylin深入前對多維分析技術概念的理解

一、數據倉庫

1.數據倉庫是面向主題的;數據倉庫是集成的,數據倉庫的數據有來自於分散的操作型數據,將所需數據從原來的數據中抽取出來,進行加工與集成,統一與綜合之後才能進入數據倉庫;
2.數據倉庫是不可更新的,數據倉庫主要是爲決策分析提供數據,所涉及的操作主要是數據的查詢;
3.建設步驟:
收集和分析業務需求——建立數據模型和數據倉庫的物理設計——定義數據源——定義數據源——從操作型數據庫中抽取、淨化、和轉換數據到數據倉庫——選擇訪問和報表工具——選擇數據庫連接軟件——選擇數據分析和數據展示軟件——更新數據倉庫

二、OLAP

1.維(Dimension):是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維(時間維、地理維等)。
2.維的層次(Level):人們觀察數據的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面(時間維:日期、月份、季度、年)。
3.維的成員(Member):維的一個取值,是數據項在某維中位置的描述。(“某年某月某日”是在時間維上位置的描述)。
4.度量(Measure):多維數組的取值。(2000年1月,上海,筆記本電腦,0000)。

OLAP的基本多維分析操作有鑽取(Drill-up和Drill-down)、切片(Slice)和切塊(Dice)、以及旋轉(Pivot)等。

1.鑽取:是改變維的層次,變換分析的粒度。它包括向下鑽取(Drill-down)和向上鑽取(Drill-up)/上卷(Roll-up)。Drill-up是在某一維上將低層次的細節數據概括到高層次的彙總數據,或者減少維數;而Drill-down則相反,它從彙總數據深入到細節數據進行觀察或增加新維。
2.切片和切塊:是在一部分維上選定值後,關心度量數據在剩餘維上的分佈。如果剩餘的維只有兩個,則是切片;如果有三個或以上,則是切塊。
3.旋轉:是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。

三、星型模型

星形模式是一種多維的數據關係,它由一個事實表(Fact Table)和一組維表(Dimension Table)組成。每個維表都有一個維作爲主鍵,所有這些維的主鍵組合成事實表的主鍵。事實表的非主鍵屬性稱爲事實(Fact),它們一般都是數值或其他可以進行計算的數據;而維度都是文字、時間等類型的數據,按這種方式組織好數據我們就可以按照不同的維(事實表主鍵的部分或全部)來對這些事實數據進行求和(summary)、求平均(average)、計數(count)、百分比(percent)的聚集計算。

四、事實表及維度表

1.事實表:事實數據表不應該包含描述性的信息,也不應該包含除數字度量字段及使事實與維度表中對應項的相關索引字段之外的任何數據。數據倉庫中的表,其條目描述事實數據表中的數據。維度表包含創建維度所基於的數據。
2.維度表:一個事實數據表都要和一個或多個維度表相關聯,用戶在利用事實數據表創建多維數據集時,可以使用一個或多個維度表
3.生產中事實表與維度表的關係:
事實表可能有以下字段:
天、來源ID、瀏覽器ID、操作系統ID、PV、PageNumber等等;
其中,小時、來源ID、瀏覽器ID、操作系統ID 爲維度;
PV、PageNumber爲指標;
一般事實表中的維度都採用外鍵ID的形式,一來可以節省存儲,也可以很好的適用於其他分析工具;
維度表包括:
時間維表:年、月、日,其中天爲最細粒度,也爲該表主鍵;
訪問來源維表:來源ID、來源名稱;
瀏覽器維表:瀏覽器ID、瀏覽器名稱、etc.
操作系統維表:操作系統ID、操作系統名稱、etc.
事實表中的維度,分別與這四張維度表,通過主外鍵的方式關聯。
Kylin中的Cube亦是這種模型
4.定義數據模型參考文章

五、Build cube流程

STEP1. 根據Cube定義的事實表和維度,在Hive中生成一張中間表;
STEP2. 使用MapReduce,從事實表中抽取維度的Distinct值,並以字典樹的方式壓縮編碼,同時也對所有維度表進行壓縮編碼,生成維度字典;
STEP3. 計算和統計所有的維度組合,並保存,其中,每一種維度組合,稱爲一個Cuboid;STEP4. 創建HBase Table;
STEP5. 利用step1中間表的數據,使用MapReduce,生成每一種維度組合(Cuboid)的數據;
STEP6. 將Cuboid數據轉換成HFile,並導入到HBase Table中;
STEP7. 更新Cube信息,清理中間表。

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