如何在dbt中精细化禁用第三方包中特定禁用源的测试
如何在dbt中精细化禁用第三方包中特定禁用源的测试
当然可以实现精细化控制!不用把整个第三方包的测试都一刀切关掉,dbt提供了灵活的配置方式,让你只禁用那些和已关闭源关联的测试,具体可以试试这几种方法:
方法一:逐个禁用特定测试
如果关联禁用源的测试数量不多,你可以直接在dbt_project.yml里指定具体的测试名称来禁用。比如你看到警告里的测试是source_not_null_some_disable_source,就可以这样配置:
tests: my_package: source_not_null_some_disable_source: +enabled: false # 如果还有其他同属该禁用源的测试,比如唯一性测试,继续添加即可 source_unique_some_disable_source: +enabled: false
方法二:用通配符批量禁用同一源的所有测试
如果某个禁用源关联了很多测试,逐个配置太麻烦,你可以利用dbt源测试的命名规律(通常测试名称会包含对应源的名字),用通配符*来批量匹配:
比如所有属于source_name这个禁用源的测试名称都包含source_name,那配置可以写成:
tests: my_package: source_*_source_name: +enabled: false
这样就能一次性禁用该源下的所有测试,不用重复配置每个测试项。
小技巧:先确认测试列表
如果你不确定哪些测试属于禁用源,可以先运行这条命令列出第三方包的所有测试:
dbt list --select tests:my_package
从输出里找到和禁用源相关的测试名称,再针对性配置,避免误关其他有用的测试。
备注:内容来源于stack exchange,提问作者53RT
相关产品推荐
相关产品推荐

