Оптимизация статического анализа для разработки и развертывания
dbt v2 доступен для установки в следующих средах:
Присоединяйтесь к обсуждению в канале #dbt-v2 в Slack сообщества dbt.
Статический анализ помогает dbt v2 проверять SQL до его выполнения. В этом руководстве показано, как настроить его для более строгих проверок при разработке и более быстрых запусков с меньшим риском блокировки при развертывании.
В этом руководстве объясняется, почему использование strict при разработке и baseline (более легкого режима статического анализа, используемого по умолчанию) при развертывании — обоснованный и рекомендуемый подход, а также как настроить его в проекте dbt v2. Подробнее о режимах и возможностях см. в разделе О статическом анализе.
Почему стоит использовать этот подход
- Разработка: режим
strictобеспечивает наиболее строгие проверки SQL перед переносом изменений в другие среды, а также расширенные возможности на уровне столбцов в расширении VS Code. - Развертывание: режим
baselineпропускает загрузку схем из удаленного хранилища данных и выводит обнаруженные проблемы как предупреждения, поэтому задания реже блокируются. Это может сократить время компиляции (и затраты на хранилище данных) при развертывании, особенно в проектах с большим количеством источников. Просматривайте журналы развертывания на предмет предупреждений, которые режимstrictпри разработке выдал бы как ошибки.
Режим strict может увеличить время компиляции, поскольку dbt v2 загружает схемы всех источников (включая те, на которые ваши модели не ссылаются). Команды, работающие с тысячами источников, отмечали значительную разницу между baseline и strict.
Настройка режима с помощью флага CLI
Используйте флаг --static-analysis, чтобы задать режим для одного запуска.
Разработка:
dbt compile --static-analysis strict
Развертывание:
dbt compile --static-analysis baseline
Тот же флаг можно использовать с dbt run или dbt build. Если наряду с dbt v2 у вас уже установлен dbt v1 или CLI платформы, используйте dbtf, чтобы однозначно вызвать dbt v2.
Вы также можете настроить static_analysis для отдельного каталога или модели. Примеры см. в разделе Настройка static_analysis.
Настройка режима с помощью переменной окружения
Вы также можете управлять static_analysis через пользовательскую переменную окружения в dbt_project.yml. Это удобно, если для разработки и развертывания используется одна конфигурация проекта, но задаются разные значения переменных окружения.
models:
my_project:
+static_analysis: "{{ env_var('DBT_ENV_STATIC_ANALYSIS', 'baseline') }}"
Затем задайте переменную для каждой среды:
- Разработка:
DBT_ENV_STATIC_ANALYSIS=strict - Развертывание: оставьте переменную незаданной (по умолчанию используется
baseline) или задайтеDBT_ENV_STATIC_ANALYSIS=baseline
DBT_ENV_STATIC_ANALYSIS — это имя пользовательской переменной, которое вы выбираете сами. Она не связана со встроенной переменной DBT_STATIC_ANALYSIS, используемой для переопределения режима вместе с флагом CLI.
Подробнее об env_var см. в разделах Об env_var и Переменные окружения.