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

Переход с dbt Core на платформу dbt: с чего начать

Назад к гайдам Общее время выполнения: 3-4 часа
Migration
dbt Core
dbt platform
Intermediate
Menu

    Введение

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

    Ознакомьтесь с нашей серией из трёх руководств, посвящённых переходу от dbt Core к dbt. Эта серия идеально подойдёт пользователям, которые стремятся к более упорядоченным рабочим процессам и расширенным возможностям аналитики:

    Руководство
    Информация
    Аудитория
    Переход с dbt Core на dbt platform: что нужно знатьУзнайте о ключевых аспектах и подходах, которые важно учитывать при переходе с dbt Core на dbt platform.Тимлиды
    Администраторы
    Переход с dbt Core на dbt platform: с чего начатьОзнакомьтесь с шагами, необходимыми для перехода с dbt Core на dbt platform.Разработчики
    Инженеры данных
    Аналитики данных
    Переход с dbt Core на dbt platform: советы по оптимизацииУзнайте, как оптимизировать работу с dbt, рассмотрев типовые сценарии и полезные рекомендации.Для всех
    Loading table...

    Почему стоит перейти на dbt platform?

    Если ваша команда сейчас использует dbt Core, вы можете читать это руководство по следующим причинам:

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

    Переход с dbt Core на dbt упрощает рабочие процессы, предоставляя полностью управляемую среду, которая улучшает совместную работу, безопасность и оркестрацию. С dbt вы получаете доступ к таким возможностям, как кросс-командное взаимодействие (dbt Mesh), управление версиями, упрощённый CI/CD, Catalog для получения всесторонних инсайтов и многое другое — всё это облегчает управление сложными dbt-развёртываниями и позволяет эффективно масштабировать ваши data‑workflow.

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

     Что такое dbt и dbt Core?
    • dbt — это самый быстрый и надежный способ развертывания dbt. Он позволяет разрабатывать, тестировать, разворачивать и исследовать дата‑продукты с помощью единого полностью управляемого сервиса. Также он поддерживает:
      • Процессы разработки, адаптированные под разные роли (Studio IDE или Cloud CLI)
      • Готовые «из коробки» CI/CD‑процессы
      • Semantic Layer для согласованных метрик
      • Доменно‑ориентированное владение данными с использованием мультипроектных конфигураций dbt Mesh
      • Catalog для более простого поиска и понимания данных

    Подробнее см. возможности dbt.

    • dbt Core — это инструмент с открытым исходным кодом, который позволяет командам по работе с данными описывать и выполнять преобразования данных в облачном хранилище данных, следуя лучшим практикам analytics engineering. Хотя такой подход хорошо подходит для «одиночных игроков» и небольших технических команд, вся разработка ведется через интерфейс командной строки, а продакшн‑развертывания необходимо самостоятельно хостить и поддерживать. Это требует значительных и дорогостоящих усилий, которые со временем накапливаются при поддержке и масштабировании.

    Чему вы научитесь

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

    Предварительные требования

    Настройка аккаунта

    В этом разделе описаны шаги по настройке вашей учетной записи dbt и ее конфигурации для вашей команды.

    1. Создайте учетную запись dbt.

    2. Предоставьте пользователям доступ и пригласите пользователей в вашу учетную запись и проект dbt.

    3. Настройте Single Sign-On (SSO) или Role-based access control (RBAC) для удобного и безопасного доступа. EnterpriseEnterprise +

      • Это устраняет необходимость хранить пароли и секретные переменные окружения локально.

    Дополнительная конфигурация

    Изучите эти дополнительные конфигурации для улучшения производительности и надежности:

    1. В Настройках аккаунта включите частичный парсинг, чтобы перепарсить только измененные файлы, экономя время.

    2. В разделе Account settings включите Git repo caching для повышения надежности заданий и защиты от сбоев сторонних сервисов. EnterpriseEnterprise +

    Настройка платформы данных

    В этом разделе описываются ключевые моменты и подходы к подключению вашей платформы данных к dbt.

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

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

    Дополнительная конфигурация

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

    1. Используйте OAuth connections, которые обеспечивают безопасную аутентификацию с использованием SSO вашей платформы данных. EnterpriseEnterprise +

    Настройка Git

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

    1. Убедитесь, что ваш проект dbt находится в репозитории Git.

    2. В Account settings выберите Integrations, чтобы подключить ваш репозиторий Git к dbt:

      • (Рекомендуется) Подключение с помощью одной из нативных интеграций в dbt (например, GitHub, GitLab и Azure DevOps).

        Этот способ предпочтителен благодаря своей простоте, функциям безопасности (включая безопасную авторизацию OAuth и автоматизированные процессы, такие как CI-сборки при pull request), а также общей удобству использования.

      • Импортировать репозиторий Git из любого допустимого Git URL, который указывает на проект dbt.

    Настройка разработчика

    В этом разделе описываются конфигурации для разработки, которые понадобятся вам для проекта dbt. В рамках раздела рассматриваются следующие категории:

    Окружения dbt

    Наиболее распространенные среды данных — это производственная, промежуточная и среда разработки. Способ, которым dbt Core управляет средами, заключается в использовании target, которые представляют собой различные наборы деталей подключения.

    Окружения dbt идут дальше за счёт следующего:

    • Интеграции с такими возможностями, как планирование заданий или контроль версий, что упрощает управление полным жизненным циклом ваших dbt‑проектов в рамках одной платформы.
    • Упрощения процесса переключения между контекстами разработки, стейджинга и продакшена.
    • Возможности легко настраивать окружения через UI dbt вместо ручного редактирования файла profiles.yml. Вы также можете задать или кастомизировать имена target’ов в dbt.
    • Добавления атрибутов profiles.yml в настройки окружений dbt с помощью Extended Attributes.
    • Использования кэширования Git‑репозиториев для защиты от сбоев сторонних сервисов, ошибок аутентификации Git и других проблем. EnterpriseEnterprise +

    Начальные шаги настройки

    1. Настройка окружения разработки — Создайте окружение development и учётные данные для разработки. Это необходимо, чтобы получить доступ к вашему dbt‑проекту и начать разработку.

    2. Версия dbt Core — В вашем окружении dbt выберите release track для регулярных обновлений версии dbt. Если ваша команда планирует использовать и dbt Core, и dbt для разработки или деплоя dbt‑проекта, вы можете выполнить команду dbt --version в командной строке, чтобы узнать, какую версию dbt Core вы используете.

      • При использовании dbt Core вам нужно самостоятельно следить за версией и управлять обновлениями. При использовании dbt рекомендуется использовать release tracks, чтобы не заниматься этим вручную.
    3. Подключение к вашей платформе данных — При использовании dbt вы можете подключиться к вашей платформе данных напрямую через UI.

      • Каждое окружение примерно соответствует одной записи в файле profiles.yml. Это означает, что файл profiles.yml в проекте вам не нужен.
    4. Инструменты разработки — Настройте рабочее пространство для разработки с помощью CLI dbt (интерфейс командной строки или редактор кода) или Studio IDE (в браузере), чтобы писать код dbt, тестировать, запускать и версионировать его в удобном для вас инструменте.

      • Если ранее у вас был установлен dbt Core, в документации по установке CLI dbt есть дополнительная информация о том, как установить CLI dbt, создать алиасы или удалить dbt Core для более плавного перехода.

    Дополнительная конфигурация

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

    1. Кастомные имена целей — Использование custom target.names в ваших проектах dbt помогает идентифицировать различные среды (например, разработка, промежуточная и производственная). Хотя вы можете указать значения custom target.name в ваших учетных данных разработчика или настройке оркестрации, мы рекомендуем использовать переменные окружения как предпочтительный метод. Они предлагают более ясный способ управления различными средами и лучше поддерживаются функцией частичного парсинга dbt, в отличие от использования логики {{ target }}, которая предназначена для определения подключения к хранилищу данных.

    Команды dbt

    1. Ознакомьтесь с командами dbt, которые поддерживаются для разработки в dbt. Например, dbt init не требуется в dbt, так как вы можете создать новый проект напрямую в dbt.

    Переменные окружения

    В этом разделе объясняется, как настраивать и управлять переменными окружения dbt для вашего проекта. Рассматриваются следующие категории:

    В dbt вы можете задавать переменные окружения через пользовательский интерфейс (UI) dbt. Подробнее см. в разделе Настройка переменных окружения.

    В dbt Core переменные окружения или функция env_var определяются вручную разработчиком или в внешнем приложении, выполняющем dbt.

    Переменные окружения в dbt

    • Переменные окружения dbt должны иметь префикс DBT_ (включая DBT_ENV_CUSTOM_ENV_ или DBT_ENV_SECRET).
    • Если ваши переменные окружения dbt Core не следуют этому соглашению об именовании, выполните «find and replace» в вашем проекте, чтобы убедиться, что все ссылки на эти переменные окружения используют корректные соглашения об именовании.
    • dbt обеспечивает защиту переменных окружения, которые позволяют более гибко настраивать подключения к хранилищам данных или интеграции с git‑провайдерами, предлагая дополнительные меры для чувствительных значений — например, использование префикса DBT_ENV_SECRET для сокрытия таких ключей в логах и пользовательском интерфейсе.
    Установка значений на уровне проекта и средыУстановка значений на уровне проекта и среды

    Порядок приоритета переменных окружения dbt

    Переменные окружения в dbt управляются с помощью четкого порядка приоритета, который позволяет пользователям задавать значения на четырех уровнях (от высшего к низшему приоритету):

    • Уровень задания (job override) или в Studio IDE для отдельного разработчика (personal override). Наивысший приоритет
    • Уровень окружения, который может быть переопределен уровнем задания или персональным переопределением.
    • Значение по умолчанию для всего проекта, которое может быть переопределено уровнем окружения, уровнем задания или персональным переопределением.
    • Необязательный аргумент по умолчанию, передаваемый в Jinja-функцию env_var в коде. Наименьший приоритет
    Порядок приоритета переменных окруженияПорядок приоритета переменных окружения

    Настройка переменных окружения в dbt

    • Чтобы установить эти переменные для всего проекта или конкретных сред, перейдите в Развертывание > Среды > вкладка Переменные окружения.
    • Чтобы установить эти переменные на уровне задания, перейдите в Развертывание > Задания > Выберите ваше задание > Настройки > Расширенные настройки.
    • Чтобы установить эти переменные на уровне личного переопределения, перейдите в Настройки профиля > Учетные данные > Выберите ваш проект > Переменные окружения.

    Настройка оркестрации

    В этом разделе описываются соображения и методы настройки сред и заданий dbt для оркестрации. В рамках раздела рассматриваются следующие категории:

    Среды dbt

    Чтобы использовать планировщик заданий dbt, настройте одну среду как продакшн‑среду. Это будет среда deployment. Вы можете создать несколько сред для разных этапов конвейера развертывания, например для разработки, staging/QA и production.

    Начальные шаги настройки

    1. Версия dbt Core — В настройках среды сконфигурируйте dbt с той же версией dbt Core.

      • После завершения полной миграции мы рекомендуем перевести ваши среды на release tracks, чтобы всегда получать самые новые возможности и улучшения. Это нужно сделать только один раз.
    2. Настройка заданийСоздайте задания для плановых или событийных dbt‑задач. Вы можете использовать выполнение по cron, ручной запуск, запуск по pull request или триггер по завершении другого задания.

    Дополнительная конфигурация

    Изучите следующие дополнительные настройки, чтобы ещё больше оптимизировать оркестрацию в dbt:

    1. Пользовательские имена target — Используйте переменные окружения, чтобы задать custom target.name для каждого соответствующего задания dbt на уровне среды.

    2. Команды dbt — Добавьте необходимые команды dbt для выполнения запусков заданий dbt.

    3. Уведомления — Настройте уведомления, настроив оповещения по электронной почте и Slack для мониторинга ваших заданий.

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

    5. API access — Создайте API auth tokens и при необходимости получите доступ к dbt APIs. StarterEnterprise

    6. Catalog — Если вы используете Catalog и запускаете production‑джобы с помощью внешнего оркестратора, убедитесь, что ваши production‑джобы выполняют dbt run или dbt build, чтобы обновлять и просматривать модели и их metadata в Catalog. Запуск одного лишь dbt compile не обновляет метаданные моделей. Кроме того, такие возможности, как lineage на уровне колонок, также требуют наличия метаданных каталога, которые создаются при выполнении dbt docs generate. StarterEnterprise

    Настройка CI/CD

    Создание собственного решения для эффективной проверки кода при открытии pull request — это сложно. С помощью dbt вы можете включить continuous integration / continuous deployment (CI/CD) и настроить dbt так, чтобы он запускал ваши dbt‑проекты во временной схеме при появлении новых коммитов в открытых pull request.

    Workflow of continuous integration in dbtWorkflow of continuous integration in dbt

    Эта функция сборки при запросе на слияние — отличный способ поймать ошибки до развертывания в производственной среде и важный инструмент для специалистов по данным.

    1. Настройте интеграцию с нативным приложением Git (например, Azure DevOps, GitHub, GitLab) и CI‑окружением в dbt.
    2. Создайте CI/CD‑задачу, чтобы автоматизировать проверки качества перед развертыванием кода в продакшене.
    3. Запускайте ваши задачи в продакшен‑окружении, чтобы полностью реализовать CI/CD. В дальнейшем pull request’ы также будут использовать результаты последних продакшен‑запусков для сравнения.

    Разработка и исследование моделей

    В этом разделе вы сможете проверить, корректно ли ваши модели запускаются или компилируются в выбранном вами инструменте для разработки: Studio IDE или dbt CLI.

    Вы захотите убедиться, что настроили вашу среду разработки и учетные данные.

    1. В выбранном вами инструменте для разработки вы можете просмотреть свой dbt‑проект, убедиться, что он настроен корректно, и запустить несколько dbt commands:

      • Запустите dbt compile, чтобы убедиться, что проект корректно компилируется.
      • Запустите несколько моделей в Studio IDE или через dbt CLI, чтобы убедиться, что в процессе разработки вы получаете корректные результаты.
    2. После того как ваша первая задача успешно отработает в production‑окружении, используйте Catalog, чтобы просмотреть resources вашего проекта (такие как модели, тесты и метрики) и их data lineage, чтобы лучше понять текущее состояние проекта в production. StarterEnterprise

    Что дальше?

    Поздравляем с завершением первой части перехода на dbt 🎉!

    Вы узнали:

    • как настроить учетную запись dbt
    • как подключить вашу платформу данных и репозиторий Git
    • как настроить среды разработки, оркестрации и CI/CD
    • как настроить переменные окружения и проверить ваши модели

    В качестве следующих шагов вы можете продолжить изучение нашей серии из трех руководств по переходу с dbt Core на dbt:

    Руководство
    Информация
    Аудитория
    Переход с dbt Core на dbt platform: что нужно знатьУзнайте о ключевых аспектах и подходах, которые важно учитывать при переходе с dbt Core на dbt platform.Тимлиды
    Администраторы
    Переход с dbt Core на dbt platform: с чего начатьОзнакомьтесь с шагами, необходимыми для перехода с dbt Core на dbt platform.Разработчики
    Инженеры данных
    Аналитики данных
    Переход с dbt Core на dbt platform: советы по оптимизацииУзнайте, как оптимизировать работу с dbt, рассмотрев типовые сценарии и полезные рекомендации.Для всех
    Loading table...

    Почему стоит перейти на dbt platform?

    Если ваша команда сейчас использует dbt Core, вы можете читать это руководство по следующим причинам:

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

    Переход с dbt Core на dbt упрощает рабочие процессы, предоставляя полностью управляемую среду, которая улучшает совместную работу, безопасность и оркестрацию. С dbt вы получаете доступ к таким возможностям, как кросс-командное взаимодействие (dbt Mesh), управление версиями, упрощённый CI/CD, Catalog для получения всесторонних инсайтов и многое другое — всё это облегчает управление сложными dbt-развёртываниями и позволяет эффективно масштабировать ваши data‑workflow.

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

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

    0