成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入探討數(shù)據(jù)倉庫緩慢變化維的解決方案

數(shù)據(jù)庫 數(shù)據(jù)倉庫
維度建模的數(shù)據(jù)倉庫中,有一個(gè)概念叫Slowly Changing Dimensions,中文一般翻譯成“緩慢變化維”,經(jīng)常被簡寫為SCD。緩慢變化維的提出是因?yàn)樵诂F(xiàn)實(shí)世界中,維度的屬性并不是靜態(tài)的,它會(huì)隨著時(shí)間的流失發(fā)生緩慢的變化。這種隨時(shí)間發(fā)生變化的維度我們一般稱之為緩慢變化維,并且把處理維度表的歷史變化信息的問題稱為處理緩慢變化維的問題,有時(shí)也簡稱為處理SCD的問題。本文則是探討數(shù)據(jù)倉庫緩慢變化維的方案解決。

緩慢變化維定義 Wikipedia中的定義:

Dimension is a term in data management and data warehousing that refers to logical groupings of data such as geographical location, customer information, or product information.Slowly Changing Dimensions (SCD) are dimensions that have data that slowly changes.

大意是說數(shù)據(jù)會(huì)發(fā)生緩慢變化的維度就叫”緩慢變化維”。

舉個(gè)例子就清楚了:

在一個(gè)零售業(yè)數(shù)據(jù)倉庫中,事實(shí)表保存著各銷售人員的銷售記錄,某天一個(gè)銷售人員從北京分公司調(diào)到上海分公司了,那么如何來保存這個(gè)變化呢?也就是說銷售人員維度要怎么恰當(dāng)?shù)奶幚磉@一變化。先來回答一個(gè)問題,為什么要處理,或保存這一變化?如果我們要統(tǒng)計(jì)北京地區(qū)或上海地區(qū)的總銷售情況的時(shí)候,這個(gè)銷售人員的銷售記錄應(yīng)該算在北京還是算在上海?當(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ù)倉庫中的數(shù)據(jù)。

二、保存多條記錄,并添加字段加以區(qū)分

這種情況下直接新添一條記錄,同時(shí)保留原有記錄,并用單獨(dú)的專用的字段保存區(qū)別。如:

(以下表格中Supplier_State表示上面例子中所屬區(qū)域,為描述清晰,不用代理鍵表示)

Supplier_key Supplier_Code Supplier_Name Supplier_State Disable

001 ABC Phlogistical Supply Company CA Y

002 ABC Phlogistical Supply Company IL N

或:

Supplier_key Supplier_Code Supplier_Name Supplier_State Version

001 ABC Phlogistical Supply Company CA 0

002 ABC Phlogistical Supply Company IL 1

以上兩種是添加數(shù)據(jù)版本信息或是否可用來標(biāo)識(shí)新舊數(shù)據(jù)。

下面一種則是添加記錄的生效日期和失效日期來標(biāo)識(shí)新舊數(shù)據(jù):

Supplier_key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date

001 ABC Phlogistical Supply Company CA 01-Jan-2000 21-Dec-2004

002 ABC Phlogistical Supply Company IL 22-Dec-2004

空的End_Date表示當(dāng)前版本數(shù)據(jù),或者你也可一用一個(gè)默認(rèn)的大時(shí)間 (如: 12/31/9999)來代替空值, 這樣數(shù)據(jù)還能被索引識(shí)別到.

三、不同字段保存不同值

Supplier_key Supplier_Name Original_Supplier_State Effective_Date Current_Supplier_State

001 Phlogistical Supply Company CA 22-Dec-2004 IL

這種方法用不同的字段保存變化痕跡.但是這種方法不能象第二種方法一樣保存所有變化記錄,它只能保存兩次變化記錄.適用于變化不超過兩次的維度。

四、另外建表保存歷史記錄

即另外建一個(gè)歷史表來表存變化的歷史記錄,而維度只保存當(dāng)前數(shù)據(jù)。

Supplier:

Supplier_key Supplier_Name Supplier_State

001 Phlogistical Supply Company IL

Supplier_History:

Supplier_key Supplier_Name Supplier_State Create_Date

001 Phlogistical Supply Company CA 22-Dec-2004

這種方法僅僅記錄一下變化歷史痕跡,其實(shí)做起統(tǒng)計(jì)運(yùn)算來還是不方便的。

五、混合模式

這種模式是以上幾種模式的混合體,相對而言此種方法更全面,更能應(yīng)對錯(cuò)綜復(fù)雜且易變化的用戶需求,也是較為常用的。

Row_Key Supplier_key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date
Current Indicator

1 001 ABC001 Phlogistical Supply Company CA 22-Dec-2004 15-Jan-2007 N

2 001 ABC001 Phlogistical Supply Company IL 15-Jan-2007 1-Jan-2099 Y

此中方法有以下幾條優(yōu)點(diǎn):

1. 能用簡單的過濾條件選出維度當(dāng)前的值。

2. 能較容易的關(guān)聯(lián)出歷史任意一時(shí)刻事實(shí)數(shù)據(jù)的值。

3. 如果事實(shí)表中有一些時(shí)間字段(如:Order Date, Shipping Date, Confirmation Date),那么我們很容易選擇哪一條維度數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析。

其中Row_Key和 Current Indicator字段是可有可無的,加上去更方便,畢竟維度表的數(shù)據(jù)都不大,多點(diǎn)冗余字段不占太大空間但能提高查詢效率。

