商業智能BI技術作為目前大數據技術的重要應用方向之一,被廣泛地應用到企業數據分析、數據可視化、數據挖掘、“智慧+”等各類場景。而數據倉庫作為其重要的底層數據支撐,與數據中臺、數據湖等更廣泛的平臺,共同為BI技術提供了堅實的數據底座。
一、BI報表和數據倉庫的關系
數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它將各種異構數據進行集中存儲,為分析性報告和決策支持的目的而創建。進而提供指導企業改進業務流程、監控運營過程、追溯質量以及控制成本。
BI商業智能,是一套完整的系統性解決方案,從數據倉庫,到ETL(數據清洗),OLAP分析,以及深度的數據挖掘,前端報表展現。在具體企業數據分析項目中,會將它們中的若干流程有機結合起來,實現一個完整的企業數據分析技術方案。
商業智能BI不僅僅包含前端可視化分析、報表展現的能力,更包含了底層數據倉庫的建設過程。
所以,如果是把BI商業智能堪稱一個方案,那數據倉庫就是其中的一環。如果把BI商業智能理解為一個數據應用,那數據倉庫就是底層的數據層,為數據分析的提供數據支撐。
數據庫與數據倉庫的區別
數據庫 Database (Oracle, MySql, SqlServer,PostgreSQL等)主要用于事務處理,數據倉庫 Datawarehouse (Amazon Redshift, Hive)主要用于數據分析。用途上的不同決定了這兩種架構的特點不同。
數據庫(Database)的特點是:相對復雜的表格結構,存儲結構相對緊致,少冗余數據。讀和寫都有優化。相對簡單的read/write/query,單次作用于相對的少量數據。
數據倉庫(DatawareHouse)的特點是:相對簡單的(Denormalized)表格結構,存儲結構相對松散,多冗余數據。一般只是讀優化。相對復雜的read/query,單次作用于相對大量的數據(歷史數據)。
二、OLAP和OLTP、寬表理論
OLAP(On-Line Analytical Processing)聯機分析處理,也稱為面向交易的處理過程,其基本特征是前臺接收的用戶數據可以立即傳送到計算中心進行處理,并在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一,主要應用在數據倉庫,使用對象是決策者。OLAP系統強調的是數據分析,響應速度要求沒那么高。
OLTP(On-Line Transaction Processing)聯機事務處理,它使分析人員能夠迅速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。主要應用是傳統關系型數據庫。OLTP系統強調的是內存效率,實時性比較高。
寬表理論
寬表:從字面意義上講就是字段比較多的數據庫表。通常是指業務主題相關的指標、維度、屬性關聯在一起的一張數據庫表。由于把不同的內容都放在同一張表存儲,寬表不符合三范式的模型設計規范,隨之帶來的主要壞處就是數據的大量冗余,與之相對應的好處就是查詢性能的提高與便捷。寬表的設計廣泛應用于數據挖掘模型訓練前的數據準備,通過把相關字段放在同一張表中,可以大大提高數據挖掘模型訓練過程中迭代計算時的效率問題。寬表的本支是用空間換時間,便于訓練迭代、減少表關聯數量,修改少量數據時不需要該多張表。
維度
維度,即觀察數據的角度。比如員工數據,可以從性別角度來分析,也可以更加細化,從入職時間或者地區的維度來觀察。維度是一組離散的值,比如說性別中的男和女,或者時間維度上的每一個獨立的日期。因此在統計時可以將維度值相同的記錄聚合在一起,然后應用聚合函數做累加/平均/最大和最小值等聚合計算。
度量
度量,即被聚合(觀察)的統計值,也就是聚合運算的結果。比如說員工數據中不同性別員工的人數,又或者說在同一年入職的員工有多少。
以Wyn商業智能軟件為例,其中數據集和數據模型,即分布對應了寬表模式和維度模式的數倉結構。
數據集是基于數據源創建的,支持關系型數據庫、Elastic Search、MongoDB、Excel、JSON、API等各種數據源格式。數據集將數據進行抽取緩存,支持數據清洗、復雜計算以及添加復雜的過濾器,最終以寬表模型進行物理存儲,交互速度快。但由于中間經過緩存過程,因此數據不是實時更新,需通過刷新計劃進行數據同步,常用于實時性要求不高的歷史數據分析。
數據模型基于維度模型設計,在數據查詢上有更好的表現。Wyn具有強大的數據建模的能力,同時支持了抽取數據模型和直連數據模型,滿足用戶更多的數據分析場景,幫助用戶更好的實現數據分析需求。可以滿足基于已有數據倉庫和實時性要求較高的數據分析。
三、星型模型和雪花模型
在多維分析的商業智能解決方案中,根據事實表和維度表的關系,又可將常見的模型分為星型模型和雪花型模型。在設計邏輯型數據的模型的時候,就應考慮數據是按照星型模型還是雪花型模型進行組織。
星型模型
當所有維表都直接連接到“事實表”上時,整個圖解就像星星一樣,故將該模型稱為星型模型。星型架構是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,所以數據有一定的冗余。
雪花模型
當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的 " 層次 " 區域,這些被分解的表都連接到主維度表而不是事實表。它的優點是: 通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。雪花型結構有效地去除了數據冗余。
四、數據倉庫分層體系
1、為什么要進行分層設計
數據倉庫分層設計的主要目的包括:
空間換時間建立公共清洗層,能夠極大地減少數據重復計算,提升復用性可拓展性,可以適應各種非預期的數據列添加和算法各層只做1、2個步驟,分層解耦,出了問題方便定位問題,從有問題的步進行調試節省排錯時間,假如所有數據任務加起來要執行2個小時,如果只搞一層,那么每次新執行任務都需要2個小時,如果分層將任務拆分以后,可以分開執行任務,針對具體問題的修改就只需要更少的時間
統一指標口徑,往往來自不同數據庫的相同數據的叫法不一,需要將它們統一起來不分層的話,如果源業務系統的業務規則發生變化,將會影響整個數據清洗過程,修改工作量巨大(隨著業務的拓展,不會大幅影響到數據模型的整體構架)改善數據質量,也可通過模型對外輸出統一統計口徑,降低出錯概率2、分層設計的方法
ODS層(原始數據層)“面向主題的”數據運營層,也叫ODS層,是最接近數據源中數據的一層,數據源中的數據,經過抽取、洗凈、傳輸,也就是在ETL 之后,裝入本層。本層的數據,總體上大多是按照源頭業務系統的分類方式而分類的。(1)業務數據一般是采用數據遷移工具以固定頻率同步到數倉中構建ODS層
(2)接入層一般不會對源數據做任何處理、清洗,便于之后回溯。
DWD層(明細層寬表)該層一般保持和ODS層一樣的數據粒度,并且提供一定的數據質量保證。同時,為了提高數據明細層的易用性,該層會采用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯。(1)進行表關聯、清洗加工(2)維度派生、度量指標派生
DWS層(輕量匯總層寬表)又稱數據集市或寬表。按照業務劃分,如流量、訂單、用戶等,生成字段比較多的寬表,用于提供后續的業務查詢,OLAP分析,數據分發等。
一般來講,該層的數據表會相對比較少,一張表會涵蓋比較多的業務內容,由于其字段較多,因此一般也會稱該層的表為寬表。
在實際計算中,如果直接從DWD或者ODS計算出寬表的統計指標,會存在計算量太大并且維度太少的問題,因此一般的做法是,在DWM層先計算出多個小的中間表,然后再拼接成一張DWS的寬表。由于寬和窄的界限不易界定,也可以去掉DWM這一層,只留DWS層,將所有的數據在放在DWS亦可。
(1)輕量匯總,如天級別的匯總(2)聚合后的指標計算
ADS層(應用數據層)主要是提供給數據產品和數據分析使用的數據,一般會存放在 ES、PostgreSql、Redis等系統中供線上系統使用,也可能會存在 Hive 或者 Druid 中供數據分析和數據挖掘使用。比如我們經常說的報表數據,一般就放在這里。DIM層(維表層)高基數維度數據:一般是用戶資料表、商品資料表類似的資料表。數據量可能是千萬級或者上億級別。低基數維度數據:一般是配置表,比如枚舉值對應的中文含義,或者日期維表。數據量可能是個位數或者幾千幾萬。
五、商業智能軟件的應用
通過本文的介紹,我們系統性的學習了數據倉庫的設計理論和實踐知識。Wyn商業智能軟件,作為嵌入式商業智能軟件,基于數據參倉庫的底座,可以實現包括:數據源接入、數據建模、數據可視化、報表統計等各種數據分析需求。并且,這些功能可以嵌入到B/S、C/S、APP、SaaS、PaaS等架構的軟件產品中,快速增強其數據整合、自助式BI分析、數據可視化、報表設計等方面能力,已經廣泛應用于ERP、MES、APS、OA、企業微信、釘釘等應用系統中,讓用戶在使用業務系統過程中,可以隨時借助數據分析來輔助決策的制定。
智能數據建模
Wyn具備強大的雙驅數據建模能力,同時支持抽取數據模型和直連數據模型,靈活滿足了不同的數據分析場景,抽取數據模型適合大數據量、歷史數據分析,分析速度和性能表現更佳。直連模型無數據延遲,適合實時數據分析和展示,主要應用于預警監控指標類場景。
自助分析
自助式BI(也叫做自助式分析),是一種新的數據分析方式。讓沒有統計分析、數據挖掘、數據庫 SQL 知識的業務人員,也可以通過豐富的數據交互和探索功能,發現數據背后的原因和價值,從而輔助業務決策的制定。自助式BI分析功能可以來自于獨立的 BI 軟件,也可以由行業應用軟件直接提供。
Wyn入式商業智能和報表軟件,提供自助式BI分析功能,最終用戶可以非常靈活的與數據交互,探索數據背后的原因并發掘更多價值,為決策制定提供有效的數據支撐。在儀表板設計和分析階段,均提供圖表聯動、數據鉆取、數據切片器、OLAP 等交互式分析功能,用戶僅需通過極少的操作,便能找到最有價值的數據。
以上就是整個數據倉庫設計的主要知識點了,希望對從事BI行業的朋友有所幫助和啟發。