
維度建模的基本概念及過程
與流行的說法不同,RalphKimball本人并沒有定義“維度”和“事實(shí)”這樣的術(shù)語。術(shù)語“維度”與“事實(shí)”,最初是20世紀(jì)60年代在一個(gè)由GeneralMills與Dartmouth大學(xué)主持的聯(lián)合研究計(jì)劃中提出的。70年代,ACNielsen和IRI都一致地使用這些術(shù)語描述他們的數(shù)據(jù)發(fā)布應(yīng)用,用現(xiàn)在更為準(zhǔn)確的話來說,就是關(guān)于零售數(shù)據(jù)的維度數(shù)據(jù)集市(DataMart)。在簡明性成為生活方式的潮流之前的長時(shí)期內(nèi),早期的數(shù)據(jù)庫壟斷組織們致力于將這些概念用來簡化用做分析的信息。他們意識(shí)到,除非數(shù)據(jù)庫做得簡單易用,否則沒有人會(huì)用它。因此,在將可理解性和性能作為最高目標(biāo)的驅(qū)動(dòng)下,產(chǎn)生了維度模型的構(gòu)造思想。
1.1 事實(shí)表
事實(shí)表是維度模型的基本表,其中如圖1.1所示存放有大量的業(yè)務(wù)性能度量值。力圖將從一個(gè)業(yè)務(wù)處理過程得到的度量值數(shù)據(jù)存放在單個(gè)數(shù)據(jù)集市。由于度量值數(shù)據(jù)壓倒性地成為任何數(shù)據(jù)集市的最大部分,因此應(yīng)該避免在企業(yè)范圍內(nèi)的不同地方存儲(chǔ)其拷貝。用術(shù)語“事實(shí)”代表一個(gè)業(yè)務(wù)度量值??梢栽O(shè)想一個(gè)作為例子的情形:查詢某個(gè)客戶在某個(gè)機(jī)構(gòu)下某個(gè)產(chǎn)品合約賬戶的某個(gè)幣種的某個(gè)時(shí)點(diǎn)余額,在各維度值(客戶、產(chǎn)品合約、賬戶、機(jī)構(gòu)、幣種、日期)的交點(diǎn)處就可以得到一個(gè)度量值。維度值的列表給出了事實(shí)表的粒度定義,并確定出度量值的取值范圍是什么。
圖 1.1 示例事實(shí)表
事實(shí)表的一行對(duì)應(yīng)一個(gè)度量值,一個(gè)度量值就是事實(shí)表的一行;事實(shí)表的所有度量值必須具有相同的粒度。最有用的事實(shí)是諸如賬戶余額這樣的數(shù)字類型為可做加法的事實(shí)??杉有允侵陵P(guān)重要的,因?yàn)?a href='/map/shujucangku/' style='color:#000;font-size:inherit;'>數(shù)據(jù)倉庫應(yīng)用不僅僅只檢索事實(shí)表的單行數(shù)據(jù)。相反,往往一次性帶回?cái)?shù)百、數(shù)千乃至數(shù)百萬行的事實(shí),并且處理這么多行的最有用的事就是將它們加起來。
當(dāng)然,有些事實(shí)是半加性質(zhì)的,而另外一些是非加性質(zhì)的。半加性事實(shí)僅僅沿某些維度相加,例如銷售占比,周期余額;而非加性事實(shí)根本就不能相加,例如狀態(tài)。對(duì)于非加性事實(shí),如果希望對(duì)行進(jìn)行總結(jié)就不得不使用計(jì)數(shù)或平均數(shù),或者降為一次一行地打印出全部事實(shí)行。
度量事實(shí)在理論上講可以是文本形式的,不過這種情況很少出現(xiàn)。在大多數(shù)情況下,文本度量值可以是某種事物的描述并取自某個(gè)離散列表的值。設(shè)計(jì)者應(yīng)該盡各種努力將文本度量值轉(zhuǎn)換成維度,原因在于維度能夠與其他文本維度屬性更有效地關(guān)聯(lián)起來,并且消耗少得多的空間。不能將冗余的文本信息存放在事實(shí)表內(nèi)。除非文本對(duì)于事實(shí)表的每行來說都是唯一的,否則它應(yīng)該歸屬到維度表中。真正的文本事實(shí)在數(shù)據(jù)倉庫中是很少出現(xiàn)的,文本事實(shí)具有像自由文本內(nèi)容那樣的不可預(yù)見性內(nèi)容,這幾乎是不可能進(jìn)行分析的。
所有事實(shí)表有兩個(gè)或者兩個(gè)以上的外關(guān)鍵字(如圖1.1中FK符號(hào)標(biāo)記的部分),外關(guān)鍵字用于連接到維度表的主關(guān)鍵字。例如,事實(shí)表中的“產(chǎn)品合約關(guān)鍵字”總是匹配產(chǎn)品合約維度表的一個(gè)特定“產(chǎn)品合約關(guān)鍵字”。如果事實(shí)表中的所有關(guān)鍵字都能分別與對(duì)應(yīng)維度表中的主關(guān)鍵字正確匹配,就可以說這些表滿足引用完整性的要求。事實(shí)表要通過與之相連的維度表進(jìn)行存取。
事實(shí)表根據(jù)粒度的角色劃分不同,可分為事務(wù)事實(shí)表、周期快照事實(shí)表、累積快照事實(shí)表。事務(wù)事實(shí)表用于承載事務(wù)數(shù)據(jù),通常粒度比較低,例如產(chǎn)品交易事務(wù)事實(shí)、ATM交易事務(wù)事實(shí);周期快照事實(shí)表用來記錄有規(guī)律的、固定時(shí)間間隔的業(yè)務(wù)累計(jì)數(shù)據(jù),通常粒度比較高,例如賬戶月平均余額事實(shí)表;累積快照事實(shí)表用來記錄具有時(shí)間跨度的業(yè)務(wù)處理過程的整個(gè)過程的信息,通常這類事實(shí)表比較少見。這里需要值得注意的是,在事實(shí)表的設(shè)計(jì)時(shí),一定要注意一個(gè)事實(shí)表只能有一個(gè)粒度,不能將不同粒度的事實(shí)建立在同一張事實(shí)表中。
1.2 維度表
維度表是事實(shí)表不可分割的部分。如圖1.2所示,維度表包含有業(yè)務(wù)的文字描述。在一個(gè)設(shè)計(jì)合理的維度模型中,維度表有許多列或者屬性,這些屬性給出對(duì)維度表的行所進(jìn)行的描述。應(yīng)該盡可能多地包括一些富有意義的文字性描述。對(duì)于維度表來說,包含50到100個(gè)屬性的情形并不少見。維度表傾向于將行數(shù)做得相當(dāng)少(通常少于100萬行),而將列數(shù)做得特別大。每個(gè)維度用單一的主關(guān)鍵字(如圖1.2中PK符號(hào)標(biāo)記的部分)進(jìn)行定義,主關(guān)鍵字是確保同一與之相連的任何事實(shí)表之間存在引用完整性的基礎(chǔ)。
圖1.2 示例維度表
維度屬性是查詢約束條件、成組與報(bào)表標(biāo)簽生成的基本來源。在查詢與報(bào)表請(qǐng)求中,屬性用by這個(gè)單詞進(jìn)行標(biāo)識(shí)。例如,一個(gè)用戶表示要按“產(chǎn)品合約編號(hào)”與“機(jī)構(gòu)編號(hào)”來查看賬戶余額,那么“產(chǎn)品合約編號(hào)”與“機(jī)構(gòu)編號(hào)”就必須是可用的維度屬性。
維度表屬性在數(shù)據(jù)倉庫中承擔(dān)著一個(gè)重大的角色。由于它們實(shí)際上是所有令人感興趣的約束條件與報(bào)表標(biāo)簽的來源,因此成為使數(shù)據(jù)倉庫變得易學(xué)易用的關(guān)鍵。在許多方面,數(shù)據(jù)倉庫不過是維度屬性的體現(xiàn)而已。數(shù)據(jù)倉庫的能力直接與維度屬性的質(zhì)量和深度成正比。在提供詳細(xì)的業(yè)務(wù)用語屬性方面所花的時(shí)間越多,數(shù)據(jù)倉庫就越好。在屬性列值的給定方面所花的時(shí)間越多,數(shù)據(jù)倉庫就越好。在保證屬性列值的質(zhì)量方面所花的時(shí)間越多,數(shù)據(jù)倉庫就越好。
維度表是進(jìn)入事實(shí)表的入口。豐富的維度屬性給出了豐富的分析切割能力。維度給用戶提供了使用數(shù)據(jù)倉庫的接口。最好的屬性是文本的和離散的。屬性應(yīng)該是真正的文字而不應(yīng)是一些編碼簡寫符號(hào)。應(yīng)該通過用更為詳細(xì)的文本屬性取代編碼,力求最大限度地減少編碼在維度表中的使用。有時(shí)候在設(shè)計(jì)數(shù)據(jù)庫時(shí)并不能很確定,從數(shù)據(jù)源析取出的一個(gè)數(shù)字型數(shù)據(jù)字段到底應(yīng)該作為事實(shí)還是維度屬性看待。通??梢赃@樣來做出決定,即看字段是一個(gè)含有許多的取值并參與運(yùn)算的度量值(當(dāng)事實(shí)看待),還是一個(gè)多少變化不多并參與作為約束條件的離散取值的描述(當(dāng)維屬性看待)。
在維度類型中,有一種重要的維度稱作為退化維度(DegenerateDimension),這種維度指的是直接把一些簡單的維度放在事實(shí)表中而不專門去做一個(gè)維度表。退化維度是維度建模領(lǐng)域中的一個(gè)非常重要的概念,它對(duì)理解維度建模有著非常重要的作用,退化維度經(jīng)常會(huì)和其他一些維度一起組合成事實(shí)表的主鍵。退化維度在分析中可以用來做分組使用。
在理解了事實(shí)和維度表之后,現(xiàn)在就考慮將兩個(gè)組塊一起融合到維度模型中去的問題。如圖1.3所示,由數(shù)字型度量值組成的事實(shí)表連接到一組填滿描述屬性的維度表——這個(gè)星型特征結(jié)構(gòu)通常被叫做星型連接方案。該術(shù)語可以追溯到最早的關(guān)系數(shù)據(jù)庫時(shí)期。
圖1.3維度模型中的事實(shí)與維度表
關(guān)于其中用到的維度方案,應(yīng)該注意的第一件事就是其簡明性與對(duì)稱性。很顯然,業(yè)務(wù)用戶會(huì)因?yàn)閿?shù)據(jù)容易理解和瀏覽而從簡明性方面受益。
維度模型的簡明性也帶來了性能上的好處。數(shù)據(jù)庫優(yōu)化器可以更高效率地處理這些連接關(guān)系較少的簡單方案。數(shù)據(jù)庫引擎可以采取的非常強(qiáng)勁的做法是,首先集中對(duì)建立了充足的索引的維度表進(jìn)行約束(過濾)處理,然后用滿足用戶約束條件的維度表關(guān)鍵字的笛卡爾乘積一次性處理全部的事實(shí)表。令人驚奇的是,利用這種方法只需使用一次事實(shí)表的索引,就可以算出與事實(shí)表之間的任意n種連接結(jié)果。
最后,維度模型能夠很自然地進(jìn)行擴(kuò)展以適應(yīng)變化的需要。維度模型的可預(yù)定框架能夠經(jīng)受住無法預(yù)見的用戶行為變化所帶來的考驗(yàn)。每個(gè)維度都是平等的,所有維度都是進(jìn)入事實(shí)表的對(duì)等入口。這個(gè)邏輯模型不存在內(nèi)置的關(guān)于某種期望的查詢形式方面的偏向,不存在這個(gè)月要問的業(yè)務(wù)問題相對(duì)于下個(gè)月來說具有優(yōu)先方面的考慮。沒有誰會(huì)希望,如果業(yè)務(wù)用戶采用新的方式進(jìn)行業(yè)務(wù)分析,就要調(diào)整設(shè)計(jì)方案這樣的事情發(fā)生。
最佳粒度或者原子數(shù)據(jù)具有最佳的維度。被聚合起來的原子數(shù)據(jù)是最有表現(xiàn)力的數(shù)據(jù)。原子數(shù)據(jù)應(yīng)該成為每個(gè)事實(shí)表設(shè)計(jì)的基礎(chǔ),從而經(jīng)受住業(yè)務(wù)用戶無法預(yù)見的查詢所引起的特別攻擊。對(duì)于維度模型來說,完全可以向方案中加入新的維度,只要其值對(duì)于每個(gè)現(xiàn)有的事實(shí)行存在唯一性定義就行。同樣,可以向事實(shí)表加入新的不曾預(yù)料到的事實(shí),只要其詳細(xì)程度與現(xiàn)有事實(shí)表處在一致的水平面上就可以了??梢杂眯碌牟辉A(yù)料到的屬性補(bǔ)充先前存在的維度表,也可以從某個(gè)前向時(shí)間點(diǎn)的角度在一個(gè)更低的粒度層面上對(duì)現(xiàn)存維度行進(jìn)行分解。在每種情況下,可以簡單地在表中加入新的數(shù)據(jù)行或者執(zhí)行一條SQL ALTERTABLE命令來對(duì)現(xiàn)存表格進(jìn)行適當(dāng)?shù)男薷?。?shù)據(jù)用不著重新加載,所有現(xiàn)存的數(shù)據(jù)存取應(yīng)用可以繼續(xù)運(yùn)行而不會(huì)產(chǎn)生不同的結(jié)果。
2 維度建模設(shè)計(jì)過程
本文按照?qǐng)D2.1具有一定順序的四個(gè)步驟的方式進(jìn)行維度數(shù)據(jù)庫的設(shè)計(jì)。
圖2.1四步驟維度設(shè)計(jì)過程
2.1 第一步 選取業(yè)務(wù)處理
業(yè)務(wù)處理過程是機(jī)構(gòu)中進(jìn)行的一般都由源系統(tǒng)提供支持的自然業(yè)務(wù)活動(dòng)。聽取用戶的意見是選取業(yè)務(wù)處理過程的效率最高的方式。在選取業(yè)務(wù)階段,數(shù)據(jù)模型設(shè)計(jì)者需要具有全局和發(fā)展的視角,應(yīng)該理解整體業(yè)務(wù)流程的基礎(chǔ)上,從全局角度選取業(yè)務(wù)處理。
要記住的重要一點(diǎn)是,這里談到的業(yè)務(wù)處理過程并不是指業(yè)務(wù)部門或者職能。通過將注意力集中放在業(yè)務(wù)處理過程方面,而不是業(yè)務(wù)部門方面,就能在機(jī)構(gòu)范圍內(nèi)更加經(jīng)濟(jì)地提交一致的數(shù)據(jù)。如果建立的維度模型是同部門捆綁在一起的,就無法避免出現(xiàn)具有不同標(biāo)記與術(shù)語的數(shù)據(jù)拷貝的可能性。多重?cái)?shù)據(jù)流向單獨(dú)的維度模型,會(huì)使用戶在應(yīng)付不一致性的問題方面顯得很脆弱。確保一致性的最佳辦法是對(duì)數(shù)據(jù)進(jìn)行一次性地發(fā)布。單一的發(fā)布過程還能減少ETL的開發(fā)量,以及后續(xù)數(shù)據(jù)管理與磁盤存儲(chǔ)方面的負(fù)擔(dān)。
2.2 第二步 定義粒度
粒度定義意味著對(duì)各事實(shí)表行實(shí)際代表的內(nèi)容給出明確的說明。粒度傳遞了同事實(shí)表度量值相聯(lián)系的細(xì)節(jié)所達(dá)到的程度方面的信息。它給出了后面這個(gè)問題的答案:“如何描述事實(shí)表的單個(gè)行?”。
粒度定義是不容輕視的至關(guān)重要的步驟。在定義粒度時(shí)應(yīng)優(yōu)先考慮為業(yè)務(wù)處理獲取最有原子性的信息而開發(fā)維度模型。原子型數(shù)據(jù)是所收集的最詳細(xì)的信息,這樣的數(shù)據(jù)不能再做更進(jìn)一步的細(xì)分。通過在最低層面上裝配數(shù)據(jù),大多原子粒度在具有多個(gè)前端的應(yīng)用場合顯示出其價(jià)值所在。原子型數(shù)據(jù)是高度維結(jié)構(gòu)化的。事實(shí)度量值越細(xì)微并具有原子性,就越能夠確切地知道更多的事情,所有那些確切知道的事情都轉(zhuǎn)換為維度。在這點(diǎn)上,原子型數(shù)據(jù)可以說是維度方法的一個(gè)極佳匹配。
原子型數(shù)據(jù)可為分析方面提供最大限度的靈活性,因?yàn)樗梢越邮苋魏慰赡苄问降募s束,并可以以任何可能的形式出現(xiàn)。維度模型的細(xì)節(jié)性數(shù)據(jù)是穩(wěn)如泰山的,并隨時(shí)準(zhǔn)備接受業(yè)務(wù)用戶的特殊攻擊。
當(dāng)然,可以總是給業(yè)務(wù)處理定義較高層面的粒度,這種粒度表示最具有原子性的數(shù)據(jù)的聚集。不過,只要選取較高層面的粒度,就意味著將自己限制到更少或者細(xì)節(jié)性可能更小的維度上了。具有較少粒度性的模型容易直接遭到深入到細(xì)節(jié)內(nèi)容的不可預(yù)見的用戶請(qǐng)求的攻擊。聚集概要性數(shù)據(jù)作為調(diào)整性能的一種手段起著非常重要的作用,但它絕對(duì)不能作為用戶存取最低層面的細(xì)節(jié)內(nèi)容的替代品。遺憾的是,有些權(quán)威人士在這方面一直顯得含糊不清。他們宣稱維度模型只適合于總結(jié)性數(shù)據(jù),并批評(píng)那些認(rèn)為維度建模方法可以滿足預(yù)測業(yè)務(wù)需求的看法。這樣的誤解會(huì)隨著細(xì)節(jié)性的原子型數(shù)據(jù)在維度模型中的出現(xiàn)而慢慢地消逝。
2.3 第三步 選定維度
維度所引出的問題是,“業(yè)務(wù)人員將如何描述從業(yè)務(wù)處理過程得到的數(shù)據(jù)?”應(yīng)該用一組在每個(gè)度量上下文中取單一值而代表了所有可能情況的豐富描述,將事實(shí)表裝扮起來。如果對(duì)粒度方面的內(nèi)容很清楚,那么維度的確定一般是非常容易的。通過維度的選定,可以列出那些使每個(gè)維度表豐滿起來的離散的文本屬性。常見維度的例子包括日期、產(chǎn)品、客戶、賬戶和機(jī)構(gòu)等。
2.4 第四步 確定事實(shí)
設(shè)計(jì)過程的第四步同時(shí)也是最后一步,在于仔細(xì)確定哪些事實(shí)要在事實(shí)表中出現(xiàn)。事實(shí)的確定可以通過回答“要對(duì)什么內(nèi)容進(jìn)行評(píng)測”這個(gè)問題來進(jìn)行。業(yè)務(wù)用戶在這些業(yè)務(wù)處理性能度量值的分析方面具有濃厚的興趣。設(shè)計(jì)中所有供選取的信息必須滿足在第2步中定義的粒度要求。明顯屬于不同粒度的事實(shí)必須放在單獨(dú)的事實(shí)表中。通??梢詮囊韵氯齻€(gè)角度來建立事實(shí)表[2]:
1、針對(duì)某個(gè)特定的行為動(dòng)作,建立一個(gè)以行為活動(dòng)最小單元為粒度的事實(shí)表。最小活動(dòng)單元的定義,依賴于分析業(yè)務(wù)需求。比如用戶的一次網(wǎng)頁點(diǎn)擊行為、一次網(wǎng)站登錄行為,一次電話通話記錄。這種事實(shí)表,主要用于從多個(gè)維度統(tǒng)計(jì),行為的發(fā)生情況,主要用于業(yè)務(wù)分布情況,績效考核比較等方面的數(shù)據(jù)分析。
2、針對(duì)某個(gè)實(shí)體對(duì)象在當(dāng)前時(shí)間上的狀況。我們通過對(duì)這個(gè)實(shí)體對(duì)象在不同階段存儲(chǔ)它的快照,比如賬戶的余額、用戶擁有的產(chǎn)品數(shù)等,通過這種可以統(tǒng)計(jì)實(shí)體對(duì)象在不同的生命周期中的關(guān)鍵數(shù)量指標(biāo)。
3、針對(duì)業(yè)務(wù)活動(dòng)中的重要分析和跟蹤對(duì)象,統(tǒng)計(jì)在整個(gè)企業(yè)不同業(yè)務(wù)活動(dòng)中的發(fā)生情況。比如會(huì)員,可以執(zhí)行或參與多個(gè)特定的行為活動(dòng)。這種事實(shí)表是以上兩種事實(shí)表的一個(gè)總結(jié)和歸納。它主要用于針對(duì)我們業(yè)務(wù)中的活動(dòng)對(duì)象進(jìn)行跟蹤和考察。
3 數(shù)據(jù)倉庫總線結(jié)構(gòu)
業(yè)務(wù)與IT機(jī)構(gòu)一般都對(duì)不同業(yè)務(wù)處理過程的集成很感興趣。低級(jí)別業(yè)務(wù)分析師在這方面的愿望可能并不是很急迫,但那些處于較高管理階層的人員非常清楚,在跨業(yè)務(wù)的范圍內(nèi)進(jìn)行數(shù)據(jù)的查看對(duì)于提高評(píng)估性能是很必要的。眾多的數(shù)據(jù)倉庫項(xiàng)目將注意力放在從終端到終端的視角,更好地理解顧客關(guān)系的管理需求方面了。如圖3.1所示,在某大型國有銀行中,在業(yè)務(wù)價(jià)值鏈的產(chǎn)品運(yùn)營中,包含許多相關(guān)的業(yè)務(wù)處理,如營銷支持、產(chǎn)品運(yùn)營、風(fēng)險(xiǎn)管控、財(cái)務(wù)績效等諸多業(yè)務(wù)處理。
圖3.1業(yè)務(wù)價(jià)值鏈
如果針對(duì)這些業(yè)務(wù)處理分別進(jìn)行維度建模、建立獨(dú)立數(shù)據(jù)集市,數(shù)據(jù)集市之間沒有共享公共的維度,那么就會(huì)出現(xiàn)問題,數(shù)據(jù)集市就會(huì)變成孤立的集市,不能組合成數(shù)據(jù)倉庫,而一致性維度的提出正式為了解決這個(gè)問題。圖3.2給出了這種維度共享情形的邏輯表示形式.
圖3.2業(yè)務(wù)處理之間的維度共享
共享公共的維度對(duì)于設(shè)計(jì)可以進(jìn)行集成的數(shù)據(jù)集市來說,具有絕對(duì)的決定性作用。這樣做使得來自不同處理的性能度量值可以被組合到單個(gè)報(bào)表中去。具體的實(shí)現(xiàn)過程是,使用多通路的SQL單獨(dú)查詢各個(gè)集市,然后基于共同的維度屬性對(duì)查詢結(jié)果施加外連接。這個(gè)通常稱作交叉探查(DrillAcross)的連接,在維度表屬性具有同一性的情況下是很直接的。
將一組分布在各處的相關(guān)業(yè)務(wù)處理成一個(gè)綜合的數(shù)據(jù)倉庫來說,總線結(jié)構(gòu)是最基本的要素。
3.1 數(shù)據(jù)倉庫總線結(jié)構(gòu)
很顯然,想一個(gè)步驟就建成企業(yè)數(shù)據(jù)倉庫太令人望而生畏了,然而,將它分成孤立的片段進(jìn)行建造又會(huì)挫敗一致性這個(gè)壓倒一切的目標(biāo)。要使數(shù)據(jù)倉庫能夠長期地成功運(yùn)轉(zhuǎn),很需要有一種在體系結(jié)構(gòu)上可以按增量方式建造企業(yè)數(shù)據(jù)倉庫的方法。這里提倡使用的一種方法就是數(shù)據(jù)倉庫總線結(jié)構(gòu)。
通過為數(shù)據(jù)倉庫環(huán)境定義標(biāo)準(zhǔn)的總線接口,獨(dú)立的數(shù)據(jù)集市就可以由不同的小組在不同的時(shí)間進(jìn)行實(shí)現(xiàn)。只要遵循這個(gè)標(biāo)準(zhǔn),獨(dú)立的數(shù)據(jù)集市就可以插入到一起并有效地共存。所有業(yè)務(wù)處理將創(chuàng)建一個(gè)維度模型系列,這些模型共享一組綜合的具有一致性的共用維度,如圖3.3。
圖3.3 數(shù)據(jù)倉庫總線結(jié)構(gòu)
數(shù)據(jù)倉庫總線結(jié)構(gòu)提供了一種可用于分解企業(yè)數(shù)據(jù)倉庫規(guī)劃任務(wù)的合理方法。在體系結(jié)構(gòu)確立階段的較短時(shí)間內(nèi),開發(fā)團(tuán)隊(duì)設(shè)計(jì)出一整套在企業(yè)范圍內(nèi)具有統(tǒng)一解釋的標(biāo)準(zhǔn)化維度與事實(shí)。這樣,數(shù)據(jù)體系結(jié)構(gòu)的框架就建立起來了。然后,開發(fā)團(tuán)隊(duì)可以全力以赴去實(shí)現(xiàn)嚴(yán)格依照體系結(jié)構(gòu)進(jìn)行迭代開發(fā)的獨(dú)立數(shù)據(jù)集市。隨著獨(dú)立數(shù)據(jù)集市的投入使用,它們像積木塊一樣搭在了一起。在某種意義上講,需要存在足夠的數(shù)據(jù)集市才可能為集成的企業(yè)數(shù)據(jù)倉庫帶來美好的前景。
總線結(jié)構(gòu)使數(shù)據(jù)倉庫管理人員獲取兩個(gè)方面的優(yōu)勢。一方面,他們有了指導(dǎo)總體設(shè)計(jì)的體系框架,并且將問題分成了可以根據(jù)具體時(shí)限加以實(shí)施的以字節(jié)計(jì)量的數(shù)據(jù)集市塊。另一方面,各數(shù)據(jù)集市開發(fā)團(tuán)隊(duì)遵照體系指南,可以相對(duì)獨(dú)立地異步地開展工作。
3.2 一致性維度
在理解了總線結(jié)構(gòu)的重要性以后,現(xiàn)在可以進(jìn)一步開發(fā)發(fā)揮數(shù)據(jù)倉庫總線奠基石作用的一致性標(biāo)準(zhǔn)維度了。一致性維度要么是同一的,要么是具有最佳粒度性與細(xì)節(jié)性的維度在嚴(yán)格數(shù)學(xué)意義上的子集。例如,如果建立月維度話,月維度的各種描述必須與日期維度中的完全一致,最常用的做法就是在日期維度上建立視圖生成月維度。這樣月維度就可以是日期維度的子集,在后續(xù)鉆取等操作時(shí)可以保持一致。
一致的維度具有一致的維度關(guān)鍵字、一致的屬性列名字、一致的屬性定義以及一致的屬性值(將轉(zhuǎn)化成一致的報(bào)表標(biāo)簽與分組標(biāo)識(shí))。如果屬性標(biāo)簽的標(biāo)記不同或者包含不同的值,維度表就不是一致的(不被處理成一致的)。如果客戶或者產(chǎn)品維度是按非一致的方式進(jìn)行配置的,那么,要么分散的數(shù)據(jù)集市不能在一起使用,要么更為嚴(yán)重的是,試圖將它們用在一起將產(chǎn)生無效的結(jié)果。
一致的維度以幾種不同的樣式出現(xiàn)。在最基本的層次上,一致的維度意味著與同它們相連接的每種可能的事實(shí)表具有完全相同的內(nèi)容。連接到產(chǎn)品服務(wù)簽約事實(shí)上的日期維度表與連接到產(chǎn)品服務(wù)賬戶余額事實(shí)上的日期維度表是同一的。實(shí)際上,一致的維度在數(shù)據(jù)庫范圍內(nèi)可能就是相同的物理表。不過,基于對(duì)配有多種數(shù)據(jù)庫平臺(tái)的數(shù)據(jù)倉庫技術(shù)環(huán)境的典型復(fù)雜性的考慮,維度更有可能同時(shí)在每個(gè)數(shù)據(jù)集市都存在拷貝。在其中任何一種情況下,兩個(gè)數(shù)據(jù)集市的日期維度都將具有相同數(shù)目的行、相同的關(guān)鍵字值、相同的屬性標(biāo)簽、相同的屬性定義與相同的屬性值等。同樣,也存在一致的數(shù)據(jù)內(nèi)容、數(shù)據(jù)解釋與用戶展示。
3.3 一致性事實(shí)
到現(xiàn)在為止,我們已經(jīng)討論了建立一致性維度以將數(shù)據(jù)集市維系在一起的中心任務(wù)。這涵蓋了數(shù)據(jù)倉庫遷移開發(fā)所要付出的大量工作努力,余下的努力要投入到建立一致性事實(shí)定義上。
通常,像利潤、經(jīng)濟(jì)資本、產(chǎn)品覆蓋度、客戶滿意度以及其他關(guān)鍵性指標(biāo)(KPI)需要在企業(yè)級(jí)共享的度量指標(biāo),都是必須保持一致性的事實(shí)。一般地說,事實(shí)表數(shù)據(jù)并不在各個(gè)數(shù)據(jù)集市之間明確地進(jìn)行拷貝。不過,如果事實(shí)確實(shí)存在于多個(gè)位置,那么支撐這些事實(shí)的定義與方程(公式)都必須是相同的,假如將它們當(dāng)作同種事物看待的話,如果這些事實(shí)具有相同的標(biāo)記,那么需要在相同維度環(huán)境下對(duì)它們進(jìn)行定義,同時(shí)使其在各個(gè)數(shù)據(jù)集市之間具有相同的度量單位。必須在數(shù)據(jù)命名實(shí)踐中接受規(guī)范的約束,如果不可能做到使事實(shí)完全一致,那么應(yīng)該對(duì)不同的解釋給出不同的名稱。這樣可以減少計(jì)算中使用不兼容的事實(shí)的可能性。
4 總結(jié)
本文作為維度建模綜述性文章,基于維度建模理論知識(shí)并結(jié)合某企業(yè)的維度建模實(shí)踐介紹了事實(shí)表、維度表、數(shù)據(jù)倉庫總線結(jié)構(gòu)、一致性維度、一致性事實(shí)等維度模型中的基本概念以及維度建模的設(shè)計(jì)過程。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03