緩慢變化維完全解決方案_第1頁(yè)
緩慢變化維完全解決方案_第2頁(yè)
緩慢變化維完全解決方案_第3頁(yè)
緩慢變化維完全解決方案_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、緩慢變化維完全解決方案目錄緩慢變化維解決方案 1參考文檔:Wikipedia 2一.新數(shù)據(jù)覆蓋舊數(shù)據(jù) 3二.保存多條記錄,并添加字段加以區(qū)分 3三.不同字段保存不同值 4四另外建表保存歷史記錄 4五混合模式 5六非常規(guī)混合模式 6參考文檔:Wikipedia 緩慢變化維定義Wikipedia中的定義:Dimension is a term in data management and data warehousing that refers to logical groupings of data such as geographical location, customer informat

2、ion, or product information.Slowly Changing Dimensions (SCD) are dimensions that have data that slowly changes.大意是說(shuō)數(shù)據(jù)會(huì)發(fā)生緩慢變化的維度就叫”緩慢變化維”。舉個(gè)例子就清楚了:在一個(gè)零售業(yè)數(shù)據(jù)倉(cāng)庫(kù)中,事實(shí)表保存著各銷售人員的銷售記錄,某天一個(gè)銷售人員從北京分公司調(diào)到上海分公司了,那么如何來(lái)保存這個(gè)變化呢?也就是說(shuō)銷售人員維度要怎么恰當(dāng)?shù)奶幚磉@一變化。先來(lái)回答一個(gè)問(wèn)題,為什么要處理,或保存這一變化?如果我們要統(tǒng)計(jì)北京地區(qū)或上海地區(qū)的總銷售情況的時(shí)候,這個(gè)銷售人員的銷售記錄應(yīng)該算在北

3、京還是算在上海?當(dāng)然是調(diào)離前的算在北京,調(diào)離后的算在上海,但是如標(biāo)記這個(gè)銷售人員所屬區(qū)域?這里就需要處理一下這個(gè)維度的數(shù)據(jù),即我們緩慢變化維需要做的事情。處理緩慢變化維一般按不同情況有以下幾種解決方案:一. 新數(shù)據(jù)覆蓋舊數(shù)據(jù)此方法必須有前提條件,即你不關(guān)心這個(gè)數(shù)劇的變化。例如,某個(gè)銷售人員的英文名改了,如果你不關(guān)心員工的英文名有什么變化則可直接覆蓋(修改)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)。二. 保存多條記錄,并添加字段加以區(qū)分這種情況下直接新添一條記錄,同時(shí)保留原有記錄,并用單獨(dú)的專用的字段保存區(qū)別。如:(以下表格中Supplier_State表示上面例子中所屬區(qū)域,為描述清晰,不用代理鍵表示)Supplie

4、r_key Supplier_Code Supplier_Name Supplier_State Disable001 ABC Phlogistical Supply Company CA Y002 ABC Phlogistical Supply Company IL N或:Supplier_key Supplier_Code Supplier_Name Supplier_State Version001 ABC Phlogistical Supply Company CA 0002 ABC Phlogistical Supply Company IL 1以上兩種是添加數(shù)據(jù)版本信息或是否可用來(lái)

5、標(biāo)識(shí)新舊數(shù)據(jù)。下面一種則是添加記錄的生效日期和失效日期來(lái)標(biāo)識(shí)新舊數(shù)據(jù):Supplier_key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date001 ABC Phlogistical Supply Company CA 01-Jan-2000 21-Dec-2004002 ABC Phlogistical Supply Company IL 22-Dec-2004 空的End_Date表示當(dāng)前版本數(shù)據(jù),或者你也可一用一個(gè)默認(rèn)的大時(shí)間 (如: 12/31/9999)來(lái)代替空值, 這樣數(shù)據(jù)還能被索引識(shí)別到.三. 不同字段

