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

Окружения dbt

Окружение определяет, как dbt будет выполнять ваш проект в Studio IDE или через dbt CLI (для разработки), а также в запланированных заданиях (для деплоя).

Критически важно, что для выполнения dbt окружения определяют три переменные:

  1. Версию dbt Core, которая будет использоваться для запуска вашего проекта
  2. Параметры подключения к хранилищу данных (включая настройки целевой базы данных и схемы)
  3. Версию вашего кода, которая будет выполняться

Каждый проект dbt может иметь только одно окружение разработки, однако количество окружений деплоя не ограничено. Это обеспечивает гибкость и возможность тонкой настройки выполнения запланированных заданий.

Используйте окружения для настройки параметров на разных этапах жизненного цикла проекта и для упрощения процесса выполнения, применяя принципы программной инженерии.

Иерархия окружений dbt, показывающая проекты, окружения, подключения и задания оркестрации.Иерархия окружений dbt, показывающая проекты, окружения, подключения и задания оркестрации.

В следующих разделах подробно описаны различные типы окружений и показано, как интуитивно настроить окружение разработки в dbt.

Типы окружений

В dbt есть два типа окружений:

  • Окружение развертывания (Deployment environment) — определяет настройки, используемые при выполнении джобов, созданных в этом окружении.
    Типы окружений развертывания:
    • General
    • Staging
    • Production
  • Окружение разработки (Development environment) — определяет настройки, используемые в Studio IDE или Cloud CLI для конкретного проекта.

В каждом проекте dbt может быть только одно окружение разработки, но может быть любое количество окружений развертывания типа General, одно окружение развертывания Production и одно окружение развертывания Staging.

DevelopmentGeneralProductionStaging
Определяет настройки дляStudio IDE или Cloud CLIЗапуски джобов dbtЗапуски джобов dbtЗапуски джобов dbt
Сколько может быть в проекте?1Любое количество11
Loading table...
примечание

Для пользователей, знакомых с разработкой на dbt Core, каждое окружение примерно аналогично записи в файле profiles.yml, но с дополнительной информацией о вашем репозитории, чтобы гарантировать выполнение нужной версии кода. Подробнее об окружениях dbt core — здесь.

Общие настройки окружения

И окружения разработки, и окружения развертывания имеют раздел General Settings, в котором есть базовые настройки, которые определяются для всех окружений:

НастройкаПример значенияОпределениеДопустимые значения
Название окруженияProductionИмя окруженияЛюбая строка!
Тип окруженияDeploymentТип окруженияDeployment, Development
Set deployment typePRODОбозначает тип окружения развертывания.Production, Staging, General
Версия dbtLatestdbt автоматически обновляет версию dbt, выполняемую в этом окружении, на основе выбранного вами release track.Lastest, Compatible, Extended
Запускать только на custom branch☑️Определяет, нужно ли использовать ветку, отличную от ветки репозитория по умолчаниюСм. ниже
Custom branchdevИмя custom branchСм. ниже
Loading table...
О версии dbt

dbt позволяет пользователям выбрать release track, чтобы получать обновления версий dbt с частотой, подходящей команде.

Поведение custom branch

По умолчанию все окружения используют ветку репозитория по умолчанию (обычно main) при доступе к вашему dbt‑коду. Это можно переопределить в каждом dbt Environment с помощью опции Default to a custom branch. Поведение этой настройки немного отличается в зависимости от типа окружения:

  • Development: определяет, от какой ветки в Studio IDE или Cloud CLI разработчики создают ветки и против какой ветки открывают PR.
  • Deployment: определяет, какая ветка клонируется при выполнении джобов в каждом окружении.

Подробнее см. на FAQ‑странице по этой теме!

Расширенные атрибуты (Extended attributes)

примечание

Расширенные атрибуты сейчас не поддерживаются для SSH‑туннелирования

Расширенные атрибуты позволяют пользователям задавать гибкий фрагмент profiles.yml в настройках окружения dbt. Это даёт больше контроля над окружениями (и deployment, и development) и расширяет возможности того, как dbt подключается к платформе данных в рамках окружения.

Расширенные атрибуты задаются на уровне окружения и могут частично переопределять учётные данные подключения или окружения, включая любые custom environment variables. Вы можете задавать любые YAML‑атрибуты верхнего уровня, которые адаптер dbt принимает в profiles.yml.

Extended Attributes помогает добавлять атрибуты profiles.yml в настройки окружения dbt через текстовое поле свободной формы.Extended Attributes помогает добавлять атрибуты profiles.yml в настройки окружения dbt через текстовое поле свободной формы.

Следующий код — пример типов атрибутов, которые можно добавить в текстовое поле Extended Attributes:

dbname: jaffle_shop      
schema: dbt_alice
threads: 4
username: alice
password: '{{ env_var(''DBT_ENV_SECRET_PASSWORD'') }}'

