Опции командной строки
Для единообразия флаги интерфейса командной строки (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>на новое значение для конфигурации.
<SUBCOMMAND> --<THIS-CONFIG>=<SETTING>
Пример
dbt run --printer-width=80
dbt test --indirect-selection=eager
Для включения или отключения булевых конфигураций:
- Используйте
<SUBCOMMAND>, к которой применяется эта конфигурация. - Следуйте за
--<THIS-CONFIG>, чтобы включить, или--no-<THIS-CONFIG>, чтобы отключить. - Замените
<THIS-CONFIG>на конфигурацию, которую вы включаете или отключаете.
dbt <SUBCOMMAND> --<THIS-CONFIG>
dbt <SUBCOMMAND> --no-<THIS-CONFIG>
Пример
dbt run --version-check
dbt run --no-version-check
Приоритет конфигурации
Существует несколько способов задания флагов, выбор которых зависит от сценария использования:
- Флаги уровня проекта
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
Существует две категории исключений:
- Флаги, задающие пути к файлам: Флаги с путями к файлам, которые важны для выполнения во время запуска (например,
--log-pathили--state), нельзя задавать вdbt_project.yml. Чтобы переопределить значения по умолчанию, используйте опции CLI или переменные окружения (DBT_LOG_PATH,DBT_STATE). Флаги, которые указывают dbt, где искать ресурсы проекта (например,model-paths), задаются вdbt_project.yml, но как ключи верхнего уровня, вне словаряflags; предполагается, что такие настройки полностью статичны и никогда не меняются в зависимости от команды или среды выполнения. - Opt-in флаги: Флаги, отвечающие за включение или отключение изменений поведения, могут быть определены только в
dbt_project.yml. Предполагается, что они задаются в системе контроля версий и изменяются через pull/merge request. Их значения не должны длительное время различаться между запусками, средами или пользователями.