Среды dbt Cloud
Среда определяет, как dbt Cloud будет выполнять ваш проект в dbt Cloud IDE или dbt Cloud CLI (для разработки) и запланированные задания (для развертывания).
Критически важно, что для выполнения dbt среды определяют три переменные:
- Версия dbt Core, которая будет использоваться для запуска вашего проекта
- Информация о подключении к хранилищу данных (включая настройки целевой базы данных/схемы)
- Версия вашего кода для выполнения
Каждый проект 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 здесь.
Общие настройки окружения
Как окружения разработки, так и развертывания имеют раздел под названием Общие настройки, который содержит некоторые базовые настройки, которые определяются для всех окруже ний:
Настройка | Пример значения | Определение | Допустимые значения |
---|---|---|---|
Имя | Производство | Имя окружения | Любая строка! |
Тип окружения | Развертывание | Тип окружения | [Развертывание, Разработка] |
Версия dbt | 1.4 (последняя) | Используемая версия dbt | Любая версия dbt из выпадающего списка |
По умолчанию использовать пользовательскую ветку | ☑️ | Определяет, использовать ли ветку, отличную от основной ветки репозитория | См. ниже |
Пользовательская ветка | dev | Имя пользовательской ветки | См. ниже |
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
.
Следующий код является примером типов атрибутов, которые вы можете добавить в текстовое поле Расширенные атрибуты:
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:
- Перейдите в Deploy -> Environments
- Нажмите Create Environment.
- Выберите Development как тип среды.
- Заполните поля в разделах General Settings и Development Credentials.
- Нажмите Save, чтобы создать среду.
Установка учетных данных разработчика
Чтобы использовать dbt Cloud IDE или dbt Cloud CLI, каждому разработчику необходимо настроить персональные учетные данные для разработки для подключения к вашему хранилищу данных в их Profile Settings. Это позволяет вам установить отдельную целевую информацию и поддерживать индивидуальные учетные данные для подключения к вашему хранилищу.
Среда развертывания
Среды развертывания в dbt Cloud необходимы для выполнения запланированных заданий и использования других функций (например, различных рабочих пространств для разных задач). Вы можете иметь множество сред в одном проекте dbt Cloud, что позволяет настроить каждое пространство в соответствии с различными потребностями (такими как эксперименты или тестирование).
Хотя вы можете иметь множество сред, только одна из них может быть "основной" средой развертывания. Это будет считаться вашей "производственной" средой и представлять "источник истины" вашего проекта, что означает, что здесь находятся ваши наиболее надежные и окончательные преобразования данных.
Чтобы узнать больше о средах развертывания dbt Cloud и о том, как их настроить, обратитесь к странице Среды развертывания. Для получения руководства по лучшим практикам прочитайте Лучшие практики среды dbt Cloud для получения дополнительной информации.