ETL软件包首先加载所有数据,然后再次运行以仅加载更改或新项目的最佳方法

时间:2018-11-01 15:59:30

标签: sql sql-server ssis etl sql-job

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

谢谢!

1 个答案:

答案 0 :(得分:3)

我认为有多种方法可以实现这一目标:

  1. 添加包含最后插入的ID(或主键值)的参考表,并且该表必须每次都更新。
  2. 使用Change Data Capture (CDC),可以参考本文以获得更多信息:Introduction to Change Data Capture (CDC) in SQL Server 2008 (请注意,必须将数据库配置为启用CDC-可能不适用于您的情况)
  3. LastUpdate列添加到表中,并读取LastUpdate列值大于上次运行的SSIS作业日期的日期。