首页 > 解决方案 > 是否可以将 SSIS 包中使用的文件记录到自定义执行表中?

问题描述

我制作了一个 SSIS 包,可将 1 个或多个文件加载到一系列表中。我想跟踪包中使用了哪些文件并将它们存储在一个表中,最好使用以下列:

  1. ETL ID - 与该加载中使用的每个文件相同
  2. 文件名
  3. 运行日期

我在网上阅读了多篇使用 SSIS 日志记录功能的文章,但这似乎只记录了运行的包,而不是包中使用的文件。

是否有可能做到这一点?非常感谢任何帮助,在此先感谢。

标签: sqlssis

解决方案


是的,您可以创建自定义日志记录,但我发现使用Execute SQL Task更容易和便携。

我的包裹通常采用这种形式

审计工作审计

我审核包的开始,做工作,然后记录包的完成。这种模式应该适合你。开始审计步骤看起来像

INSERT INTO dbo.MyAudit
SELECT ? AS EtlId, ? AS StartDate;

然后当包完成时,像这样回填运行数据

UPDATE dbo.MyAudit
SET SourceFile = ?, EndDate = ?, RowsInserted = ?, RowsUpdated = ?
WHERE RunId = ?;

假设您使用的是 OLE DB 连接管理器,问号?是 Execute SQL Task 中的序号占位符,它们连接到参数(SSIS 变量)。

此外,可能相关 - >获取当前文件名


推荐阅读