SSIS Foreach Loop 仅处理尚未处理的文件

SSIS Foreach Loop process only files that weren't processed yet

我正在开发一个 SSIS 2012 DTS,它必须从 csv 到 DB 的 ETL 数据。

csv 文件将每天提供,发布日期将在文件名上可用:filename_YYMMDD.csv.

当然,它不能多次处理同一个文件,这样数据库中的数据就不会重复。问题是我在处理文件时无法删除或重命名文件。我必须处理我还没有处理的文件,不要管旧的。

我正在考虑使用日志 table 来存储我处理文件时的日期。在 FLC 的开头,我查询数据库以获取当前文件的日期。如果在日志 table 上找不到日期,FLC 将运行 ETL。如果找到日期,FLC 会跳到下一个文件。

可能吗?我应该用脚本任务来完成吗?如何从脚本任务向 FLC 循环发送 continue 命令?或者我可以通过执行 SQL 任务以某种方式完成吗?

我使用日志 table 对我成功处理的所有文件进行了精确处理。确保在处理 csv 文件后更新日志 table 的事务中执行此操作。您可能会发现在日志 table 中包含处理的行数和处理文件所花费的时间很方便。