Data-Warehouse

事實表中的非數字屬性(跟踪數據源)?

  • October 22, 2015

我正在使用星型模式創建一個數據倉庫,遵循 Kimball 方法。規則之一是僅將數值放入事實表中。

我正在考慮在事實表中放置一個“id”,以便跟踪插入事實的數據源。使用者可以通過多種方式上傳數據,我需要支持使用者在上傳數據時出錯並希望對其進行編輯的案例。因此,我正在考慮將作業和行 ID 放在所有上傳的數據上,並保持上傳的原始數據(在 ETL 之前從暫存區)。這樣,使用者將能夠看到上傳日誌,並且可以在需要時對其進行編輯並替換為正確的數據。

將這些 id 放在事實表中真的很糟糕嗎?另一種方法是將它們放在特殊的跟踪維度中。但是,這個維度每個事實表行都會有一行,那麼將它們放在事實表中沒有意義嗎?

我通常會將我的業務密鑰放在事實表中,以便我可以輕鬆地追溯到源系統以解決任何問題。我通常會給它加上一個唯一的約束,以確保事實表的粒度與業務鍵相同。

我想出的解決方案是這樣的:

要覆蓋事實表中的現有數據,只需按日期確定要覆蓋的數據。在這個特定的數據模型中,每個日期最多允許有一個事實條目。

我認為這比將業務密鑰放在事實表中效果更好,隨著數據模型的發展,我最終將支持越來越多的數據源,因此可能需要所有這些數據源的業務密鑰。

根據 Kimball 的書,我還將添加一個“審計”維度。

引用自:https://dba.stackexchange.com/questions/118599