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 中包含处理的行数和处理文件所花费的时间很方便。
我正在开发一个 SSIS 2012 DTS,它必须从 csv 到 DB 的 ETL 数据。
csv 文件将每天提供,发布日期将在文件名上可用:filename_YYMMDD.csv
.
当然,它不能多次处理同一个文件,这样数据库中的数据就不会重复。问题是我在处理文件时无法删除或重命名文件。我必须处理我还没有处理的文件,不要管旧的。
我正在考虑使用日志 table 来存储我处理文件时的日期。在 FLC 的开头,我查询数据库以获取当前文件的日期。如果在日志 table 上找不到日期,FLC 将运行 ETL。如果找到日期,FLC 会跳到下一个文件。
可能吗?我应该用脚本任务来完成吗?如何从脚本任务向 FLC 循环发送 continue
命令?或者我可以通过执行 SQL 任务以某种方式完成吗?
我使用日志 table 对我成功处理的所有文件进行了精确处理。确保在处理 csv 文件后更新日志 table 的事务中执行此操作。您可能会发现在日志 table 中包含处理的行数和处理文件所花费的时间很方便。