Extended Attributes не маскируют значения секретов

Мы рекомендуем избегать указания секретных значений, чтобы они не были видны в текстовом поле и логах. Распространённый обходной путь — обернуть extended attributes в environment variables. В примере выше password: '{{ env_var(''DBT_ENV_SECRET_PASSWORD'') }}' получит значение из переменной окружения DBT_ENV_SECRET_PASSWORD во время выполнения.

Как работают extended attributes

Если вы разрабатываете в Studio IDE, Cloud CLI или оркестрируете запуски джобов, extended attributes парсят предоставленный YAML и извлекают атрибуты profiles.yml. Для каждого отдельного атрибута:

  • Если атрибут существует в другом источнике (например, в настройках проекта), он заменит его значение (например, значения уровня окружения) в профиле. Он также переопределяет любые custom environment variables (если сам не задан через синтаксис для секретов выше)

  • Если атрибут не существует, он добавит пару «атрибут/значение» в профиль.

В extended attributes принимаются только ключи верхнего уровня

Это означает, что если вы хотите изменить значение конкретного вложенного (sub-key) ключа, вы должны передать весь ключ верхнего уровня как JSON‑блок в итоговом YAML. Например, если вы хотите кастомизировать поле внутри service account JSON для подключения BigQuery (например, project_id или client_email), вам нужно переопределить весь ключ/атрибут верхнего уровня keyfile_json через extended attributes. Включите под‑поля как вложенный JSON‑блок.

Создание окружения разработки

Чтобы создать новое окружение разработки dbt:

  1. Перейдите в Deploy -> Environments
  2. Нажмите Create Environment
  3. Выберите Development в качестве типа окружения
  4. Заполните поля в разделах General Settings и Development Credentials
  5. Нажмите Save, чтобы создать окружение

Настройка учетных данных разработчика

Для использования dbt Studio IDE или Cloud CLI каждому разработчику необходимо настроить персональные учетные данные для разработки для подключения к хранилищу данных в разделе Profile Settings. Это позволяет задавать отдельные целевые параметры и поддерживать индивидуальные учетные данные для подключения к вашему хранилищу данных.

Создание окружения разработкиСоздание окружения разработки

Окружение деплоя

Окружения деплоя в dbt необходимы для выполнения запланированных заданий и использования других возможностей (например, разных рабочих пространств для разных задач). В рамках одного проекта dbt вы можете иметь множество окружений, что позволяет настраивать каждое пространство под разные цели (например, для экспериментов или тестирования).

Несмотря на то что окружений может быть много, только одно из них может быть «основным» окружением деплоя. Оно считается вашим «production»-окружением и представляет собой «источник истины» проекта — то есть место, где находятся самые надежные и финальные преобразования данных.

Чтобы узнать больше об окружениях деплоя dbt и их настройке, ознакомьтесь со страницей Deployment environments. Также рекомендуем прочитать руководство по лучшим практикам — dbt environment best practices.

Удаление окружения

Удаление окружения автоматически удаляет связанные с ним задания (job). Если вы хотите сохранить эти задания, сначала переместите их в другое окружение.

Выполните следующие шаги, чтобы удалить окружение в dbt:

  1. Нажмите Deploy в верхней навигационной панели, затем нажмите Environments.
  2. Выберите окружение, которое вы хотите удалить.
  3. В правом верхнем углу страницы нажмите Settings, затем нажмите Edit.
  4. Прокрутите страницу вниз и нажмите Delete, чтобы удалить окружение.
Delete an environmentDelete an environment
  1. Подтвердите действие во всплывающем окне, нажав Confirm delete в правом нижнем углу, чтобы немедленно удалить окружение. Это действие нельзя отменить. Однако вы можете создать новое окружение с теми же параметрами, если удаление было выполнено по ошибке.
  2. Обновите страницу — удалённое окружение должно исчезнуть. Чтобы удалить несколько окружений, необходимо выполнить эти шаги для каждого из них.

Если у вас возникли какие-либо проблемы, вы всегда можете связаться с нами для получения дополнительной помощи.

Мониторинг заданий

На странице Environments есть два раздела, которые дают обзор заданий для выбранного окружения:

  • In progress — Список заданий, которые в данный момент выполняются, с информацией о времени запуска
  • Top jobs by models built — Ранжирует задания по количеству построенных моделей за определённый период времени
In progress jobs and Top jobs by models builtIn progress jobs and Top jobs by models built

История настроек окружения

Вы можете просматривать историю изменений настроек окружения за последние 90 дней.

Чтобы посмотреть историю изменений:

  1. В главном меню перейдите в Orchestration и выберите Environments
  2. Нажмите на название окружения
  3. Перейдите в Settings
  4. Нажмите History
Пример опции просмотра истории окружения.Пример опции просмотра истории окружения.

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

0
Loading