2014-02-06 33 views
2

在數據倉庫中,我們有一個緩慢變化的概念。我只是想知道爲什麼沒有'緩慢/快速變化的FACTs'的行話,因爲可以使用相同的Type1,Type 2度量來跟蹤FACT表中的變化。數據倉庫中是否存在緩慢變化的FACT概念

+1

我不'噸認爲這個概念將具有意義。 事實總是在變化,是某種測量的結果,某種結果。我們會自動跟蹤事實的變化。維度並非如此,(粗略地說)是標識事實的標籤。因此,標籤含義的變化可能是一個問題,所以我們可能需要跟蹤這些「變化的維度」。 – momobo

+0

@momobo糾正如何?說更新的訂單數量和類似的 – Ronnis

+0

糾正可以處理更新事實,當它是一個簡單的錯誤更正(可能是性能沉重)。或者添加一個糾正因子。保留修正歷史也是可能的(我現在看到你的觀點),但我從未做到過。我認爲另一個時間維度和糾正時間應該是要走的路。 – momobo

回答

1

按照DW神有3種類型的事實表

  • 交易的:你有暗淡的參考基本測量。測量不捲起或彙總,大量的DIM關係
  • 定期:在規定的時間段內彙總交易事實表的摘要。
  • 累積快照:用2+定義的時間段

從這些相關的測量,我們至少有2個選項,這將導致非常類似於慢慢改變的事實桌上的東西。這完全取決於你的源系統的設置。

選項1:事務基於源系統

如果源系統跟蹤經由一系列交易(在值+變化值等,即,初始值+變化)的變化來測量,然後每個這些交易端在交易事實中。然後由週期性事實表使用,以反映「截至時間」措施。

例如,如果您的源系統追蹤賬戶內外的資金,您可能會擁有一個交易事實表,它幾乎反映了來源資金進/出表。您還將有一個週期性事實表,每個週期(本例中爲月份)都會更新以反映該期間帳戶的總價值。

週期性事實表是您的慢速變化事實表。

 
Source    DW_Tansaction_Fact  DW_Periodic_Fact 
--------------- -> ------------------- -> -------------------- 
Acnt1 Jan +10$  Acnt1 Jan +10$   Acnt1 Jan 10$ 
Acnt1 Feb -1 $  Acnt1 Feb -1 $   Acnt1 Feb 9$ 
Acnt1 Apr +2 $  Acnt1 Apr +2 $   Acnt1 Mar 9$ 
               Acnt1 Apr 11$ 

選項2:CRUD /覆寫源系統

它更可能是你有一個源系統,可以讓用戶直接更新/更換業務度量。在任何時候,根據源系統,每個度量值都有且只有一個值。您可以在您的ETL過程中通過一些聰明的技巧來完成此交易,但您唯一會得到的ETL計劃限制的交易窗口。

在這種情況下,您可以使用週期事實表或累積事實表。

讓我們堅持使用我們的帳戶示例,但不是交易,表格只是針對每個帳戶存儲金額值。這根據源系統中的要求進行了更新,因此對於Acnt1,1月份的價格爲10 $,2月9日和4月11日$

堅持交易​​和期間事實表,我們最終會收到此數據4月底)。再次,週期性事實表是您慢慢變化的事實表。

 
DW_Tansaction_Fact  DW_Periodic_Fact 
------------------- -> -------------------- 
Acnt1 11$     Acnt1-Jan-10$ 
          Acnt1-Feb-09$ 
          Acnt1-Mar-09$ 
          Acnt1-Apr-11$ 

但是我們也可以使用一個Accumulating Fact表,它可以包含給定年份的所有月份值。

 
DW_Accumlative_Fact_CrossTab 
Year Acnt Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2001 Acnt1 10 9 9 11 - - - - - - - - 

或較3型十歲上下的版本

 
DW_Accumlative_Fact_CrossTab 
Acnt Year YearStartVal CurrentVal 
Acnt1 2001 10    9 

Kindof相關

根據我的經驗,這種問題出現時,這個共同的業務場景:

  1. 有一個數據庫核心業務系統。
  2. 業務週期性問題核心業務系統按時間段彙總值的報表
  3. 核心業務系統允許追溯更新數據 - 這是通過覆蓋值來處理的。
  4. 業務要求知道爲什麼6月份同一報告中的1月數據與2月份報告中的1月數據不符。

注意,你現在要處理四套的時間(報告的初期,測量在初始階段,報告期,本期測量的日期),這將是努力不夠爲您講解更不用說您的最終用戶瞭解。

試着退後一步,向您的最終用戶解釋哪些業務量度會隨着時間而改變,傾聽他們想要的結果並據此建立您的事實。請注意,您最終可能會得到多個用於相同度量的事實數據表,即可以。

參考: