2011-12-13 97 views
0

我對自己的數據倉庫使用自頂向下的方法,因此DW位於3NF中,數據集市是多維的。我讀過,DW應該有一個時間戳(或類似的東西)來保存歷史數據。
我的問題是:
我是否必須在DW中存儲過去的數據,還是有足夠的時間尺寸(技術上我使用2型SCD,在必要的地方)。數據倉庫中的時間差異

如果DW必須是時間變量,那麼:
什麼時候我們在自頂向下的方法中使用SCD?
我應該使用時間戳作爲表的PK部分嗎?

謝謝!

+0

我真的不明白你的問題。它看起來像你有一個現有的數據倉庫,但你問當前的設計是否正確,或如何實現新的東西或其他東西?無論問題是什麼,如果你可以更具體,清楚地顯示當前的結構,那麼你會得到更好的答案。 – Pondlife

回答

1

如果可能,儘量避免在規範化模式中跟蹤歷史記錄。 2型SCD要簡單得多。但是,您確實需要使數據集市持久化 - 歷史不能重建,因此數據集市是歷史數據的標準來源。

一些提示:

  • 不要重複使用ODS/DW鑰匙在你的尺寸。合併數據的自然鍵。這將您的ODS從您的星形模式中分離出來,並允許您在不影響星形模式的情況下重建ODS。

  • 追蹤歷史和從複雜的歸一化數據重建歷史位置非常煩瑣。不要打擾;堅持'當前狀態'在你的ODS中。

  • 製作一個通用的2型維度處理程序(可以使用系統數據字典中的數據)。這使您可以呈現預加載表並使用處理程序將數據合併到維度。

    這樣做將ETL從歷史記錄中分離出來,並允許您單獨測試它們。您可以通過驗證預加載表是否正確來測試ETL - 您不必在測試前/測試之後進行測試。您可以使用維度處理程序的一組單元測試來測試歷史記錄跟蹤。

    這種架構顯着簡化了測試。

  • 持久性數據集市而不是永久性ODS的一個優勢是您可以輕鬆地對ODS進行重大手術。如果ODS不必跟蹤歷史記錄,則可以根據需要刪除和重新創建歷史記錄,並且可以輕鬆更改數據模型,而無需遷移歷史數據。