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