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

Опции командной строки

Для единообразия флаги интерфейса командной строки (CLI) следует указывать сразу после префикса dbt и его подкоманд. Это относится и к «глобальным» флагам (которые поддерживаются всеми командами). Полный список флагов Cloud CLI, которые можно задать, см. в разделе Available flags. При указании флаги CLI имеют приоритет над environment variables и project flags.

Переменные окружения содержат префикс DBT_.

Например, вместо использования:

dbt --no-populate-cache run

Вы должны использовать:

dbt run --no-populate-cache

Исторически, передача флагов (таких как "глобальные флаги") перед подкомандой является устаревшей функциональностью, которую dbt Labs может удалить в любое время. Мы не поддерживаем использование одного и того же флага до и после подкоманды.

Использование булевых и небулевых флагов

Вы можете составлять свои команды с булевыми флагами для включения или отключения или с небулевыми флагами, которые используют конкретные значения, такие как строки.

Используйте эту структуру небулевой конфигурации:

  • Замените <SUBCOMMAND> на команду, к которой применяется эта конфигурация.
  • <THIS-CONFIG> на конфигурацию, которую вы включаете или отключаете, и
  • <SETTING> на новое значение для конфигурации.
CLI flags

<SUBCOMMAND> --<THIS-CONFIG>=<SETTING>

Пример

CLI flags

dbt run --printer-width=80
dbt test --indirect-selection=eager

Приоритет конфигурации

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

  • Флаги уровня проекта flags в dbt_project.yml: Определяют версионируемые значения по умолчанию для всех, кто запускает этот проект. Также позволяют включать или отключать изменения поведения, чтобы управлять миграцией с устаревшей функциональности.
  • Переменные окружения: Позволяют задавать разное поведение в разных средах выполнения (разработка vs. продакшн vs. continuous integration), а также разное поведение для разных пользователей в среде разработки (например, на основе личных предпочтений).
  • Опции CLI: Определяют поведение, специфичное для данного запуска. Поддерживаются для всех команд dbt.

Всегда «побеждает» наиболее специфичная настройка. Если один и тот же флаг задан во всех трёх местах, приоритет будет следующим: сначала опция CLI, затем переменная окружения и, наконец, значение из dbt_project.yml. Если флаг не задан ни в одном из этих мест, будет использовано значение по умолчанию, определённое внутри dbt.

Большинство флагов можно задать всеми тремя способами:

# dbt_project.yml
flags:
# значение по умолчанию для запуска этого проекта — везде, всегда, для всех
fail_fast: true
# установить эту переменную окружения в значение 'True' (синтаксис bash)
export DBT_FAIL_FAST=1
dbt run
dbt run --fail-fast # установить True для этого конкретного запуска
dbt run --no-fail-fast # установить False

Существует две категории исключений:

  1. Флаги, задающие пути к файлам: Флаги с путями к файлам, которые важны для выполнения во время запуска (например, --log-path или --state), нельзя задавать в dbt_project.yml. Чтобы переопределить значения по умолчанию, используйте опции CLI или переменные окружения (DBT_LOG_PATH, DBT_STATE). Флаги, которые указывают dbt, где искать ресурсы проекта (например, model-paths), задаются в dbt_project.yml, но как ключи верхнего уровня, вне словаря flags; предполагается, что такие настройки полностью статичны и никогда не меняются в зависимости от команды или среды выполнения.
  2. Opt-in флаги: Флаги, отвечающие за включение или отключение изменений поведения, могут быть определены только в dbt_project.yml. Предполагается, что они задаются в системе контроля версий и изменяются через pull/merge request. Их значения не должны длительное время различаться между запусками, средами или пользователями.

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

0
Loading