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

Среды dbt Cloud

Среда определяет, как dbt Cloud будет выполнять ваш проект в dbt Cloud IDE или dbt Cloud CLI (для разработки) и запланированные задания (для развертывания).

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

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

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

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

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

Следующие разделы подробно описывают различные типы сред и как интуитивно настроить вашу среду разработки в dbt Cloud.

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

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

  • Окружение развертывания — Определяет настройки, используемые при выполнении задач, созданных в этом окружении.
    Типы окружений развертывания:
    • Общее
    • Стадия
    • Производство
  • Окружение разработки — Определяет настройки, используемые в dbt Cloud IDE или dbt Cloud CLI для конкретного проекта.

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

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

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

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

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

НастройкаПример значенияОпределениеДопустимые значения
ИмяПроизводствоИмя окруженияЛюбая строка!
Тип окруженияРазвертываниеТип окружения[Развертывание, Разработка]
Версия dbt1.4 (последняя)Используемая версия dbtЛюбая версия dbt из выпадающего списка
По умолчанию использовать пользовательскую ветку☑️Определяет, использовать ли ветку, отличную от основной ветки репозиторияСм. ниже
Пользовательская веткаdevИмя пользовательской веткиСм. ниже
О версии dbt

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

Поведение пользовательской ветки

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

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

Для получения дополнительной информации ознакомьтесь с этой страницей FAQ по этой теме!

Расширенные атрибуты

примечание

Расширенные атрибуты в настоящее время не поддерживаются для SSH-туннелирования

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

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

Расширенные атрибуты помогают пользователям добавлять атрибуты profiles.yml в настройки окружения dbt Cloud, используя текстовое поле свободной формы.Расширенные атрибуты помогают пользователям добавлять атрибуты profiles.yml в настройки окружения dbt Cloud, используя текстовое поле свободной формы.

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

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

Расширенные атрибуты не скрывают секретные значения

Мы рекомендуем избегать установки секретных значений, чтобы предотвратить их видимость в текстовом поле и журналах. Общий обходной путь заключается в оборачивании расширенных атрибутов в переменные окружения. В предыдущем примере password: '{{ env_var(''DBT_ENV_SECRET_PASSWORD'') }}' получит значение из переменной окружения DBT_ENV_SECRET_PASSWORD во время выполнения.

Как работают расширенные атрибуты

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

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

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

Только ключи верхнего уровня принимаются в расширенных атрибутах

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

Создание среды разработки

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

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

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

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

Создание среды разработкиСоздание среды разработки

Среда развертывания

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

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

Чтобы узнать больше о средах развертывания dbt Cloud и о том, как их настроить, обратитесь к странице Среды развертывания. Для получения руководства по лучшим практикам прочитайте Лучшие практики среды dbt Cloud для получения дополнительной информации.

0