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

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

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

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

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

Узнайте, как управлять средами dbt Cloud

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

Узнайте больше о средах разработки и развертывания в средах dbt Cloud.

Существует три типа сред развертывания:

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

Мы настоятельно рекомендуем использовать тип среды Производственная для окончательных, достоверных данных развертывания. Может быть только одна среда, отмеченная для окончательных производственных рабочих процессов, и мы не рекомендуем использовать Общую среду для этой цели.

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

Чтобы создать новую среду развертывания dbt Cloud, перейдите в Deploy -> Environments и нажмите Create Environment. Выберите Deployment в качестве типа среды. Опция будет недоступна, если у вас уже есть среда разработки.

Перейдите в Deploy -> Environments, чтобы создать среду развертыванияПерейдите в Deploy -> Environments, чтобы создать среду развертывания

Установить как производственную среду

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

Установите вашу производственную среду в качестве среды по умолчанию в настройках средыУстановите вашу производственную среду в качестве среды по умолчанию в настройках среды

Семантический слой

Для клиентов, использующих семантический слой dbt, следующая секция настроек среды — это конфигурации семантического слоя. Руководство по настройке семантического слоя содержит самые актуальные инструкции по настройке.

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

Промежуточная среда

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

Git-рабочий процесс

Вы можете подойти к этому несколькими способами, но самый простой — это настроить промежуточную среду с долгоживущей веткой (например, staging), аналогичной, но отдельной от основной ветки (например, main).

В этом сценарии рабочие процессы будут идеальным образом перемещаться вверх по потоку от среды разработки -> промежуточной среды -> производственной среды, с ветками разработчиков, питающимися в ветку staging, а затем в конечном итоге сливающимися в main. Во многих случаях ветки main и staging будут идентичны после слияния и останутся такими до следующей партии изменений из веток development, готовых к повышению. Мы рекомендуем устанавливать правила защиты веток на staging, аналогичные main.

Некоторые клиенты предпочитают подключать разработку и промежуточную среду к своей ветке main, а затем регулярно создавать ветки релизов (ежедневно или еженедельно), которые питаются в производственную среду.

Зачем использовать промежуточную среду

Основные причины использования промежуточной среды:

  1. Дополнительный уровень проверки перед развертыванием изменений в производственной среде. Вы можете развертывать, тестировать и исследовать ваши dbt модели в промежуточной среде.
  2. Четкая изоляция между рабочими процессами разработки и производственными данными. Это позволяет разработчикам работать с использованием метаданных, используя такие функции, как отложенное выполнение и перекрестные ссылки между проектами, без доступа к данным в производственных развертываниях.
  3. Предоставление разработчикам возможности создавать, редактировать и запускать произвольные задачи в промежуточной среде, при этом сохраняя производственную среду заблокированной с использованием разрешений на уровне среды.

Условная конфигурация источников позволяет вам указывать на "prod" или "non-prod" исходные данные в зависимости от среды, в которой вы работаете. Например, этот источник будет указывать на <DATABASE>.sensitive_source.table_with_pii, где <DATABASE> динамически разрешается на основе переменной среды.

models/sources.yml
sources:
- name: sensitive_source
database: "{{ env_var('SENSITIVE_SOURCE_DATABASE') }}"
tables:
- name: table_with_pii

Существует ровно один источник (sensitive_source), и все downstream dbt модели выбирают из него как {{ source('sensitive_source', 'table_with_pii') }}. Код в вашем проекте и форма DAG остаются последовательными во всех средах. Настраивая это таким образом, а не дублируя источники, вы получаете некоторые важные преимущества.

Перекрестные ссылки между проектами в dbt Mesh: Предположим, у вас есть Project B, который является downstream от Project A с настроенными перекрестными ссылками между проектами в моделях. Когда разработчики работают в IDE для Project B, перекрестные ссылки будут разрешаться в промежуточную среду Project A, а не в производственную. Вы получите те же результаты с этими ссылками, когда задачи выполняются в промежуточной среде. Только производственная среда будет ссылаться на производственные данные, сохраняя данные и доступ изолированными без необходимости в отдельных проектах.

Быстрая разработка с помощью отложенного выполнения: Если у Project B также есть промежуточное развертывание, то ссылки на не построенные upstream модели в Project B будут разрешаться в эту среду, используя отложенное выполнение, а не разрешаться в модели в производственной среде. Это экономит время разработчиков и затраты на хранилище, сохраняя при этом четкое разделение сред.

Наконец, промежуточная среда имеет свой собственный вид в dbt Explorer, предоставляя вам полный обзор ваших производственных и пред-производственных данных.

Исследуйте в промежуточной средеИсследуйте в промежуточной среде

Создание промежуточной среды

В dbt Cloud перейдите в Deploy -> Environments и нажмите Create Environment. Выберите Deployment в качестве типа среды. Опция будет недоступна, если у вас уже есть среда разработки.

Создайте промежуточную средуСоздайте промежуточную среду

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

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

Подключение для развертывания

Подключения к хранилищу

Подключения к хранилищу устанавливаются на уровне проекта для учетных записей dbt Cloud, и каждый проект может иметь одно подключение (учетная запись Snowflake, хост Redshift, проект Bigquery, хост Databricks и т.д.). Некоторые детали этого подключения (базы данных/схемы и т.д.) могут быть переопределены в этой секции настроек среды dbt Cloud.

Эта секция определяет точное местоположение в вашем хранилище, на которое dbt должен нацелиться при создании объектов хранилища! Эта секция будет выглядеть немного по-разному в зависимости от вашего поставщика хранилища.

Для всех хранилищ используйте расширенные атрибуты, чтобы переопределить отсутствующие или неактивные (серые) настройки.

Эта секция не появится, если вы используете Postgres, так как все значения выводятся из подключения проекта. Используйте расширенные атрибуты, чтобы переопределить эти значения.

Учетные данные для развертывания

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

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

Настройки учетных данных для развертывания PostgresНастройки учетных данных для развертывания Postgres

Редактируемые поля

  • Имя пользователя: Имя пользователя Postgres (скорее всего, учетная запись службы)
  • Пароль: Пароль Postgres для указанного пользователя
  • Схема: Целевая схема

Связанные документы

0