這種設(shè)計(jì)模式下事實(shí)表應(yīng)以Supplier_key為外鍵,雖然這個(gè)字段不能***標(biāo)識(shí)一條維度數(shù)據(jù),從而形成了事實(shí)表與維表多對多的關(guān)系,因此在做事實(shí)和維度做關(guān)聯(lián)時(shí)應(yīng)加上時(shí)間戳字段(或Indicator字段)。

六、非常規(guī)混合模式

上面說到第五種實(shí)現(xiàn)方式有點(diǎn)弊端,那就是事實(shí)表和維表不是多對一關(guān)系,而是多對多關(guān)系,這種關(guān)系不能在建模時(shí)解決只能在報(bào)表層面,在報(bào)表運(yùn)行時(shí)解決,且在BI語意層建模時(shí)需要添加時(shí)間過濾條件,比較繁瑣。

下面這種解決方案可以解決此多對多關(guān)系,但是得修改一下事實(shí)表:

Supplier Dimension:

Version_Number Supplier_key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date

1 001 ABC001 Phlogistical Supply Company CA 22-Dec-2004 15-Jan-2007

0 001 ABC001 Phlogistical Supply Company IL 15-Jan-2007 1-Jan-2099

Fact Delivery: (為描述清晰,同樣不使用代理鍵標(biāo)識(shí)維度)

Delivery_Key Supplier_key Supplier_version_number Quantity Product Delivery_Date Order_Date

1 001 0 132 Bags 22-Dec-2006 15-Oct-2006

2 001 0 324 Chairs 15-Jan-2007 1-Jan-2007

此方案中向維表中的當(dāng)前數(shù)據(jù)版本號始終為0,即插入維度數(shù)據(jù)時(shí)先將老版本的數(shù)據(jù)的version_number改成1(遞增),然后再插入當(dāng)前數(shù)據(jù),此時(shí)才能保持當(dāng)前數(shù)據(jù)版本號始終為0。

事實(shí)表中插入數(shù)據(jù)時(shí)所有的維度數(shù)據(jù)版本號始終全部為0。

因此此方案完全可解決事實(shí)表和維表多對多關(guān)系問題,另外還有個(gè)優(yōu)點(diǎn)是能保證事實(shí)表和維表的參照完整性,而且我們在用ERwin,PowerDesigner等建模工具建模時(shí),Version_Number和Supplier_key可作為復(fù)合主鍵在兩實(shí)體間建立鏈接。

【編輯推薦】

  1. Oracle中OSFA和數(shù)據(jù)倉庫簡介
  2. 建立數(shù)據(jù)倉庫的八條基本準(zhǔn)則
  3. Sybase數(shù)據(jù)倉庫大鵬證券應(yīng)用案例
  4. 嵌入式數(shù)據(jù)庫的現(xiàn)狀和未來
  5. ETL過程原理和數(shù)據(jù)倉庫建設(shè)的優(yōu)化
  6. 探求數(shù)據(jù)倉庫關(guān)鍵環(huán)節(jié)ETL的本質(zhì)
責(zé)任編輯:楊鵬飛 來源: 數(shù)據(jù)倉庫之路
相關(guān)推薦

2024-01-26 06:42:05

Redis數(shù)據(jù)結(jié)構(gòu)

2023-01-12 17:18:06

數(shù)據(jù)庫多云

2009-12-23 16:13:00

WPF Attache

2009-01-19 15:18:00

數(shù)據(jù)倉庫Sybase數(shù)據(jù)庫

2009-12-07 16:07:03

PHP類的繼承

2010-03-31 14:58:03

云計(jì)算

2009-11-20 17:17:08

Oracle函數(shù)索引

2021-05-17 05:36:02

CSS 文字動(dòng)畫技巧

2010-11-22 14:18:32

MySQL鎖機(jī)制

2010-07-21 09:38:15

PHP緩存技術(shù)

2009-10-16 18:20:07

綜合布線系統(tǒng)

2009-12-01 16:34:21

PHP表單

2023-10-23 12:35:36

Golang追加操作

2009-12-11 11:08:31

靜態(tài)路由策略

2013-07-11 09:45:48

扁平化扁平化設(shè)計(jì)

2009-11-12 13:56:54

2017-01-03 17:57:46

Android異步精髓Handler

2009-10-16 09:17:39

屏蔽布線系統(tǒng)

2009-12-14 14:40:10

Ruby全局域變量

2012-02-28 14:43:43

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 羞羞视频在线观看网站 | 久久青草av | 国产黄色电影 | 亚洲欧美日韩在线不卡 | 国产日韩欧美在线观看 | 婷婷综合在线 | 中文字幕在线观看视频一区 | 一区二区三区精品视频 | 中文字幕日韩欧美一区二区三区 | 嫩草黄色影院 | 超碰在线观看97 | 国产精品一区二区三区在线 | 久久久亚洲 | 午夜精品91 | 精品久久久久久一区二区 | av在线天堂网 | 国产色婷婷久久99精品91 | 午夜丰满少妇一级毛片 | 91久久| www.youjizz.com日韩 | 美女国内精品自产拍在线播放 | 精品国产一区二区三区免费 | www.av在线 | 精品欧美乱码久久久久久1区2区 | 国产成人精品免费视频大全最热 | 色综合99| 午夜视频在线观看视频 | 国产精品美女久久久久久免费 | 久草网站| 午夜免费观看体验区 | 国产日韩欧美在线一区 | 911精品国产 | 亚洲成人精选 | 精品欧美一区二区在线观看视频 | 国产精品久久久久久久久久久久 | 麻豆hd| 国产精品日韩欧美一区二区三区 | www.com久久久 | 久久久久久久久久久久久9999 | 欧美日一区 | 日韩成人精品一区 |