猜猜我們在企業中有一個索賠管理應用程序。 此應用具有不同的表,例如:應將什麼策略應用於將此源類型加載到DWH?
- 權利要求類型
- 權利要求日誌
- 權利要求表
- 用戶表
- 用戶要求關係表
該應用程序允許用戶創建新的索賠類型(1),然後管理員可以承認此類型或將其刪除。此外,這個應用程序允許創建索賠(3)並記錄。這也記錄了ip和其他參數(2)。最後,我們有一個用戶表,因爲只有一些用戶可以創建索賠(4),以及一個存儲每個用戶(5)創建的索賠的表。
所有這些表都必須遵守的應用程序的可用性正確的外交和主鍵。
現在,我們希望這個加載到數據倉庫。所有表必須每天被截斷並加載,因爲所有表都可以有新的行,甚至每天都可以刪除行。在這種情況下,我們有兩種方法來執行此操作:
- 加載沒有FK和PK的每個表。然後,DWH就像備份一樣,因爲在原始表中檢查了數據完整性。
- 加載PK和FK的表格。 DWH也檢查數據完整性,但是ETL過程必須擦除FK,然後可以截斷表以最終重建FK並重新載入表。我不知道它是否會對數據庫造成任何複雜性。
當源確保數據完整性時,DWH的正確方法是什麼? DWH應該使用關係密鑰來檢查數據完整性,還是隻存儲數據以創建報告和儀表板?
在報告和儀表盤,也許第一個選項是有效的,但情況下,如果再將這些數據是通過加載到另一個應用程序,有爆炸這個相同的關係作爲原始應用本體方法會發生什麼?
如果數據倉庫使用PostgreSQL RDBMS會怎樣? – Maik