我们用于测试ETL的当前设置是:
目标Datawarehouse数据库通过链接服务器连接到源数据库 .
QA团队编写了一个脚本,该脚本将读取,转换源数据库中的数据,并将结果与数据仓库中的表进行逐列比较,以获得100,000条记录的样本 .
公司策略可能会取消链接服务器连接,在这种情况下,源数据库和目标数据库之间将没有连接来进行逐列比较 .
有没有其他方法可以在不使用任何ETL工具的情况下执行此操作(因为这是正在测试的内容)
我可以想到第三个程序,比如(Python等),它 Build 了与源数据库和目标数据库的数据库连接,下载数据并进行文件比较或类似的事情 . 还有更好的想法?
有没有可用于此类测试的工具?
1 回答
在我看来,有三种方法可以测试这种情况:
i)使用第三方程序(Python / Java)
ii)手动(在csv中进行凝视和比较/下载并进行比较)
iii)使用ETL测试自动化工具
选项(i)您已经提到过 .
选项ii)对于某些数据子集您可以凝视并比较源数据库和目标数据库之间的数据 . 或者,您可以从Excel中的Source&Target下载数据样本,并使用宏进行数据比较和验证 . 但由于这涉及手动步骤,这将耗费时间并且由于使用样本而无法提供良好的数据覆盖 .
选项iii)有一些许可工具,如Query Surge,BI Validator,DB Solo等,可用于数据比较和验证 . DB Solo只能进行DB到DB的比较 . 此外,您可能无法使用DB Solo验证复杂的转换 . 然而,Query Surge&BI Validator可以执行DB到DB,DB到文件,文件到DB,文件到文件数据的比较和验证 . 如果源数据和目标数据之间存在任何变换,这些也可以帮助您验证复杂的转换 .
您还可以使用这些工具在数据仓库中的不同层之间进行进一步的数据验证,并自动执行大多数ETL测试 . 要调查您的ETL工具选项,请查看此wiki .