6、保存不同值Supplier_key Supplier_Name Original_Supplier_State Effective_Date Current_Supplier_State001 Phlogistical Supply Company CA 22-Dec-2004 IL這種方法用不同的字段保存變化痕跡.但是這種方法不能象第二種方法一樣保存所有變化記錄,它只能保存兩次變化記錄.適用于變化不超過(guò)兩次的維度。四. 另外建表保存歷史記錄即另外建一個(gè)歷史表來(lái)表存變化的歷史記錄,而維度只保存當(dāng)前數(shù)據(jù)。Supplier:Supplier_key Supplier_Name Supplier_S

7、tate001 Phlogistical Supply Company ILSupplier_History:Supplier_key Supplier_Name Supplier_State Create_Date001 Phlogistical Supply Company CA 22-Dec-2004這種方法僅僅記錄一下變化歷史痕跡,其實(shí)做起統(tǒng)計(jì)運(yùn)算來(lái)還是不方便的。五. 混合模式這種模式是以上幾種模式的混合體,相對(duì)而言此種方法更全面,更能應(yīng)對(duì)錯(cuò)綜復(fù)雜且易變化的用戶需求,也是較為常用的。Row_Key Supplier_key Supplier_Code Supplier_Name Sup

8、plier_State Start_Date End_Date Current Indicator1 001 ABC001 Phlogistical Supply Company CA 22-Dec-2004 15-Jan-2007 N2 001 ABC001 Phlogistical Supply Company IL 15-Jan-2007 1-Jan-2099 Y此中方法有以下幾條優(yōu)點(diǎn):1. 能用簡(jiǎn)單的過(guò)濾條件選出維度當(dāng)前的值。2. 能較容易的關(guān)聯(lián)出歷史任意一時(shí)刻事實(shí)數(shù)據(jù)的值。3. 如果事實(shí)表中有一些時(shí)間字段(如:Order Date, Shipping Date, Confirmati

9、on Date),那么我們很容易選擇哪一條維度數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析。其中Row_Key和 Current Indicator字段是可有可無(wú)的,加上去更方便,畢竟維度表的數(shù)據(jù)都不大,多點(diǎn)冗余字段不占太大空間但能提高查詢效率。這種設(shè)計(jì)模式下事實(shí)表應(yīng)以Supplier_key為外鍵,雖然這個(gè)字段不能唯一標(biāo)識(shí)一條維度數(shù)據(jù),從而形成了事實(shí)表與維表多對(duì)多的關(guān)系,因此在做事實(shí)和維度做關(guān)聯(lián)時(shí)應(yīng)加上時(shí)間戳字段(或Indicator字段)。六. 非常規(guī)混合模式上面說(shuō)到第五種實(shí)現(xiàn)方式有點(diǎn)弊端,那就是事實(shí)表和維表不是多對(duì)一關(guān)系,而是多對(duì)多關(guān)系,這種關(guān)系不能在建模時(shí)解決只能在報(bào)表層面,在報(bào)表運(yùn)行時(shí)解決,且在BI語(yǔ)意層建模時(shí)

10、需要添加時(shí)間過(guò)濾條件,比較繁瑣。下面這種解決方案可以解決此多對(duì)多關(guān)系,但是得修改一下事實(shí)表:Supplier Dimension:Version_Number Supplier_key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date1 001 ABC001 Phlogistical Supply Company CA 22-Dec-2004 15-Jan-20070 001 ABC001 Phlogistical Supply Company IL 15-Jan-2007 1-Jan-2099Fact Delivery: (為描述清晰,同樣不使用代理鍵標(biāo)識(shí)維度)Delivery_Key Supplier_key Supplier_version_number Quantity Product Delivery_Date Order_Date1 001 0 132 Bags 22-Dec-2006 15-Oct-20062 001 0 324 Chairs 15-Jan-2007 1-Jan-2007此方案中向維表中的當(dāng)前數(shù)據(jù)版本號(hào)始終為0,即插入維度數(shù)據(jù)時(shí)先將老版本的數(shù)據(jù)的version_number改成1(遞增),然后再插入當(dāng)前數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論