一个简单(但有效)的方法来实现dbt模型的单元测试
实现dbt模型的单元测试的简单有效方法
单元测试dbt模型一直是dbt生态系统中最关键的缺失环节之一。本文提出了一种基于标准和dbt最佳实践的新的单元测试方法。
自从dbt将软件工程的最佳实践引入到数据工程领域以来,其功能和周围的生态系统不断扩展,以涵盖更多的数据转换领域。
然而,“数据工程与软件工程最佳实践”拼图的一个关键部分仍然难以捉摸和未解决:单元测试。
解释单元测试的重要性,以及为什么它们对于任何代码行在被称为“可投入生产”的之前都是至关重要的,以及为什么它们与dbt测试或数据质量测试不同,这些问题已经得到了精彩的解答和解释。但是,如果我们想要在一分钟的电梯推销中总结它们的重要性,可以如下表达:
在数据工程中,我们通常想要测试两个不同的元素:数据和我们的代码——dbt测试(和其他数据质量系统/工具)允许我们测试数据,而单元测试允许我们测试我们的代码。
有鉴于此,社区已经进行了多个倡议,以增强dbt的开源单元测试能力(例如Equal Experts的dbt单元测试包或GoDataDriven的dbt专注的Pytest插件)。然而,这些包在功能上仍然有限,并且具有陡峭的学习曲线。
本文介绍了一种不同的方法,它更简单而又更优雅,依赖于标准和dbt最佳实践来实现可扩展和可靠的单元测试过程。
模型单元测试与CTEs
在深入探讨这种方法之前,让我们首先定义我们要运行单元测试的级别。要回答的问题是…