首页 > 解决方案 > ETL 包最初加载所有数据然后下次运行以仅加载更改或新项目的最佳方法

问题描述

我是 SSIS 的新手,希望创建 ETL 包的最佳方法是最初加载所有数据,然后再运行以仅加载更改或新项目。我将在计划 SQL 作业中使用该包。我知道我可以设置 SSIS 包来截断目标表,但对我来说这是一种资源浪费,如果担心大表,事务日志会很大。

提前致谢!

标签: sqlsql-serverssisetlsql-job

解决方案


我认为实现这一目标的方法不止一种:

  1. 添加包含最后插入的ID(或主键值)的引用表,并且每次都必须更新此表。
  2. 使用变更数据捕获 (CDC),您可以参考这篇文章了解更多信息:SQL Server 2008 中变更数据捕获 (CDC) 简介 (请注意,数据库必须配置为启用 CDC - 可能不适用于您的情况)
  3. 将列添加到表中,并且列值高于上次运行的 SSIS 作业日期的LastUpdate只读日期。LastUpdate

推荐阅读