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