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

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

Migration
dbt Core
dbt platform
Intermediate
Menu

    Введение

    Переход с dbt Core на dbt упрощает workflows в analytics engineering, позволяя командам разрабатывать, тестировать, деплоить и исследовать data products в рамках единого полностью управляемого сервиса.

    Изучите нашу серию руководств из трех частей о переходе с 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. Он позволяет разрабатывать, тестировать, деплоить и исследовать data products в рамках единого полностью управляемого сервиса. Также он поддерживает:
      • инструменты разработки, адаптированные под разные роли (Studio IDE или Cloud CLI)
      • готовые CI/CD workflows
      • Semantic Layer для консистентных метрик
      • доменное владение данными с multi-project настройкой Mesh
      • Catalog для более простого поиска и понимания данных

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

    • dbt Core — open-source инструмент, который позволяет командам данных определять и выполнять трансформации данных в облачном data warehouse, следуя best practices analytics engineering. Хотя это может хорошо работать для «одиночек» и небольших технических команд, вся разработка происходит через командную строку, а production-деплойменты нужно хостить и обслуживать самостоятельно. Это требует значительной (и со временем нарастающей) работы и затрат на поддержку и масштабирование.

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

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

    В руководстве описаны следующие шаги:

    • Важные аспекты: узнайте о самых важных вещах, которые нужно учесть при переходе с Core на Cloud.
    • Спланируйте переход: учитывайте такие вопросы, как роли и права пользователей, порядок онбординга, текущие workflows и т. д.
    • Перейдите на dbt: изучите шаги перехода вашего проекта dbt Core в dbt, включая настройку аккаунта, data platform и репозитория Git.
    • Тестирование и валидация: узнайте, как обеспечить корректность моделей и производительность после перехода.
    • Переход и обучение: узнайте, как полностью перейти на dbt и какое обучение и поддержку может потребоваться организовать.
    • Итоги: краткое резюме ключевых выводов и того, чему вы научились в этом руководстве.
    • Что дальше?: что ожидать в следующих руководствах.

    Важные аспекты

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

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

    В этом руководстве собраны технические изменения и стратегии командной работы, которые важно знать при переходе проекта с dbt Core на dbt. Каждый self-managed deployment dbt Core выглядит немного по‑разному, но после сотен миграций у команд встречается много общего.

    Самые важные вещи, которые нужно учесть при переходе с dbt Core на dbt:

    • Как устроена ваша команда? Есть ли естественное разделение по доменам?
    • Должен быть один проект или несколько? Какие dbt-ресурсы вы хотите стандартизировать и держать централизованно?
    • У кого должны быть права на просмотр, разработку и администрирование?
    • Как вы планируете запуск dbt-моделей в production?
    • Как сейчас вы управляете Continuous integration/Continuous deployment (CI/CD) логических изменений (если вообще управляете)?
    • Как вашим разработчикам данных удобнее работать?
    • Как вы управляете разными data environments и разным поведением в этих окружениях?

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

    • коллаборация между командами
    • контроль доступа
    • оркестрация
    • изолированные data environments

    Если вы разворачивали dbt Core самостоятельно, у вас, вероятно, сложились другие ответы.

    Спланируйте переход

    Планируя переход, оцените ваш workflow и структуру команды, чтобы обеспечить плавный процесс. Ниже — ключевые моменты, которые стоит учесть:

     Начните с малого, чтобы снизить риски и быстрее учиться

    Вам не нужно переносить сразу все команды и все workflows всех разработчиков. Многие клиенты с крупными dbt deployment начинают с переноса одной команды и одного проекта.

    Когда преимущества консолидированной платформы станут очевидны, переносите остальные команды и workflows. Долгосрочные «гибридные» deployment могут быть сложными, но как временный этап это может быть разумным вариантом.

     Роли пользователей и ответственность

    Оцените пользователей и роли (personas) до перехода, во время и после него.

    • Администраторы: спланируйте новые механизмы контроля доступа в dbt — например, какие команды могут управлять собой сами, а что должно быть стандартизировано. Определите, кто будет отвечать за настройку и поддержку проектов, подключений к data platform и environments.
    • Разработчики данных (data analysts, data engineers, analytics engineers, business analysts): определите порядок онбординга, адаптацию workflow в dbt, обучение работе с Cloud CLI или Studio IDE, а также изменения ролей.
    • Потребители данных: исследуйте данные с помощью Catalog, чтобы просматривать ресурсы проекта (например модели, тесты и метрики) и их lineage, лучше понимая текущее production-состояние. StarterEnterprise
     Порядок онбординга

    Если у вас несколько команд dbt‑разработчиков, подумайте, с кого начинать онбординг в dbt:

    • Начните с downstream‑команд (например, команд внутри бизнеса), которым может быть удобнее разрабатывать в Studio IDE (менее техническим пользователям) и использовать функции шеринга (например auto‑deferral и Catalog) для стейкхолдеров; а затем переходите к более техническим командам.
    • Подумайте о настройке CI job в dbt (даже до development или production jobs), чтобы упростить workflow разработки. Это особенно полезно, если CI‑процесса сейчас нет.
     Проанализируйте текущие workflows, процессы ревью и структуру команды

    Оцените, как dbt может упростить разработку, оркестрацию и тестирование:

    • Разработка: разрабатывайте dbt‑модели, собирайте, тестируйте, запускайте и ведите version control, используя Cloud CLI (CLI или code editor) или Studio IDE (в браузере).
    • Оркестрация: создавайте кастомные расписания для production jobs — по дням недели, времени суток или с заданным интервалом.
      • Настройте CI job для повышения эффективности разработчиков и CD jobs для деплоя изменений сразу после merge.
      • Связывайте deploy jobs, триггеря job, когда другой завершился.
      • Для максимальной гибкости используйте dbt API, чтобы триггерить jobs. Это уместно, когда вы хотите интегрировать выполнение dbt с другими data workflows.
    • Continuous integration (CI): используйте CI jobs, чтобы запускать dbt‑проект во временной схеме, когда новые коммиты пушатся в открытые pull requests. Такой build‑on‑PR отлично помогает ловить баги до деплоя в production.
      • Для многих команд CI в dbt — большое улучшение по сравнению с прежними workflows разработки.
    • Как вы сейчас определяете тесты?: хотя тестирование production‑данных важно, это не самый эффективный способ ловить логические ошибки, которые разработчики вносят в изменения. Вы можете использовать unit testing, чтобы валидировать логику SQL‑моделей на небольшом наборе статических входных данных до материализации полной модели в production.
     Разберитесь с контролем доступа

    Переходите на механизмы access control в dbt, чтобы обеспечить безопасность и корректное управление доступами. Администраторы dbt могут использовать модель прав доступа dbt для управления доступом пользователей внутри аккаунта dbt:

    • License-based access controls: пользователям назначаются типы лицензий на уровне аккаунта. Эти лицензии определяют, что пользователь может делать в приложении: просматривать метаданные проекта, разрабатывать изменения в проектах или администрировать доступ к проектам.
    • Role-based Access Control (RBAC): пользователи добавляются в groups с конкретными правами на конкретные проекты или на все проекты в аккаунте. Пользователь может состоять в нескольких groups, и эти groups могут иметь права на несколько проектов. EnterpriseEnterprise +
     Управляйте окружениями

    Если вам требуется изоляция между production и pre-production окружениями данных из‑за чувствительных данных, dbt поддерживает Development, Staging и Production environments.

    Это дает разработчикам преимущества улучшенного workflow и при этом обеспечивает изоляцию между Staging и Production, а также блокирует права на Prod.

    Переход на dbt

    Это руководство — ваш roadmap для продумывания стратегий миграции и того, как может выглядеть переход с dbt Core на dbt.

    После того как вы оценили аспекты и спланировали переход, вы можете начать перенос проекта dbt Core в dbt:

    Для более детального сравнения dbt Core и dbt см. How dbt compares with dbt Core.

    Тестирование и валидация

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

    • Проверьте dbt‑проект: убедитесь, что проект компилируется корректно и вы можете запускать команды. Проверьте корректность моделей и мониторьте производительность после перехода.
    • Начните cutover: вы можете начать cutover на dbt, создав job в dbt с командами, которые запускают только небольшой поднабор DAG. Проверьте, что таблицы заполняются в ожидаемых database/schema. Затем постепенно расширяйте область запуска, включая больше частей DAG, по мере роста уверенности в результатах.
    • Точное тестирование: используйте unit testing, чтобы валидировать логику SQL‑моделей на небольшом наборе статических входных данных до материализации полной модели в production.
    • Доступы и права: пересмотрите и при необходимости скорректируйте access controls и permissions в dbt, чтобы соблюдать требования безопасности и защищать данные.

    Переход и обучение

    Когда вы убедились, что оркестрация и CI/CD в dbt работают как ожидается, следует поставить на паузу текущий orchestration tool и остановить или обновить текущий CI/CD процесс. Это не относится к случаям, когда вы продолжаете использовать внешний оркестратор (например Airflow) и заменили выполнение dbt-core на выполнение через dbt (через API).

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

    • Release tracks: выберите release track для автоматических обновлений версии dbt с подходящей для команды частотой — это избавляет от ручных обновлений и снижает риск расхождения версий. Также это дает ранний доступ к новой функциональности, раньше, чем в dbt Core.
    • Инструменты разработки: используйте dbt CLI или Studio IDE, чтобы собирать, тестировать, запускать и вести version control dbt‑проектов.
    • Документация и Source freshness: автоматизируйте хранение документации и отслеживайте source freshness в dbt, что упрощает поддержку проекта.
    • Уведомления и логи: получайте мгновенные уведомления о падениях jobs со ссылками на детали job. Используйте подробные логи всех запусков для диагностики.
    • CI/CD: используйте функцию CI/CD в dbt, чтобы запускать dbt‑проект во временной схеме каждый раз, когда новые коммиты пушатся в открытые pull requests. Это помогает ловить ошибки до деплоя в production.

    После перехода

    Теперь, когда вы выбрали dbt как платформу, у вас открываются возможности для упрощения коллаборации, повышения эффективности workflow и использования мощных возможностей для команд analytics engineering. Вот дополнительные возможности, которые помогут раскрыть потенциал dbt:

    • Audit logs: используйте audit logs, чтобы просматривать действия людей в организации. Audit logs содержат аудитированные события пользователей и системы в реальном времени. Вы также можете экспортировать всю активность (за пределами 90 дней, доступных для просмотра в dbt). EnterpriseEnterprise +
    • API dbt: используйте мощные API dbt, чтобы программно создавать, читать, обновлять и удалять (CRUD) проекты/jobs/environments. dbt Administrative API и Terraform provider помогают хранить конфигурации и управлять ими программно. Discovery API предоставляет широкие возможности запросов к метаданным — например данные о jobs, конфигурации моделей, использование и общее состояние проекта. StarterEnterprise
    • Catalog: используйте Catalog, чтобы смотреть resources проекта (например модели, тесты и метрики) и их lineage, чтобы лучше понимать текущее production‑состояние (после успешного job в Production environment). StarterEnterprise
    • dbt Semantic Layer: dbt Semantic Layer позволяет определять универсальные метрики поверх ваших моделей, а затем выполнять запросы к ним в BI‑инструменте. Это устраняет проблему несовпадающих метрик — появляется централизованный способ определять метрики и создавать видимость на каждом этапе data flow. StarterEnterprise
    • dbt Mesh: используйте dbt Mesh, чтобы шарить data models внутри организации, позволяя командам данных сотрудничать над общими моделями и переиспользовать работу других команд. EnterpriseEnterprise +

    Дополнительная помощь

    • Курсы dbt Learn: получите доступ к бесплатным видео‑курсам Learn dbt для обучения в удобном темпе.
    • dbt Community: присоединяйтесь к dbt Community, чтобы общаться с другими пользователями dbt, задавать вопросы и делиться best practices.
    • Команда поддержки dbt: наша команда поддержки dbt всегда готова помочь с проблемами dbt. Создайте тикет поддержки в dbt, и мы поможем!
    • Account management: для Enterprise‑аккаунтов доступна команда account management, которая помогает с troubleshooting и поддержкой управления аккаунтом. Book a demo, чтобы узнать больше. EnterpriseEnterprise +

    Итоги

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

    • Важные аспекты: понимание базовых шагов для успешной миграции, включая оценку текущей настройки и выявление ключевых факторов, связанных со структурой команды и потребностями workflow.

    • Планирование перехода: акцент на важности переработки workflow, ответственности по ролям и внедрения новых процессов, чтобы использовать коллаборативную и эффективную среду dbt.

    • Переход на dbt: ссылка на руководство, где описаны технические шаги перехода проекта dbt Core в dbt, включая настройку аккаунта, data platform и репозитория Git.

    • Тестирование и валидация: акцент на технической стороне перехода, включая тестирование и валидацию dbt‑проектов в экосистеме dbt, чтобы обеспечить целостность данных и производительность.

    • Переход и обучение: полезные рекомендации по переходу, обучению и онбордингу команды. Используйте возможности dbt — от инструментов разработки (dbt CLI и Studio IDE) до продвинутых функций, таких как Catalog, Semantic Layer и Mesh.

    Что дальше?

    Поздравляем с завершением этого руководства — надеемся, оно помогло вам понять, какие аспекты важно учесть, чтобы лучше спланировать переход на 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.

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

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

    0