【乾貨】公司年終業績分析報告,你的數據統計對麼?

每一年年終或新年伊始,公司管理層都要從各個角度好比部門、產品線等考察公司過去一年的業績,做爲數據分析團隊,你須要向管理層準備這樣的數據分析報告,而在此過程當中,你可能會面臨着這樣的問題:架構

* 公司的組織架構在過去的一年中發生了調整,部分人員的所屬部門也所以發生了變更,那各部門的業績如何統計?
* 因爲業務優化,公司一些產品的分類發生了變動,那整年各產品分類的銷售數字如何統計?併發


爲了生成上述業績報告,多維數據分析是最經常使用與高效的技術手段。經過多維建模,將員工業績、產品銷售定義爲事實表,把員工、產品、日期等定義爲維度表,從而方便高效的從各個維度對公司核心 KPI 進行彙總統計和對比分析,如下即是基於銷售數據的一個簡單多維分析模型示例。高併發


圖表1:一個簡單的多維模型示例
性能


事實表通常會天天更新,而維度表儘管基本穩定,但也會隨着時間發生變化,好比產品的分類、客戶的國家、員工的部門等,這就是多維數據分析中的緩慢變化維概念(Slowly Changing Dimension, SCD)。如何處理這個變化,回答本文開始的問題,須要根據查詢分析的特定需求分別處理,業界稱之爲緩慢變化維度的處理大數據


緩慢變化維度的常見處理方法優化


通常來講,最爲常見的緩慢變化維度的處理方法有類別 1 (Type 1) 和類別 2 (Type 2),其具體處理方法和查詢舉例以下:網站

* 類別 1:維度表中直接覆蓋原值,查詢時只能使用最新的維度屬性,反應維度最新狀態(latest status);
* 類別 2:維度表中添加新的記錄,一般增長有效期字段來區分,記錄維度表全部歷史變化,從而使得歷史可追溯。在查詢時通常使用當時的維度屬性,反應歷史事實(historical truth)。cdn


以圖表1的多維模型爲例,假設產品 iPhoneX 在 2018 年雙 11 後,分類從 3C 調整爲了 Mobile,如下分別是類別 1 和類別 2 對產品維度表的處理方法,以及在查詢 2018 年各產品分類的銷售數字時的結果:blog


圖表2: 緩慢變化維類別 1 和類別 2 的處理方法與查詢結果示例

注:類別 2 的處理方法有各類具體實現方法,好比常見的拉鍊表,但基本原理一致。文檔


講到這裏,相信各位已經對文章開頭的問題已經有答案了,如今須要作的就是和業務方溝通,統一數據統計口徑,而後在 ETL 或者數據倉庫中具體實現。在一些複雜的場景中,還會使用到類別 3 和類別 4,甚至是混合的處理方法,本文不在此進行深刻討論,具體內容各位能夠參考相關文檔。


Kyligence的緩慢變化維處理實踐


在大數據場景下,爲了加速數據分析的性能與併發,基於多維模型(Cube)進行預計算是最爲行之有效的方法之一。開源頂級項目 Apache Kylin 即是其中表明,而基於它爲核心的企業級大數據分析平臺 Kyligence Enterprise,更是實現了 PB 級數據的亞秒級查詢響應和數以千計的高併發訪問。


默認情形下 Apache Kylin 與 Kyligence Enterprise 對全部維度表均作類別 2 處理,每次 Cube 刷新時記錄當時的維度表數據,以便在查詢時使用並反應當時的歷史事實。


啓用緩慢變化維類別 1


在默認情形下,當用戶須要使用最新維度表信息統計結果時,即須要類別 1 處理方法時,就須要刷新全部 Cube 歷史數據,這帶來了大量額外的計算開銷,在海量數據場景下沒法接受。所以,Kyligence Enterprise 從 v3.2.2 版本以後,內生支持緩慢變化維類別 1,用戶能夠在定義模型時,經過簡單的設置,便可對維度表啓用緩慢變化維類別1處理,以下圖:


圖表3 Kyligence 支持緩慢變化維類別1處理

對於啓用了緩慢變化維 Type 1 的維度表,Kyligence Enterprise 將僅保留一個最新版本,並在每次 Cube 數據刷新時更新該維度表,而在查詢時,全部 Cube 歷史數據(Segments)將與該最新的維度表聯接並反饋查詢結果,其原理以下圖所示:

圖表4 Kyligence 支持緩慢變化維類別1處理原理

總結


以上即是多維分析中緩慢變化維與常見處理方法的簡單介紹,以及 Kyligence 與 Apache Kylin 在大數據場景下的實踐。


在海量數據多維分析場景下,Kyligence Enterprise 實現了靈活的緩慢變化維類別 1 和類別 2 的處理,既保障了查詢性能,又避免了沒必要要的 Cube 數據刷新的開銷,從而知足不一樣的數據分析需求,大幅提高大數據分析的效率。


將來 Kyligence 還會作更多探索與改進,好比類別 1 和類別 2 的靈活切換,支持更多緩慢變化維處理類型等,敬請期待。


更多詳情,請參考 Kyligence 官方網站:

Kyligence - Enterprise OLAP for Big Data​www.kyligence.io


或 Kyligence Enterprise 用戶手冊:

https://docs.kyligence.io​docs.kyligence.io


關於Kyligence

Kyligence 由首個來自中國的 Apache 軟件基金會頂級開源項目 Apache Kylin 核心團隊組建,是專一於大數據分析領域創新的數據科技公司。Kyligence 提供基於 Apache Kylin 的企業級大數據智能分析產品 Kyligence Enterprise,以及基於公有云的託管式 Kylin 在線服務 Kyligence Cloud。目前,Kyligence 已贏得了海內外多家金融、保險、證券、電信、製造、零售、廣告等企業級客戶。

相關文章
相關標籤/搜索