我该如何执行SQL ETL脚本的自动化测试?存储过程?

时间:2012-01-13 14:04:08

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

我们有许多DTSX软件包可以从许多传统的Pervasive数据库中提取 - 转换 - 加载数据 - > SQL Server 2k8 R2。 (通过ODBC)

我们的大多数ETL过程T-SQL脚本

遗留数据是一个结构严重的混乱&最常见的是,调整&我们对ETL脚本所做的更改是为了处理这种格式错误的数据。

我们想要做的是设置一些流程来自动测试执行这些转换的SPROCS / Scripts。

我们自己想出的是:

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

传统数据库总是具有挑战性。

我建议你看一下这篇文章:http://quality-gates.com/?p=1284,其中我将介绍在不同层中验证ETL过程需要完成的基本测试:Operational,Datawarehouse等。

我们选择在项目中使用Quality Gates。由于它不是ETL的一部分,因此它使验证变得清洁和客观。在我看来,你喜欢什么。