建立數(shù)據(jù)倉庫是一個解決企業(yè)數(shù)據(jù)問題應(yīng)用的過程,是企業(yè)信息化發(fā)展到一定階段必不可少的一步,也是發(fā)展數(shù)據(jù)化管理的重要基礎(chǔ)。數(shù)倉的知識市面上的書籍和文章不少,但是實際實施依據(jù)行業(yè)不同,企業(yè)核心訴求不同,從技術(shù)到方法論各有不同。
如何實施數(shù)倉項目,本文先以傳統(tǒng)行業(yè)的數(shù)倉切入,從整體上講下數(shù)據(jù)倉庫的實施方法論!
數(shù)據(jù)倉庫的通用實施步驟
一、需求分析
需求分析是數(shù)據(jù)倉庫項目最重要的一個環(huán)節(jié),數(shù)倉說到底還是服務(wù)于業(yè)務(wù),支撐于業(yè)務(wù),如果需求分析不準(zhǔn)確,做了沒人用,上了不好用,會直接影響業(yè)務(wù)/客戶的使用,最終導(dǎo)致項目的失敗。為了避免最壞的情況,磨刀不誤砍柴工,前期一定要重視需求的調(diào)研、挖掘和分析,并采用一些嚴謹科學(xué)的措施和方法去做需求分析。
在實際調(diào)研過程中分享幾個經(jīng)驗:
1、盡可能與業(yè)務(wù)方/客戶方一起分析需求,引導(dǎo)對方將項目所要實現(xiàn)的整體框架和業(yè)務(wù)細節(jié)部分述清楚,最好的方式就是需求人員和設(shè)計人員基于原型來討論,從而正確理解實際的業(yè)務(wù)需求。
2、必須實事求是地將數(shù)據(jù)倉庫所能實現(xiàn)的目標(biāo)和不容易解決的問題與協(xié)商清楚。這一個環(huán)節(jié)趟過不少坑,IT方急著上線,業(yè)務(wù)方對于項目還處于一知半解,甚至在推動的時候可能避重就輕,比如一期不滿足的需求強行上,長遠來看項目會產(chǎn)生不少推諉和扯皮,消磨的是對方的信任。
所以在需求討論的基礎(chǔ)上,需要理解業(yè)務(wù)工作流程,當(dāng)然如果你已經(jīng)具備了這個行業(yè)豐富的業(yè)務(wù)知識,那可以在需求調(diào)研的時候盡可能地讓對方按照自己的思路去完成數(shù)據(jù)倉庫系統(tǒng)的功能設(shè)計。
3、需求方群體的分類,BI項目最終的使用對象可以分為以下幾類:數(shù)據(jù)查詢者、報表查詢者、企業(yè)決策者。
這三類人群的需求特點完全不一樣,溝通的時候需要注意區(qū)分并深刻理解
4、需求調(diào)研的再完美,也避免不了需求變更?,F(xiàn)實是很多情況下需求是不確定的,業(yè)務(wù)方是提不出有價值的需求的,需求今天是A明天又變成B無法一步做到位的,這都很正常,作為項目實施者要做好心理預(yù)期。
一般情況下,業(yè)務(wù)方能夠提供的都是需求的整體框架部分或者是實際需求的一部分內(nèi)容,不能預(yù)見未來需要增加的需求,這也注定了數(shù)倉項目是一個不斷循環(huán)、反饋,使系統(tǒng)不斷完善增長的過程。
不能規(guī)避風(fēng)險但是可以減少風(fēng)險,所以科學(xué)的調(diào)研尤為重要。以下是調(diào)研模板,當(dāng)需求調(diào)研完成時,需要對采集結(jié)果進行分析、歸納、整理,最終形成完整的需求分析報告。
摘于《數(shù)據(jù)化建設(shè)知識圖譜》
業(yè)務(wù)需求的實施目的就是真正理解企業(yè)決策者的戰(zhàn)略性目標(biāo)。在理解建立商業(yè)智能系統(tǒng)目標(biāo)的基礎(chǔ)上,建立有效的企業(yè)管理模式,制定出詳細的企業(yè)數(shù)據(jù)倉庫業(yè)務(wù)管理規(guī)范,設(shè)計出常用的ETL數(shù)據(jù)采集規(guī)范和工作流程,從而明確商業(yè)智能系統(tǒng)的實施范圍和目標(biāo)。為了提高企業(yè)的分析決策能力,可以利用當(dāng)下的局域網(wǎng)技術(shù)和互聯(lián)網(wǎng)技術(shù)實現(xiàn)企業(yè)對各種信息的查詢和分析,通過建立企業(yè)業(yè)務(wù)數(shù)據(jù)模型,分析商業(yè)智能系統(tǒng)的系統(tǒng)架構(gòu)、數(shù)據(jù)源之間的差異、對數(shù)據(jù)質(zhì)量的評估和各種信息的處理方法,有效地提高企業(yè)商業(yè)智能系統(tǒng)的分析和決策能力。
二、數(shù)據(jù)倉庫的邏輯分析
數(shù)據(jù)倉庫在邏輯上可以分成操作型數(shù)據(jù)庫、數(shù)據(jù)倉庫層、數(shù)據(jù)集市層、數(shù)據(jù)分析應(yīng)用層和報表展示層,其架構(gòu)如下圖所示:
三、設(shè)計ODS系統(tǒng)
ODS 可以有兩種形式:ODS 數(shù)據(jù)緩沖區(qū)和ODS統(tǒng)一信息視圖區(qū)。
① ODS數(shù)據(jù)緩沖區(qū)
ODS數(shù)據(jù)緩沖區(qū)是業(yè)務(wù)數(shù)據(jù)流動過程的第一個存儲區(qū),實現(xiàn)了數(shù)據(jù)倉庫從各個業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源中將數(shù)據(jù)抽取出來,并且裝載到ODS數(shù)據(jù)緩沖區(qū)的這一過程,從而實現(xiàn)統(tǒng)一的全局的企業(yè)數(shù)據(jù)平臺,為以后的數(shù)據(jù)抽取、清洗、轉(zhuǎn)換過程打下堅實的基礎(chǔ)。對于數(shù)據(jù)的數(shù)據(jù)源可以采用增量的方式進行抽取,對于經(jīng)常變化更新的數(shù)據(jù)一般采用全量的方式進抽取。ODS數(shù)據(jù)緩沖區(qū)具有實時性的特征,ODS系統(tǒng)將各個孤立的業(yè)務(wù)系統(tǒng)的生產(chǎn)運營數(shù)據(jù)集成起來,組成統(tǒng)一的、全局的企業(yè)數(shù)據(jù)交換平臺。
② ODS統(tǒng)一信息視圖區(qū)
ODS統(tǒng)一信息視圖區(qū)是指有選擇地集成各類業(yè)務(wù)源數(shù)據(jù),對數(shù)據(jù)進行抽取、清洗、轉(zhuǎn)換操作,以數(shù)據(jù)主題域為數(shù)據(jù)集成的基礎(chǔ),對數(shù)據(jù)進行分類和組織,使用戶能夠通過統(tǒng)一信心視圖區(qū)獲得跟某個主題域相關(guān)的實時性數(shù)據(jù)。各業(yè)務(wù)系統(tǒng)和ODS統(tǒng)一信息視圖區(qū)可以互相訪問,可以生成具有實時性的操作性報表和查詢某一主題的近期全部信息。
③ ODS數(shù)據(jù)緩沖區(qū)和ODS統(tǒng)一信息視圖區(qū)的區(qū)別和共同點
ODS 數(shù)據(jù)緩沖區(qū)主要為業(yè)務(wù)源數(shù)據(jù)抽取到數(shù)據(jù)倉庫中提供中間數(shù)據(jù)緩沖的功能,與ODS 統(tǒng)一信息視圖區(qū)最大的區(qū)別就是數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、加載的轉(zhuǎn)換規(guī)則和數(shù)據(jù)存儲的方式不同。ODS統(tǒng)一信息視圖區(qū)是完全按照主題的方式進行數(shù)據(jù)存儲,向用戶提供快速的報表展示和數(shù)據(jù)實時查詢的功能。而ODS數(shù)據(jù)緩沖區(qū)的ETL規(guī)則一般只進行簡單的匯總、計算,或者從操作型數(shù)據(jù)庫中直接抽取而中間不進行任何轉(zhuǎn)化。ODS 統(tǒng)一信息視圖區(qū)的數(shù)據(jù)一般都是從ODS數(shù)據(jù)緩沖區(qū)中抽取過來的。
四、數(shù)據(jù)倉庫建模
數(shù)據(jù)倉庫建模在前面已經(jīng)有了詳細的介紹,數(shù)據(jù)倉庫模型是IT技術(shù)開發(fā)人員、業(yè)務(wù)人員、決策管理者相互溝通的一套語言和平臺。對于數(shù)據(jù)建模工程師來說,對業(yè)務(wù)的深刻理解是首要任務(wù),因為數(shù)據(jù)倉庫建模分為概念模型設(shè)計、邏輯模型設(shè)計和物理模型設(shè)計3個階段,一般按照自頂向下的順序依次對模型進行設(shè)計。
概念模型主要是模型設(shè)計人員對業(yè)務(wù)規(guī)則的理解,是最高層次的數(shù)據(jù)模型,幾乎涵蓋了業(yè)務(wù)所有的核心概念和重要的主題,為以后邏輯模型的建設(shè)打下了基礎(chǔ)。
邏輯模型是對概念模型的分解、細化,將數(shù)據(jù)主題劃分成一個個的實體和實體關(guān)系,一般將第三范式作為設(shè)計的模板。
物理模型在邏輯模型的基礎(chǔ)上對模型實體進行細節(jié)性的描述,包括字段類型、長度、索引等因素,最后轉(zhuǎn)化成數(shù)據(jù)庫存儲的物理表。
摘于《數(shù)據(jù)化建設(shè)知識圖譜》
五、數(shù)據(jù)集市建模
一般數(shù)據(jù)集市模型的建設(shè)是基于需求分析得到的結(jié)果,數(shù)據(jù)集巾的建模主要針對事實表和維表的設(shè)計。例如,部門員工關(guān)系表,如果事實表包含部門編碼,則數(shù)據(jù)可以分析到部門。如果事實表又包含員工編碼,則數(shù)據(jù)既可以分析到部門,又可以分析到員工。一張事實表除了包含所要分析的維度編碼外,還包括需要分析的度量值。例如,用戶用電分析事實表,它的主題描述就是按地區(qū)、時間、電壓等級統(tǒng)計用戶的耗電量、應(yīng)收電費,并進行同期對比;它的維度就是地區(qū)、時間、電壓等級,度量值包括耗電量、應(yīng)收電費等;指標(biāo)來源就是數(shù)據(jù)倉庫中的計費結(jié)果表、用戶基本信息表。維表一般采用增量的方式進行抽取。
六、數(shù)據(jù)源分析
所謂數(shù)據(jù)源分析,就是對源數(shù)據(jù)進行分析和總結(jié),得出源數(shù)據(jù)的范圍、格式、更新方式、更新頻率和質(zhì)量好壞的過程。
數(shù)據(jù)源分析是指通過需求調(diào)研得知業(yè)務(wù)數(shù)據(jù)源的基本情況,并且加以詳細說明,具體內(nèi)容包括數(shù)據(jù)源中存在哪些物理表,表之間的關(guān)系和表中每個字段的數(shù)據(jù)類型和含義等。一般來說,業(yè)務(wù)數(shù)據(jù)源通常會有數(shù)據(jù)不完整、口徑不一致,或者各個數(shù)據(jù)源存在業(yè)務(wù)規(guī)則不統(tǒng)一的情況。
另外,在分析的過程中,需要確定業(yè)務(wù)源數(shù)據(jù)中哪些數(shù)據(jù)需要被抽取。為了確定合適的抽取方式,需要在抽取之前對數(shù)據(jù)源進行分析,分析的范圍一般包括數(shù)據(jù)的格式、數(shù)據(jù)的范圍、更新的方式、數(shù)據(jù)質(zhì)量的好壞。在分析的過程中,應(yīng)該盡可能獲取分析的結(jié)果,形成數(shù)據(jù)源分析報告,在仔細研究分析報告后,再選擇合適的抽取、加載方式。了解這些數(shù)據(jù)源的特點,有利于ETL 抽取時對數(shù)據(jù)的整合和統(tǒng)一,從而保證數(shù)據(jù)的質(zhì)量和可信度。
七、數(shù)據(jù)的獲取與整合
數(shù)據(jù)的獲取與整合存在于數(shù)據(jù)倉庫項目中的各個階段。數(shù)據(jù)倉庫很重要的一個作用就是將散落在各業(yè)務(wù)系統(tǒng)的數(shù)據(jù)整合起來,不規(guī)范的數(shù)據(jù)規(guī)范起來,以一種便于分析和應(yīng)用的方式放到數(shù)據(jù)倉庫里,供前端應(yīng)用分析。ETL 過程實際上就是數(shù)據(jù)流動的過程,即從不同的數(shù)據(jù)源流向統(tǒng)一的目標(biāo)數(shù)據(jù)庫。數(shù)據(jù)的獲取與整合是完成數(shù)據(jù)倉庫建設(shè)取復(fù)雜的過程,它關(guān)系到數(shù)據(jù)的質(zhì)量,是數(shù)據(jù)倉庫項目建設(shè)的根基。
八、數(shù)據(jù)應(yīng)用和報表展現(xiàn)
報表絕對是讓人痛苦的東西。格式復(fù)雜、需求多變,業(yè)務(wù)沒事就改需求或者增加幾個。雖然說起報表感覺很老土,但確實是整個數(shù)倉項目價值落地呈現(xiàn)的東西。
做報表多的人,基本上都會做一個自己的工具,至少也會做一個引擎,按照自己的理解用一種結(jié)構(gòu)化加動態(tài)的方式去定義所需要的報表,可以靈活的選擇所需要的數(shù)據(jù),設(shè)計展現(xiàn)樣式生成報表?,F(xiàn)在一般都是采用專業(yè)的低代碼的報表工具來做報表,比如FineReport去做報表,提升開發(fā)效率,側(cè)重應(yīng)用分析,畢竟沒有誰想一天到晚被報表纏身。
結(jié)合前面談到的數(shù)據(jù)分層的機制,會發(fā)現(xiàn),不管基于哪一層,都有做報表的需求。個人認為報表的重點不在與報表的制作,而在于如何利用報表為業(yè)務(wù)為項目謀價值。
大公司都會有負責(zé)報表分析這塊的項目人員,那針對報表延伸出來的工作,報表需求分析、指標(biāo)體系規(guī)劃、以及各位為經(jīng)營為管理為基層人員的報表分類,還有圍繞業(yè)務(wù)的分層設(shè)計。
對于基層員工,報表使用的最多的就是錄數(shù)據(jù),查詢數(shù)據(jù)。比如商場售貨員瀏覽數(shù)據(jù)來查看商品的售賣情況,以此來及時補貨,還有每天的日銷售數(shù)據(jù)錄入。
對于部分業(yè)務(wù)人員,報表的不再是簡單的展示和錄入,會衍生出一些分析的需求,比如采購經(jīng)理,他需要決定采購哪些品牌的商品,從哪一家供應(yīng)商來采購,如何規(guī)劃商店的商品。那方法就是看報表看哪些商品買的好,以此來考慮是否需要加購哪些品牌商品,放棄那些品牌商品或者搞促銷。高大上一點的說辭就是利用數(shù)據(jù)優(yōu)化商品結(jié)構(gòu),選擇供應(yīng)商。
對于企業(yè)管理層,更多的說是做dashboard進行指標(biāo)的監(jiān)控,做的業(yè)績分析(時間、地區(qū)緯度等)。而這一過程,也是通過數(shù)據(jù)使管理層可以更容易的按照標(biāo)準(zhǔn)的管理方法進行決策(如果說員工是判斷,領(lǐng)導(dǎo)就是決策了...)