gpt4 book ai didi

testing - 如何在ETL过程中进行测试(单元测试)?

转载 作者:行者123 更新时间:2023-11-28 19:43:45 26 4
gpt4 key购买 nike

我知道有几家小公司不对 ETL 过程进行测试,但从软件工程的角度来看,这似乎不是最佳选择。

人们通常如何对ETL过程进行测试/单元测试/功能测试?

最佳答案

我们最近参与了一个项目,其中治理委员会要求“您必须进行单元测试”,因此我们尽力而为。

对我们有用的是让每个 ETL 解决方案都以 QA/测试包开始和结束。

这些包发现的任何意外都被记录到审计表中,然后引发失败包事件以停止整个作业 - 我们认为使用昨天的好数据运行比针对可能的“今天”数据不好的风险报告更好.

起始包将执行数据库架构和数据健全性检查。数据完整性涉及检查由于源系统中缺乏引用完整性而导致的重复或丢失数据。模式检查确保检测到在持续集成期间未应用的任何模式更改。

最终包将检查任何转换的结果。这些包括:

  • 比较源|目标之间的记录数
  • 检查特定的转换(例如:所有日期值更改为适当的 SK 值,所有字符串值 RTrimed)
  • 确保填充所有 SK 字段(-1 而不是空值)

这些测试中的大多数都是 SQL 语句,它们使用了我们数据库的内置模式对象,因此创建起来并不费力。

此外,作为我们开发过程的一部分,我们将创建具有我们正在进行的任何转换的最终结果的 View 。我们将利用这些 View 来验证我们的包转换。

这些检查中的每一项都在我们的特殊审计表中创建了一条记录。这样我们就可以提供一份完整的列表,列出我们在每次运行过程中所做的所有测试和检查,以满足治理人员的需求。

(我们还有一组单独的包,可以通过创建虚拟表、填充它们、运行测试然后确认编写了适当的审计记录来对每个 QA 测试进行单元测试。正如 Nick 所说,这是很多工作,没有什么实际值(value))

关于testing - 如何在ETL过程中进行测试(单元测试)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37809166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com