SSIS 数据流(2 个包合并为一个包)

SSIS DATA FLOW (2 packages into a single package)

我创建了 2 个不同的包,在包 1 中,我们从两个不同的 tables(当前和历史 tables)加载数据,在第二个包中,我们仅从当前加载数据table 到目的地 table。

任务:我只想使用一个包而不是两个包,当它 运行 第一次加载当前和历史数据时 table 而当我们 运行 第二次它应该只将数据从当前 table 加载到目标。

这可以在单个数据流中完成吗?如果可以,你能告诉我怎么做吗?

这看起来像是某种修改后的增量加载。反正有很多技巧:

创建 2 个并行 DFT,1 个使用当前源,另一个使用历史源。 execute sql task 将根据以下 2 种方法触发它:

注意:明智地处理并行处理,否则来源会发生冲突。

  1. 维持'DataLoad_ID'

    • 在这里,您将维护一个单独的 table,其中包含加载次数。 execute sql task 会读这个。当 DataLoad < 1 时,则通过 constraints 启用历史源 DFT。否则 运行 仅电流源 DFT。
  2. 通过现有逻辑。

    • 使用 Execute SQL Task,检查您的数据仓库是否已填充(使用任何逻辑,例如,检查默认列:Created_Dttm、Updated_Dttm)。如果不是,则通过 constraints 启用历史源 DFT。否则 运行 仅电流源 DFT。