【问题标题】:How should I perform automated testing of SQL ETL Scripts & SPROCs?我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?
【发布时间】:2026-01-05 07:20:03
【问题描述】:

我们有许多 DTSX 包,可以从许多旧的普遍数据库中提取-转换-加载数据 -> SQL Server 2k8 R2。 (通过 ODBC)

我们的大部分 ETL 流程 T-SQL 脚本

遗留数据是一个结构糟糕的混乱,而且我们对 ETL 脚本所做的调整和更改通常是为了处理这些格式错误的数据。

我们想做的是建立一些流程来自动测试执行这些转换的这些 SPROCS / 脚本。

我们自己想出的是:

  • 有一些已知的数据源输入(托管在本地普及型数据库中)
  • 运行 DTSX 包以生成输出
  • 在 SQL Server 的其他地方有一些预期的和预先创建的输出。
  • 编写我们自己的验证脚本,将预期值与实际值进行比较。

只是想知道是否还有其他我们应该考虑的进程/系统/数据库测试应用程序。

【问题讨论】:

标签: sql sql-server unit-testing etl ssis


【解决方案1】:

看看tSQLt - the Database Unit Testing Framework for SQL Server。它使编写健壮的测试变得相当容易。

它(还)不允许测试脚本,但您可以将它们包装到存储过程中。

【讨论】:

  • 非常感谢塞巴斯蒂安。我们已经开始使用这个框架,它似乎可以满足我们的需要。
【解决方案2】:

遗留数据库总是具有挑战性的。

我建议您看一下这篇文章:http://quality-gates.com/?p=1284,其中我介绍了在不同层验证 ETL 流程需要完成的基本测试:操作、数据仓库等。

我们选择在我们的项目中使用质量门。由于它不是 ETL 的一部分,因此它使验证变得清晰和客观。在我看来,就像您正在寻找的一样。

【讨论】:

    最近更新 更多