Apache Kylin 入門系列目錄web
Apache Kylin 是一個開源的分佈式分析引擎,提供 Hadoop/Spark 之上的 SQL 查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由 eBay Inc. 開發並貢獻至開源社區,它能在亞秒內查詢巨大的 Hive 表。算法
Apache Kylin 的特性:數據庫
其餘特性:編程
數據倉庫是一種信息系統的資料儲存理論,此理論強調的是利用某些特殊的資料儲存方式,讓所包含的資料特別有利於分析和處理,從而產生有價值的資訊,並可依此作出決策。安全
利用數據倉庫的方式存放的資料,具備一旦存入,便不會隨時間發生變更的特性,此外,存入的資料一定包含時間屬性,一般一個數據倉庫中會含有大量的歷史性資料,而且它可利用特定的分析方式,從其中發掘出特定的資訊。數據結構
STAGE 層做爲數據緩衝層,主要負責採集不一樣類型的業務系統數據並保存必定期限內的相關業務數據,完成不一樣類型數據源的統一臨時存儲,同時避免 ETL 操做對業務系統性能形成影響,STAGE 層數據在數據結構、數據之間的邏輯關係上都與業務系統基本保持一致。架構
ODS(Operational Data Store)層數據來源於 STAGE 層,它的數據通過了對 STAGE 層數據的清洗,包括編碼表去重、去空、垃圾數據過濾、數據類型規則化等。分佈式
另外 ODS 做爲 DW 和 STAGE 層的橋樑,也能夠實現指標一致性的管理,將不一樣系統不一樣部門相同指標的定義及指標數據按照業務規則取其一,保證不一樣源數據的數據一致性,也能夠知足用戶對明細數據的查詢要求,直接從ODS層獲取明細數據進行分析。工具
DWD(Data Warehouse Detail)層數據是將 ODS 層數據根據數據清洗規則,通過質量檢查、數據清洗、轉換、標準化後,造成符合質量要求的公共數據中心。oop
把 ODS 數據表結構改變成項目主題數據倉庫的表結構,對 DWD 層的全部表添加了代理鍵,標準化了業務系統編碼類型不統一的問題,創建了數據倉庫維度表和事實表的關聯體系,也爲緩慢變化維的實現奠基了基礎。
DWC(Data Warehouse Center)層主要管理固化報表的數據存儲,數據主要來源於 DWD 層,根據前臺所需數據創建物理模型,使用 ETL 抽取 DWD 層數據推送給 DWC 層,這樣顯著減小前臺應用直接關聯 DWD 層查詢明細數據的成本,提升平臺數據獲取的速度。
DM(Data Mart)層即數據集市,將指標與維度創建物理模型組成數據集市,這是 OLAP 的數據基礎。該層實現了合併不一樣系統的數據源來知足面向主題的業務需求,它的建模是終端用戶驅動的,也是由業務需求驅動的。按主題,維度及 KPI 指標對 DM 層進行模型設計、建模,DM 層數據是將 DWD 層數據進行進一步整合、轉換、彙總、計算等 ETL 操做處理獲取的。
事實表(Fact Table)是指存儲有事實記錄的表,如系統日誌、銷售記錄等;事實表的記錄在不斷地動態增加,因此它的體積一般遠大於其餘表。
維度表或維表
,有時也稱查找表
(Lookup Table),是與事實表相對應的一種表。它保存了維度的屬性值,能夠跟事實表作關聯;至關於將事實表上常常重複出現的屬性抽取、規範出來用一張表進行管理。
維度表有如下幾個優勢:
維度是觀察數據的角度,通常是一組離散的值;所以統計時能夠把維度值相同的記錄聚合在一塊兒,而後進行聚合計算。
在 Kylin Cube 構建中,維度能夠分爲如下幾種類型:
度量是被聚合的統計值,也是聚合運算的結果,它通常是連續的值。
OLAP(Online Analytical Process),聯機分析處理,以多維度的方式分析數據,並且可以彈性地提供上卷(Roll-up)、下鑽(Drill-down)和透視分析(Pivot)等操做,它是呈現集成性決策信息的方法,多用於決策支持系統、商務智能或數據倉庫。其主要的功能在於方便大規模數據分析及統計計算,可對決策提供參考和支持。
與之相區別的是聯機交易處理(OLTP),聯機交易處理,更側重於基本的、平常的事務處理,包括數據的增刪改查。
星型模型是一種多維的數據關係,它由一個事實表和一組維表組成。每一個維表都有一個維做爲主鍵,全部這些維的主鍵組合成事實表的主鍵。強調的是對維度進行預處理,將多個維度集合到一個事實表,造成一個寬表。
這也是咱們在使用 Hive 時,常常會看到一些大寬表的緣由,大寬表通常都是事實表,包含了維度關聯的主鍵和一些度量信息,而維度表則是事實表裏面維度的具體信息,使用時候通常經過 Join 來組合數據,相對來講對 OLAP 的分析比較方便。
當有一個或多個維表沒有直接鏈接到事實表上,而是經過其餘維錶鏈接到事實表上時,其圖解就像多個雪花鏈接在一塊兒,故稱雪花模型。
雪花模型是對星型模型的擴展,它對星型模型的維表進一步層次化,原有的各維表可能被擴展爲小的事實表,造成一些局部的"層次"區域,這些被分解的表都鏈接到主維度表而不是事實表。
雪花模型更加符合數據庫範式,減小數據冗餘,可是在分析數據的時候,操做比較複雜,須要 Join 的表比較多因此其性能並不必定比星型模型高。
數據立方體容許多維對數據建模和觀察,它由維和事實定義,它是對多維模型的一個形象的說法。
從表方面看,數據立方體是三維的,可是多維模型不只限於三維模型,能夠組合更多的模型,好比四維、五維等等,好比咱們根據時間、地域、產品和產品型號這四個維度,統計銷售量等指標。
對於每一種維度的組合,將度量作聚合運算,而後將運算的結果保存爲一個物化視圖,稱爲 Cuboid。全部維度組合的 Cuboid 做爲一個總體,被稱爲 Cube。因此簡單來講,一個 Cube 就是許多按維度聚合的物化視圖的集合。
Cube Segment 是指針對源數據中的某一個片斷,計算出來的 Cube 數據。一般數據倉庫中的數據數量會隨着時間的增加而增加,而 Cube Segment 也是按時間順序來構建的。
Cuboid 示例:Cuboid[Time, Locatio] = select Time, Location, sum(GMV) as GMV from T group by Time, Location
Any Code,Code Any!
掃碼關注『AnyCode』,編程路上,一塊兒前行。