數(shù)倉建模方法主要有哪三種 數(shù)據(jù)倉庫數(shù)據(jù)建模的幾種思路?
數(shù)據(jù)倉庫數(shù)據(jù)建模的幾種思路?說起建模,不得不說兩個牛人,一個是數(shù)倉之父-Inmon,他推崇的是er模型另外一個是kimball,推崇的是維度模型。其實兩種建模,各有所長。er模型就是實體關(guān)系模型,對建
數(shù)據(jù)倉庫數(shù)據(jù)建模的幾種思路?
說起建模,不得不說兩個牛人,一個是數(shù)倉之父-Inmon,他推崇的是er模型另外一個是kimball,推崇的是維度模型。其實兩種建模,各有所長。er模型就是實體關(guān)系模型,對建模人員要求高,且實施周期長,建設(shè)完成后數(shù)據(jù)間關(guān)系清晰且無冗余,對保證數(shù)據(jù)的一致性和準(zhǔn)確性有天然的優(yōu)勢,但是后期不能應(yīng)對業(yè)務(wù)變化。維度模型,是將業(yè)務(wù)數(shù)據(jù)拆分成維度表與事實表,維度表主要用來存放一些公共的不隨業(yè)務(wù)發(fā)展變化的數(shù)據(jù),比如員工信息、合同信息等事實表用來存放一些維度表的鍵值和度量值,比如員工id、交易金額等。維度建模的時候不需要建模人員對全局的數(shù)據(jù)有了解,只需要對相關(guān)的數(shù)據(jù)了解就行,而且在面對業(yè)務(wù)變化的時候有天然的優(yōu)勢。另外還有Inmon在er模型上改進后的datavault模型,不過datavault不能簡單的稱做模型,算一種整體的解決方案。
數(shù)倉建模全流程?
1、建模流程
其實就是業(yè)務(wù)模型-gt概念模型-gt邏輯模型-gt物理模型的這樣一個流程,下面我們詳細解釋一下各個模型階段都要做什么
業(yè)務(wù)建模(需求溝通)
根據(jù)業(yè)務(wù)部門進行劃分,理清部門之間的關(guān)系,然后將各個部門的具體業(yè)務(wù)程序化,與業(yè)務(wù)部門開會協(xié)商出需求的指標(biāo)、保存年限、維度等等。
總體來講,就是要知道他們需要哪些指標(biāo)以及他們能提供哪些數(shù)據(jù)。
業(yè)務(wù)建模的時間最長,而且與公司實際的業(yè)務(wù)環(huán)境息息相關(guān),因此在這里需要根據(jù)實際生產(chǎn)環(huán)境和業(yè)務(wù)需求確認好數(shù)據(jù)倉庫使用的工具和平臺。
主要解決業(yè)務(wù)層面的分解和程序化。搞清楚系統(tǒng)邊界,確定好主題域
1
1
因此,業(yè)務(wù)建模階段其實是一次和業(yè)務(wù)人員梳理業(yè)務(wù)的過程,在這個過程中,不僅能幫助我們技術(shù)人員更好的理解業(yè)務(wù),另一方面,也能夠發(fā)現(xiàn)業(yè)務(wù)流程中的一些不合理的環(huán)節(jié),加以改善和改進。
概念建模|領(lǐng)域建模(畫圖想好怎么做)
將業(yè)務(wù)模型抽象化,分組合并類似的概念,細化概念,抽象出實體與實體之間的聯(lián)系,理清各組概念之間的聯(lián)系。
說白了就是畫圖,把指標(biāo)需要的哪些數(shù)據(jù)封裝到一個實體里,實體與實體之間的關(guān)聯(lián)等等用ER圖表示出來。
先畫出局部ER圖,最后再綜合畫出全局ER圖。
主要是對業(yè)務(wù)模型進行抽象處理,生成領(lǐng)域概念模型
1
1
在原有數(shù)據(jù)庫基礎(chǔ)上建立了一個比較穩(wěn)固完善的模型,因為數(shù)據(jù)倉庫是對原有數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)進行集成和重組而形成的數(shù)據(jù)集合,所以數(shù)據(jù)倉庫的概念模型設(shè)計,首先要對原有數(shù)據(jù)庫系統(tǒng)加以分析理解,看在原有的數(shù)據(jù)庫系統(tǒng)中“有什么”、“怎樣組織的”和“如何分布的”等,然后再來考慮應(yīng)當(dāng)如何建立數(shù)據(jù)倉庫系統(tǒng)的概念模型。
數(shù)據(jù)倉庫的概念模型是面向企業(yè)全局建立的,它為集成來自各個面向應(yīng)用的數(shù)據(jù)庫的數(shù)據(jù)提供了統(tǒng)一的概念視圖。
概念模型的設(shè)計是在較高的抽象層次上的設(shè)計,因此建立概念模型時不用考慮具體技術(shù)條件的限制。
領(lǐng)域概念建模就是運用了實體建模法,從紛繁的業(yè)務(wù)表象背后通過實體建模法,抽象出實體,事件,說明等抽象的實體,從而找出業(yè)務(wù)表象后抽象實體間的相互的關(guān)聯(lián)性,保證了我們數(shù)據(jù)倉庫數(shù)據(jù)按照數(shù)據(jù)模型所能達到的一致性和關(guān)聯(lián)性
邏輯建模(表設(shè)計)
將概念模型實體化,具體考慮概念對應(yīng)的屬性,事件考慮事實屬性,維度考慮維度屬性。
總體來說就是建表,前面已經(jīng)畫出了關(guān)系圖,這里只要將表里頭有哪些字段考慮出來就可以,如果是事實表就考慮事實字段和業(yè)務(wù)主鍵,如果是維度表就考慮維度屬性,SCD策略等等。在這里需要確定數(shù)據(jù)粒度,如果多個指標(biāo)都用到一個字段,則取粒度最小的指標(biāo)。如果不確定指標(biāo)的量度,則取毫秒級作為粒度。
物理建模(建表)
綜合現(xiàn)實的大數(shù)據(jù)平臺、采集工具、etl工具、數(shù)倉組件、性能要求、管理要求等多方面因素,設(shè)計出具體的項目代碼,完成數(shù)倉的搭建。
2、建模的過程
假設(shè)我們現(xiàn)在在構(gòu)建一張訂單表
從多個維度進行統(tǒng)計組合,形成多維度數(shù)據(jù)集,來從多個角度觀察業(yè)務(wù)過程的好壞
1
1
選擇業(yè)務(wù)過程
確認哪些業(yè)務(wù)處理流程是數(shù)據(jù)倉庫應(yīng)該覆蓋的,是維度方法的基礎(chǔ)。因此,建模的第一個步驟是描述需要建模的業(yè)務(wù)流程。例如,需要了解和分析一個零售店的銷售情況,那么與該零售店銷售相關(guān)的所有業(yè)務(wù)流程都是需要關(guān)注的。為了描述業(yè)務(wù)流程,可以簡單地使用純文本將相關(guān)內(nèi)容記錄下來,或者使用“業(yè)務(wù)流程建模標(biāo)注”(BPMN)方法,也可以使用統(tǒng)一建模語言(UML)或其他類似的方法。
業(yè)務(wù)過程就是需要那種業(yè)務(wù)場景下產(chǎn)生的訂單表(劃分到那個業(yè)務(wù)線和數(shù)據(jù)域)
業(yè)務(wù)過程就是用戶下單的訂單記錄表
選擇數(shù)據(jù)域
申明粒度
粒度就是確認一條記錄代表的含義或者是細化到何種程度(一條記錄代表一個訂單還是多個訂單,如拼團的時候團長的單)
在選擇維度和事實前必須聲明粒度,因為每個候選維度或事實必須與定義的粒度保持一致。在一個事實所對應(yīng)的所有維度設(shè)計中強制實行粒度一致性是保證數(shù)據(jù)倉庫應(yīng)用性能和易用性的關(guān)鍵。
從給定的業(yè)務(wù)流程獲取數(shù)據(jù)時,原始粒度是最低級別的粒度。建議從原始粒度數(shù)據(jù)開始設(shè)計,因為原始記錄能夠滿足無法預(yù)期的用戶查詢。匯總后的數(shù)據(jù)粒度對優(yōu)化查詢性能很重要,但這樣的粒度往往不能滿足對細節(jié)數(shù)據(jù)的查詢需求。
不同的事實可以有不同的粒度,但同一事實中不要混用多種不同的粒度。維度模型建立完成之后,還有可能因為獲取了新的信息,而回到這步修改粒度級別。
確認維度
維度的粒度必須和第二步所聲明的粒度一致。
維度表是事實表的基礎(chǔ),也說明了事實表的數(shù)據(jù)是從哪里采集來的。
典型的維度都是名詞,如日期、商店、庫存等。維度表存儲了某一維度的所有相關(guān)數(shù)據(jù),例如,日期維度應(yīng)該包括年、季度、月、周、日等數(shù)據(jù)。
確認事實
這一步識別數(shù)字化的度量,構(gòu)成事實表的記錄。它是和系統(tǒng)的業(yè)務(wù)用戶密切相關(guān)的,因為用戶正是通過對事實表的訪問獲取數(shù)據(jù)倉庫存儲的數(shù)據(jù)。大部分事實表的度量都是數(shù)字類型的,可累加,可計算,如成本、數(shù)量、金額等。
3、模型設(shè)計的思路
業(yè)務(wù)需求驅(qū)動,數(shù)據(jù)驅(qū)動,構(gòu)造數(shù)據(jù)倉庫有兩種一是自上而下,一是自下而上。
自上而下
Bill Inmon先生推崇“自上而下”的,即一個企業(yè)建立唯一的數(shù)據(jù)中心,就像一個數(shù)據(jù)的倉庫,其中數(shù)據(jù)是經(jīng)過整合、經(jīng)過清洗、去掉臟數(shù)據(jù)的、標(biāo)準(zhǔn)的,能夠提供統(tǒng)一的視圖。要建立這樣的數(shù)據(jù)倉庫,并不從它需要支持哪些應(yīng)用入手,而是要從整個企業(yè)的環(huán)境入手,分析其中的概念,應(yīng)該有什么樣的數(shù)據(jù),達成概念完成整;
自下而上
Ralph Kimball先生推崇“自下而上”的,他認為建設(shè)數(shù)據(jù)倉庫應(yīng)該按照實際的應(yīng)用需求,加載需要的數(shù)據(jù),不需要的數(shù)據(jù)不要加載到數(shù)據(jù)倉庫中。這種建設(shè)周期較短,客戶能夠很快看到結(jié)果。(針對客戶的需求,需求要什么就做什么)
4、模型落地實現(xiàn)
按照命名規(guī)范創(chuàng)建表
開發(fā)生成維表和事實表的代碼
進行代碼邏輯測試,驗證數(shù)據(jù)加工邏輯的正確性代碼發(fā)布,加入調(diào)度并配置相應(yīng)的質(zhì)量監(jiān)控和報警機制