sql - 是否可以将 SSIS 包中使用的文件记录到自定义执行表中?
问题描述
我制作了一个 SSIS 包,可将 1 个或多个文件加载到一系列表中。我想跟踪包中使用了哪些文件并将它们存储在一个表中,最好使用以下列:
- ETL ID - 与该加载中使用的每个文件相同
- 文件名
- 运行日期
我在网上阅读了多篇使用 SSIS 日志记录功能的文章,但这似乎只记录了运行的包,而不是包中使用的文件。
是否有可能做到这一点?非常感谢任何帮助,在此先感谢。
解决方案
是的,您可以创建自定义日志记录,但我发现使用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 变量)。
此外,可能相关 - >获取当前文件名
推荐阅读
- r - 在 ggplot2 之外添加列表,随着时间的推移而变化 - gganimate
- jira - 使用 Jira 链接服务和 Azure 数据工厂的 Jira 表中的自定义字段列
- react-native - 如何使用函数更改平面列表的数据?
- angular - 角度 nb-step 和 nb-select 验证
- symfony - Twilio - twilio 如何知道要调用哪个客户端
- postgresql - Kotlin/PostgreSQL 查询在预期时仅返回最后一行具有选定 ID 的所有行
- javascript - 将函数传递给 useEffect 并返回结果
- python - 如何遍历二维数组并添加元素
- excel - 将图片保存为PNG Excel
- sql - 如何使 SQL Server 列中的自动大写