Перейти к основному содержимому

Конфигурации тестов данных

Связанная документация

Тесты данных могут быть настроены несколькими способами:

  1. Свойства в определении .yml (только для общих тестов, полную синтаксис смотрите в свойствах тестов)
  2. Блок config() в SQL-определении теста
  3. В dbt_project.yml

Конфигурации тестов данных применяются иерархически, в порядке специфичности, указанном выше. В случае отдельного теста блок config() в SQL-определении имеет приоритет над конфигурациями в файле проекта. В случае конкретного экземпляра общего теста свойства .yml теста будут иметь приоритет над любыми значениями, установленными в config() его общего SQL-определения, которые, в свою очередь, будут иметь приоритет над значениями, установленными в dbt_project.yml.

Доступные конфигурации

Нажмите на ссылку каждой опции конфигурации, чтобы узнать больше о её возможностях.

Конфигурации, специфичные для тестов данных

Конфигурации, специфичные для ресурса, применимы только к одному типу ресурса dbt, а не к нескольким типам ресурсов. Вы можете определить эти настройки в файле проекта (dbt_project.yml), в файле свойств (models/properties.yml для моделей, аналогично для других ресурсов) или внутри файла ресурса, используя макрос {{ config() }}.

Следующие конфигурации, специфичные для ресурса, доступны только для Data tests:

dbt_project.yml
tests:
<resource-path>:
+fail_calc: <string>
+limit: <integer>
+severity: error | warn
+error_if: <string>
+warn_if: <string>
+store_failures: true | false
+where: <string>

Общие конфигурации

Общие конфигурации предоставляют более широкие операционные настройки, применимые к нескольким типам ресурсов. Как и конфигурации, специфичные для ресурсов, они также могут быть заданы в файле проекта, файлах свойств или в файлах, специфичных для ресурсов.

dbt_project.yml
tests:
<resource-path>:
+enabled: true | false
+tags: <string> | [<string>]
+meta: {dictionary}
# актуально только для store_failures
+database: <string>
+: <string>
+alias: <string>

Примеры

Добавление тега к одному тесту

Если это конкретный экземпляр общего теста данных:

models/<filename>.yml
models:
- name: my_model
columns:
- name: id
tests:
- unique:
tags: ['my_tag']

Если это отдельный тест данных:

tests/<filename>.sql
{{ config(tags = ['my_tag']) }}

select ...

Установка уровня серьезности по умолчанию для всех экземпляров общего теста данных

macros/<filename>.sql
{% test my_test() %}

{{ config(severity = 'warn') }}

select ...

{% endtest %}

Отключение всех тестов данных из пакета

dbt_project.yml
tests:
package_name:
+enabled: false

Указание пользовательских конфигураций для общих тестов данных

Начиная с dbt v1.9, вы можете использовать любой пользовательский ключ конфигурации для указания пользовательских конфигураций для тестов данных. Например, следующее указывает пользовательскую конфигурацию snowflake_warehouse, которую dbt должен использовать при выполнении теста данных accepted_values:


models:
- name: my_model
columns:
- name: color
tests:
- accepted_values:
values: ['blue', 'red']
config:
severity: warn
snowflake_warehouse: my_warehouse

С учетом конфигурации, тест данных выполняется на другом виртуальном складе Snowflake, чем тот, который используется в вашем подключении по умолчанию, чтобы обеспечить лучшее соотношение цены и производительности с другим размером склада или более детальной аллокацией и видимостью затрат.

0