我們正在嘗試爲包含大約400M行的數據倉庫事實表執行表分區。我們的ETL從前一次加載中將源系統中的數據向後50天(基於源系統時間戳的新行,修改後的行)取回。因此,在每個ETL週期中都有新行進入,還有舊行正在更新Fact表中的相應行。這個想法是將新行插入Fact表並更新修改過的行。事實表分區:如何處理ETL中的更新?
分區列將是date(int,YYYYMMDD),我們正在考慮按月分區。
就我而言,表分區將通過fast partition switch operations緩解我們的插入。我們可以拆分最近的分區來創建一個新的空閒分區,將新的行加載到臨時表(使用日期約束,例如最近一個月),然後使用分區切換操作將新行「移動」到分區事實表中。但是,我們如何處理修改後的行,它應該更新Fact表中的相應行?這些行可以包含上個月的數據。分區切換在這裏有幫助嗎?通常,INSERT
和UPDATE
行由ETL工具(例如本例中的SSIS)或MERGE
聲明確定。在這種情況下分區是如何工作的?