我们正在尝试为包含大约 400M 行的 Data Warehouse Fact 表实现表分区。我们的 ETL 从上一次加载开始向后 50 天从源系统获取数据(新行、修改行、基于源系统时间戳)。因此,在每个 ETL 周期中,都会有新行进入,还有旧行正在更新 Fact 表中的相应行。这个想法是将新行插入 Fact 表并更新修改的行。
分区列将是日期(int,YYYYMMDD),我们正在考虑按月分区。
就我而言,表分区将通过快速分区切换操作简化我们的插入操作。我们可以拆分最近的分区以创建一个新的空闲分区,将新行加载到临时表中(使用日期约束,例如最近一个月),然后使用分区切换操作将新行“移动”到分区的事实表中. 但是我们如何处理修改后的行,这些行应该更新 Fact 表中的相应行?这些行可以包含上个月的数据。分区开关在这里有帮助吗?通常INSERT
,UPDATE
行由 ETL 工具(例如我们的案例中的 SSIS)或MERGE
语句确定。在这种情况下,分区是如何工作的?