Sql-Server

數據倉庫暫存表:Null 或 Not Null

  • January 9, 2019

我們使用 SSIS 將數據從 OLTP 載入到暫存表中,然後使用 ETL 流程將數據載入到 Kimball 數據倉庫中。

我們正在詢問臨時表,它們是否應該具有空/非空約束。調試中各個方面的優缺點是什麼?

我知道數據倉庫應該有空/非空約束。

有討論認為,有時如果一列為空,而另一列不為空,而不是不允許數據輸入,人們可以分析和理解為什麼存在間隙/漏洞。暫存區是一個工作測試/驗證/調試區域,用於提煉、清理和轉換數據

我看不出沒有約束可以帶來什麼好處。您可以考慮刪除 NOT NULL 約束的唯一情況是,如果您的 ETL 流程在多個步驟中載入數據,並且在某些時候臨時表可能包含無效數據,例如,您首先將 NULL 值插入到列中,然後在單獨的流程中使用查找或其他內容的正確值填充該列。

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