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

Пакетное выполнение тестов

Флаг --batch-tests объединяет совместимые тесты данных, относящиеся к одной модели, в один запрос для каждого типа тестов вместо выполнения отдельного запроса для каждого теста. Это сокращает количество запросов, которые dbt выполняет при тестировании, что может повысить производительность в проектах с большим количеством тестов данных.

Объединение тестов в пакеты​

Пакетное выполнение применяется к dbt build и dbt test. dbt объединяет группу тестов в пакет, если выполняются все следующие условия:

  • Тесты имеют тип unique или not_null
  • Они относятся к одной модели
  • Они используют конфигурацию по умолчанию
  • Как минимум два из них имеют одинаковый тип

dbt исключает тесты из пакетного выполнения, если задан любой из следующих параметров:

  • severity
  • error_if
  • warn_if
  • fail_calc
  • limit
  • where
  • store_failures
  • store_failures_as

Исключённые тесты выполняются отдельно, как и без пакетного выполнения.

Настройка флага​

dbt определяет значение batch_tests по трём источникам в порядке приоритета:

  1. Флаг командной строки --batch-tests
  2. Переменная окружения DBT_ENGINE_BATCH_TESTS
  3. Блок flags в файле dbt_project.yml корневого проекта

Например, в командной строке:

CLI
dbt build --batch-tests

С помощью переменной окружения:

Env var
export DBT_ENGINE_BATCH_TESTS=true
dbt build

В файле dbt_project.yml:

dbt_project.yml
flags:
batch_tests: true

Нашли ошибку?

0
Loading