在當前的數據驅動時代,資料倉儲已成為企業有效管理和分析數據的重要工具。隨著企業數據量的增長,將分散的資料整合並加以利用,對於提升業務決策效率和市(shi)場競爭力至關重(zhong)要(yao)。本文將深入(ru)探討(tao)資料倉儲的概(gai)念、其重(zhong)要(yao)性(xing)以及(ji)企業資料倉儲的架構與每層架構上的核心元(yuan)件(jian)。
資料倉(cang)儲(Data Warehouse)是一種專門設(she)計來(lai)儲存、管理和分(fen)析大量數(shu)(shu)據(ju)的(de)(de)系統。它能(neng)夠將來(lai)自不同來(lai)源的(de)(de)數(shu)(shu)據(ju)進行整(zheng)理和整(zheng)合,並轉換為有(you)價值的(de)(de)信息,供企(qi)業決策者使用(yong)。資料倉(cang)儲的(de)(de)主要特點在於其高效(xiao)的(de)(de)數(shu)(shu)據(ju)檢索能(neng)力(li),能(neng)夠支持複雜的(de)(de)查詢(xun)和報(bao)告需求,為企(qi)業提(ti)供長(chang)期的(de)(de)歷史數(shu)(shu)據(ju)分(fen)析。
關於資料倉儲,有一種簡單粗暴的說法,就是“任何資料倉儲都是透過資料整合工具連線一端的原始資料和另一端的分析介面的資料庫”。
資(zi)(zi)料(liao)倉儲用來管理(li)企業龐大的(de)資(zi)(zi)料(liao)集,提(ti)供轉換(huan)資(zi)(zi)料(liao)、移動資(zi)(zi)料(liao)並將(jiang)其呈(cheng)現給終端使用者的(de)儲存(cun)機制。許(xu)多架(jia)構(gou)方法以(yi)這樣或那(nei)樣的(de)方式擴(kuo)充套件資(zi)(zi)料(liao)倉儲的(de)能力,我(wo)們(men)講集中討(tao)論最(zui)本質的(de)問題,在(zai)不考慮過(guo)多技術細(xi)節的(de)情況下(xia),整(zheng)個層次架(jia)構(gou)可以(yi)被劃分為4層:
大多數情況(kuang)下,資(zi)(zi)料倉儲是一(yi)個(ge)關係型(xing)資(zi)(zi)料庫,包含了允許(xu)多維資(zi)(zi)料的模組,或(huo)者分(fen)為多個(ge)易於訪問的多主題資(zi)(zi)訊域,最(zui)簡單的資(zi)(zi)料倉儲只有一(yi)層架構。
單層架構就以為(wei)著資料倉儲與分析介(jie)面直接連線(xian)(直連),終端(duan)(duan)使用者(zhe)可以直接查詢。但簡單有其弊端(duan)(duan)和適用性:
兩層架構就是在前端應用層和 EDW 層增加了資料集市層。資(zi)料(liao)集市是包含特定主(zhu)題域資(zi)訊的(de)低級別(bie)儲存庫(ku)。簡而言之,它(ta)是一(yi)個在特定主(zhu)題(例如銷售、運營、市場(chang)等)下延(yan)伸了 EDW 的(de)較小資(zi)料(liao)庫(ku)。
這(zhe)種方式解(jie)決(jue)了(le)部門(men)級資料(liao)(liao)查(cha)詢和(he)分析的(de)問題,每(mei)個(ge)部門(men)都(dou)更容易訪問到(dao)所(suo)需資料(liao)(liao),因為每(mei)個(ge)集(ji)市僅包含給定(ding)域資訊,另外,資料(liao)(liao)集(ji)市限制(zhi)了(le)終端使(shi)用者對資料(liao)(liao)的(de)訪問範(fan)圍,設(she)定(ding)了(le)一道(dao)資料(liao)(liao)權限。但是(shi)建(jian)立資料(liao)(liao)集(ji)市層需要額外的(de)硬體資源,並整合它與資料(liao)(liao)平臺其他的(de)資料(liao)(liao)庫。
在資料集市層之上,我們通常會使用聯機分析(OLAP)處理多維資料集(cube)。OLAP 資料集是一類從多維度描述資料的特定資料庫。關係型資料庫只能(neng)表示二維資料,而 OLAP 允許在(zai)多維度(du)下編(bian)譯資料並且在(zai)維度(du)之(zhi)間移動。
OLAP專用於維度建(jian)模資(zi)料的(de)(de)分析(xi),然後透過BI將OLAP的(de)(de)結果以圖(tu)表的(de)(de)方(fang)式展現出來。
OLAP 的業(ye)務價值(zhi)在(zai)於允許對(dui)資料進(jin)行切片(pian)、切片(pian)以多維(wei)度分析,以提供對(dui)所有企(qi)業(ye)資料或特定資料集(ji)市的訪問,現在(zai)基本(ben)已成為主流的架構(gou)應用。
以下這張(zhang)架構圖(tu)使用最廣泛(fan)的體系結構,它由頂層(ceng)、中層(ceng)和底層(ceng)組成(cheng)。
底層:資(zi)(zi)料(liao)(liao)倉儲伺服器的資(zi)(zi)料(liao)(liao)庫作為(wei)底層,通常是一個關係資(zi)(zi)料(liao)(liao)庫系統,使(shi)用後端工具將(jiang)資(zi)(zi)料(liao)(liao)清理(li)、轉換並載(zai)入到該層。
中間層:資料倉儲中的中間層是使用(yong)ROLAP或MOLAP模型實(shi)現的OLAP伺服(fu)器。對於使用(yong)者,此(ci)應(ying)用(yong)程式(shi)層顯示資料庫(ku)的抽(chou)象檢視(shi),這一層還充當終(zhong)端使用(yong)者和資料庫(ku)之間的中介(jie)。
頂層:頂層是前端應(ying)用(yong)層,連線資料(liao)(liao)(liao)倉(cang)儲(chu)並從資料(liao)(liao)(liao)倉(cang)儲(chu)獲(huo)取資料(liao)(liao)(liao)或者API,通常(chang)的應(ying)用(yong)包括資料(liao)(liao)(liao)查詢、報表製(zhi)作、BI資料(liao)(liao)(liao)分析、資料(liao)(liao)(liao)探勘還有(you)一些其(qi)他的應(ying)用(yong)開發(fa)。
資(zi)料(liao)倉儲的4層核心元件(jian):底層源資(zi)料(liao)庫(資(zi)料(liao)儲存(cun)方案)、ETL、前端應用、還有(you)OLAP服務。下面分(fen)別介紹下。
底層的資(zi)(zi)料(liao)(liao)倉儲(chu)伺服器通(tong)常(chang)是一個關(guan)係資(zi)(zi)料(liao)(liao)庫系(xi)統(tong)(tong)(各(ge)種表關(guan)聯的sql統(tong)(tong)計會更方(fang)便一些,非關(guan)係型資(zi)(zi)料(liao)(liao)庫目前(qian)在這方(fang)面還是有所區別)。常(chang)用的方(fang)案有Oracle、db2、sqlserve 還有essbase、greenplum、teredata等資(zi)(zi)料(liao)(liao)倉儲(chu)專業解決方(fang)案。
1、採用傳統關係型資料庫,或經過功能擴充套件的MPP資料庫
① 傳(chuan)統的關係型資料庫有:oracle、mysql、DB2
② 大規模並(bing)行處理資料庫:Vertica、Teradata(商(shang)業)、Greenplum (開源)
Teradata老江湖了,銀行業(ye)使用(yong)(yong)較多(duo),但成(cheng)本也是(shi)真的貴(gui),目(mu)前我們(men)做(zuo)專(zhuan)案較多(duo)的是(shi)用(yong)(yong)Greenplum,算是(shi)業(ye)界最快和(he)最高性價比的高階資(zi)料倉儲(chu)解決方(fang)案,Greenplum是(shi)基於PostgreSQL的,於2015年開源。我知道(dao)的國內四大行有(you)3家在用(yong)(yong),5大物(wu)流公(gong)司有(you)4家在用(yong)(yong),不少公(gong)司在從Teradata 遷移(yi)到(dao) GP。
2、大資料平臺架構:Hadoop+Hive
這套方案(an)有多通(tong)用(yong)不用(yong)多說了,通(tong)常(chang)是這樣的組合:TB級資料用(yong)PG,百(bai)TB級資料用(yong)GP,PB級i上資料用(yong)Hadoop。
要選擇最適合的ETL工具,企業需要綜合考慮自身的業務需求、技術架構、團隊技能以及預算等因(yin)素(su)。以(yi)下(xia)是幾個實用的選型步驟:
這裡推薦FineDataLink,它不僅可以轉化不統一或質量低的資料,還可以將資料清洗和處理集中完成,將資料整合到資料倉儲,減少資料連線和錯誤重試等繁瑣的開發時間。完成(cheng)資料清洗後,結果(guo)表會同(tong)步至資料庫(ku)內(nei),方便其他應用快速呼(hu)叫。同(tong)時可以進行(xing)實(shi)時進行(xing)平臺(tai)級任(ren)務(wu)(wu)運維監控管理(li),打造資料融(rong)合(he)運維的(de)“管理(li)戰情室”。 透過任(ren)務(wu)(wu)級別的(de)結果(guo)通知,配合(he)任(ren)務(wu)(wu)概覽,對最近(jin)報錯、異常中斷的(de)任(ren)務(wu)(wu),檢視詳情進行(xing)修(xiu)正處理(li),保(bao)證以保(bao)證所(suo)有任(ren)務(wu)(wu)的(de)正常執行(xing)。FineDataLink具備以下突出的(de)優點:
1.低程式碼:FineDataLink採用拖拉拽式(shi)(shi)的(de)介面(mian)設計,可以透過(guo)低程(cheng)式(shi)(shi)碼或無程(cheng)式(shi)(shi)碼的(de)方式(shi)(shi)快(kuai)速構建(jian)資料流程(cheng),使用者可以輕鬆參與資料整合和處理(li)
2.高時效性:採用流(liu)程化(hua)的ETL、ELT開發模(mo)式,具備資料毫(hao)秒(miao)級(ji)同(tong)步能力,能夠滿足(zu)業(ye)務場景(jing)中(zhong)對(dui)資料實(shi)時(shi)性的要求。基於CDC、binlog、LogMiner等技術,FineDataLink能夠實(shi)現對(dui)資料來源的實(shi)時(shi)增量同(tong)步,確保資料的時(shi)效性和準確性。
3.整合資料開發:同為帆軟推出的產(chan)品,FineDataLink能夠為報表軟體(ti)和自助(zhu)式BI工具提供高質量的資(zi)料(liao)支(zhi)援(yuan)。搭配(pei)使用,可以很好地實現資(zi)料(liao)整合、處理、儲存、分析和分享。
4.維運成本低:FDL提供高效智(zhi)慧運(yun)維(wei),任務(wu)支援靈活排程、執行狀態實時監控,便捷的(de)操作(zuo)將會釋放運(yun)維(wei)人員巨大的(de)工(gong)作(zuo)量(liang)。
資料倉儲平臺的搭建,最終是為了梳理出有用資料、提供有價值資訊,幫助業務做出正確決策。
前端(duan)應用工(gong)具主要(yao)就是和資料倉(cang)儲(chu)不同(tong)環節的資料互動(dong),這些應用一(yi)般可以分為4類:
其中資(zi)(zi)料分(fen)析工(gong)(gong)(gong)具主(zhu)要(yao)針(zhen)(zhen)對OLAP伺服器,報表工(gong)(gong)(gong)具、資(zi)(zi)料探勘(kan)工(gong)(gong)(gong)具主(zhu)要(yao)針(zhen)(zhen)對資(zi)(zi)料倉儲(chu)。
1、資料查詢和報表工具
通常用來生成一些固定類報表,自動化報表,支援列印和計算等大批次批處理作業。
流行的(de)報(bao)表(biao)(biao)工具,在(zai)舊(jiu)資料倉(cang)儲時代主(zhu)要是(shi)IBM的(de)BO、Oracle的(de)BIEE、還(huan)有(you)微軟(ruan)和cognos,整(zheng)體打包在(zai)資料倉(cang)儲解決方(fang)案裡,報(bao)表(biao)(biao)作為一個(ge)元件存在(zai)。但(dan)是(shi)隨著傳統型(xing)數倉(cang),架構重成本貴,很(hen)多公司(si)在(zai)專案上(shang)會自己考慮設計架構,而不(bu)是(shi)直接強套昂貴的(de)解決方(fang)案,包括很(hen)多開(kai)源元件/平臺的(de)使用(yong)。
有關報表工具,現在專案上用的比較多的是,針對不同企業數倉架構以及報表需求的適用性較廣。比如對接各種資料庫直接生成報表;對採集整理後的資料進行多維報表展現,支撐業務分析報表;對接集團性資料倉儲,構建資料中心平臺,形成決策分析平臺。
2、BI自助分析工具
BI一般(ban)都(dou)集成了OLAP伺服(fu)器和(he)報表(biao)展示功能。分(fen)析(xi)型BI基於多(duo)維資料(liao)庫(ku)的(de)(de)概念(nian),能多(duo)維視(shi)角分(fen)析(xi)資料(liao),通(tong)常是從資料(liao)倉(cang)儲(chu)中抽取(qu)詳細資料(liao)的(de)(de)一個子集並經過必要的(de)(de)聚集儲(chu)存(cun)到OLAP儲(chu)存(cun)器中供前端(duan)BI分(fen)析(xi)工(gong)具讀取(qu)。
BI在前端透過拖拽資料欄位,多維度實施展現資料,最終生成各種分析報告。常用的(de)BI工具(ju)有PowerBI、Tableau、,還有開源的(de)superset。個人使用多(duo)用前兩者,企(qi)業專案上選型(xing)多(duo)用FineBI,因為(wei)要(yao)考慮效(xiao)能、服(fu)務方案等。剩餘就(jiu)是自研(yan)或者開源,superset算(suan)是比較公認(ren)的(de)開源BI。
BI工具做(zuo)什麼的不多說了,在專案選型(xing)的時候主要考(kao)慮上手難(nan)度(考(kao)慮沒技術基礎的業務用),資料處理效(xiao)能,其(qi)他就是技術選型(xing)的事,還有成(cheng)本(ben)。
3、資料探勘工具
OLAP是將資料多維視角呈現分析,資料探勘則是應用的演算法來揭示資料的規律性,比如相(xiang)關性(xing)、模式和趨勢等。資(zi)料探(tan)勘工具就是(shi)做這個的,它能(neng)讓一些演(yan)算(suan)法和過程(cheng)自動化。
舉個例(li)子,比如銀行裡資料(liao)倉儲(chu)以面向“客戶(hu)”為主(zhu)題進(jin)行資料(liao)的(de)儲(chu)存:
OLAP可以實現(xian)資料按照客戶(hu)(hu)的基本資訊(xun)、儲蓄(xu)賬戶(hu)(hu)資訊(xun)、歷史餘(yu)額資訊(xun)、銀行(xing)交易日誌等(deng),以報表(biao)或(huo)者視(shi)覺(jue)化的方式(shi)呈現(xian)分析,多方面掌握客戶(hu)(hu)動態,發現(xian)數據的問題,更好的針對不(bu)同型(xing)別使(shi)用(yong)者進行(xing)特(te)定性營(ying)銷。
資(zi)料探(tan)勘則是通過歷史(shi)資(zi)料建立模型,在擬合曆(li)史(shi)的基礎上,分(fen)析未(wei)來趨勢,判斷哪些因素的改變(bian)將很(hen)可能意味(wei)著客戶的最(zui)終流失,進而避免其發(fa)生。
常用的(de)(de)資(zi)料(liao)(liao)探勘工具,R、Python還有SPSS,基(ji)本都是(shi)開源個(ge)人可(ke)用的(de)(de)。和BI和報表不同,市面上少有為客戶提供定製化資(zi)料(liao)(liao)分析(xi)(xi)和挖(wa)掘的(de)(de)商業(ye)工具或者專(zhuan)案(an)服(fu)務(wu)(wu),因為行業(ye)性太強,需要非(fei)常熟悉業(ye)務(wu)(wu)、資(zi)料(liao)(liao)、平(ping)臺,所以我見過(guo)基(ji)本都是(shi)自己養資(zi)料(liao)(liao)分析(xi)(xi)團隊或者挖(wa)這類(lei)的(de)(de)人才(cai)。
4、應用開發
以上報表型、分析型的資料產品,也會有延申出來的各種特定業務的資料決策系統。比如銀行業基於管理層監控的的行長戰情室、零售業基於門店資料經營的決策系統,以及電商平臺的營銷參謀,都是基於這樣的邏輯——基於業務深度應用。此時(shi)數倉就(jiu)是(shi)提供一個(ge)服(fu)務(wu)(wu)平(ping)臺的角色(se),比如現在很火的資料中(zhong)臺也大體是(shi)這個(ge)邏輯,將資料服(fu)務(wu)(wu)化,具(ju)體不懂(dong)就(jiu)不班(ban)門弄斧了。
這樣(yang)的(de)服務,當然需要自己(ji)開發。
在這三(san)層(ceng)(ceng)之間其實還有中間層(ceng)(ceng)OLAP伺服器,典(dian)型(xing)(xing)實現(xian)為ROLAP模型(xing)(xing)或MOLAP模型(xing)(xing)。現(xian)在很多(duo)成(cheng)熟的BI工(gong)(gong)具都是(shi)集(ji)成(cheng)了(le)OLAP伺服器的,所(suo)以(yi)通常(chang)我們只需(xu)要選擇ETL工(gong)(gong)具以(yi)及(ji)儲存方案(an)(an)和視覺化BI方案(an)(an)即可,所(suo)以(yi)OLAP本文(wen)也就不多(duo)講了(le)。
免費資源下載