【发布时间】:2018-10-24 10:55:43
【问题描述】:
我制作了一个 SSIS 包,可将一个或多个文件加载到一系列表中。我想跟踪包中使用了哪些文件并将它们存储在一个表中,最好使用以下列:
- ETL ID - 加载中使用的每个文件都相同
- 文件名
- 日期运行
我已经阅读了多篇使用 SSIS 日志记录功能的在线文章,但似乎只记录了运行的包,而不是包中使用的文件。
可以这样做吗?非常感谢任何帮助,在此先感谢。
【问题讨论】:
我制作了一个 SSIS 包,可将一个或多个文件加载到一系列表中。我想跟踪包中使用了哪些文件并将它们存储在一个表中,最好使用以下列:
我已经阅读了多篇使用 SSIS 日志记录功能的在线文章,但似乎只记录了运行的包,而不是包中使用的文件。
可以这样做吗?非常感谢任何帮助,在此先感谢。
【问题讨论】:
是的,您可以创建自定义日志记录,但我发现Execute SQL Task 的使用更容易且可移植。
我的包裹一般采用这种形式
我审核包的启动、工作,然后记录包的完成。这种模式应该适合你。开始审计步骤看起来像
INSERT INTO dbo.MyAudit
SELECT ? AS EtlId, ? AS StartDate;
然后当打包完成时,像这样回填运行数据
UPDATE dbo.MyAudit
SET SourceFile = ?, EndDate = ?, RowsInserted = ?, RowsUpdated = ?
WHERE RunId = ?;
问号 ? 是执行 SQL 任务中的序号占位符,假设您使用的是 OLE DB 连接管理器,它会连接到参数(SSIS 变量)。
另外,可能相关 -> getting current file name
【讨论】: