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

Переход с dbt Core на платформу dbt: советы по оптимизации

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. В этом руководстве собраны рекомендации и важные моменты, на которые стоит обратить внимание, в следующих областях:

    Адаптеры и подключения​

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

    Советы​

    • Управляйте версиями dbt и обеспечивайте совместную работу команды с помощью функции one-click в dbt, избавляясь от необходимости ручных обновлений и расхождений версий. Выберите release track для получения регулярных обновлений, чтобы всегда быть в курсе исправлений и (опционально) получать ранний доступ к новой функциональности для вашего dbt‑проекта.
    • dbt поддерживает широкий набор cloud providers, включая Snowflake, Databricks, BigQuery, Fabric и Redshift (и это лишь некоторые из них).
    • Используйте Extended Attributes, чтобы задать гибкий фрагмент profiles.yml в настройках окружения dbt. Это даёт больше контроля над окружениями (как для деплоя, так и для разработки) и расширяет возможности того, как dbt подключается к платформе данных в рамках конкретного окружения.
      • Например, если у вас есть поле в profiles.yml, которое вы хотели бы добавить в пользовательский интерфейс адаптера dbt, вы можете настроить его с помощью Extended Attributes.

    Предостережения​

    • Не все параметры доступны для адаптеров.
    • Проект может использовать только один тип хранилища.

    Инструменты разработки​

    dbt предоставляет специалистам по данным возможность разрабатывать в том инструменте, который им удобнее. Он поставляется с dbt CLI (локально) или Studio IDE (в браузере) для сборки, тестирования, запуска и версионирования ваших dbt‑проектов.

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

    Studio IDE​

    Веб‑интерфейс для сборки, тестирования, запуска и версионирования dbt‑проектов. Он компилирует dbt‑код в SQL и выполняет его напрямую в вашей базе данных. Studio IDE делает процесс разработки быстрым и удобным как для новых, так и для опытных специалистов по данным при создании и тестировании изменений.

    Кому может подойти Studio IDE?

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

    Ключевые особенности

    • В Studio IDE упрощена функциональность Git:
      • Создание feature-веток на основе ветки, настроенной в среде разработки.
      • Просмотр сохранённых, но ещё не закоммиченных изменений кода прямо в Studio IDE.
    • Форматирование или линтинг кода с помощью sqlfluff или sqlfmt. Также поддерживается добавление собственных правил линтинга.
    • Позволяет пользователям нативно использовать defer к production для метаданных прямо в рабочих процессах разработки, уменьшая количество создаваемых объектов.
    • Поддержка одновременного запуска нескольких dbt-команд с помощью безопасного параллельного выполнения — это функция, доступная в инфраструктуре dbt. В отличие от этого, dbt-core не поддерживает безопасное параллельное выполнение нескольких вызовов в рамках одного процесса.

    Studio IDE предоставляет упрощённый интерфейс, доступный всем пользователям независимо от их технической подготовки. Однако существуют возможности, которые намеренно недоступны в Studio IDE, поскольку основной акцент сделан на простоте и удобстве использования:

    • Предварительная проверка для автоматических проверок перед фиксацией кода пока недоступна.
    • Массовое создание файлов / взаимодействие с файловой системой недоступно.
    • Комбинирование/передача команд, таких как dbt run -s (bash command), недоступно.

    dbt CLI​

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

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

    Кому может подойти CLI dbt?

    • Специалистам по данным, привыкшим работать с определённым набором инструментов разработки.
    • Пользователям, которым нужен детальный контроль над процессами Git (например, pre-commit‑хуки для автоматических проверок перед коммитом кода).
    • Специалистам по данным, которым необходимо выполнять сложные операции, такие как массовая генерация файлов или специфические комбинации команд.

    Ключевые особенности

    • Позволяет пользователям запускать команды dbt в своей среде разработки dbt из локальной командной строки с минимальной настройкой.
    • Позволяет пользователям нативно defer to production метаданные непосредственно в рабочих процессах разработки, сокращая количество объектов.
    • Поддерживает одновременный запуск нескольких команд dbt с помощью safe parallel execution — функции, доступной в инфраструктуре dbt. В отличие от этого, dbt-core не поддерживает безопасное параллельное выполнение для нескольких запусков в рамках одного процесса.
    • Позволяет использовать расширения Visual Studio (VS) Code

    Оркестрация​

    dbt предоставляет мощные возможности оркестрации, которые позволяют с лёгкостью планировать, запускать и отслеживать dbt‑задачи. Ниже приведены несколько советов и предостережений, которые стоит учитывать при использовании функций оркестрации в dbt:

    Советы​

    • Включите partial parsing между джобами в dbt, чтобы значительно ускорить парсинг проекта за счёт обработки только изменённых файлов. Это оптимизирует производительность для крупных проектов.
    • Запускайте несколько CI/CD джобов одновременно — они не будут блокировать продакшн‑запуски. Планировщик джобов автоматически отменяет устаревшие запуски, когда в репозиторий отправляется новый коммит. Это происходит потому, что каждый PR запускается в собственной схеме.
    • dbt автоматически отменяет запланированный запуск, если предыдущий запуск всё ещё выполняется. Это предотвращает ненужные дублирующие выполнения.
    • Защитите себя и актуальность ваших данных от сбоев сторонних сервисов, включив кэширование Git‑репозитория в dbt, которое хранит кэш репозитория проекта. EnterpriseEnterprise +
    • Связывайте deploy‑джобы между проектами dbt, настроив джоб или используя Create Job API. StarterEnterprise
    • Перезапускайте ваши джобы с начала или с точки сбоя, если выполнение dbt‑джоба завершилось со статусом Error.

    Предостережения​

    • Чтобы автоматизировать настройку и конфигурацию вашей платформы dbt, вы можете хранить конфигурации джобов в виде кода в репозитории:
      • Ознакомьтесь с нашим Terraform provider.
      • В качестве альтернативы посмотрите репозиторий jobs-as-code — это инструмент для управления джобами dbt в виде чётко определённого YAML‑файла.
    • Пользователи dbt и внешние email‑адреса могут получать уведомления, если джоб завершился с ошибкой, успешно или был отменён. Чтобы получать уведомления о предупреждениях, вы можете создать webhook‑подписку и отправлять сообщения в Slack.

    dbt Mesh​

    Mesh помогает организациям со зрелыми и сложными пайплайнами трансформации данных в dbt повысить гибкость и производительность dbt‑проектов. Он позволяет использовать несколько взаимосвязанных dbt‑проектов вместо одного большого монолитного проекта.

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

    Ниже приведены советы и ограничения, которые стоит учитывать при использовании Mesh:

    Советы​

    • Для динамического разрешения межпроектных ссылок всем разработчикам необходимо работать в dbt (либо с dbt CLI, либо с Studio IDE). Межпроектные ссылки не поддерживаются нативно в dbt Core, за исключением варианта установки исходного кода апстрим‑проектов в виде пакетов.
    • Связывайте модели между проектами для модульного и масштабируемого подхода к развитию проекта и команд.
    • Управляйте доступом к вашим dbt‑моделям как внутри проекта, так и между проектами, используя:
      • Groups — организация узлов в вашем dbt DAG, которые имеют логическую связь, и назначение владельца для всей группы.
      • Model access — управление тем, какие другие модели или проекты могут ссылаться на данную модель.
      • Model versions — поддержка внедрения и вывода из использования моделей по мере их эволюции.
      • Model contracts — задание чётких ожиданий к форме данных, чтобы изменения данных выше по цепочке dbt или в логике проекта не нарушали работу downstream‑потребителей данных.
    • Используйте dbt-meshify, чтобы ускорить разбиение монолитного проекта на несколько отдельных проектов.

    Предостережения​

    • Чтобы использовать межпроектные ссылки в dbt, каждому dbt‑проекту должен соответствовать ровно один проект dbt. Мы настоятельно не рекомендуем определять несколько проектов для одной и той же кодовой базы, даже если вы пытаетесь управлять правами доступа, подключаться к разным хранилищам данных или разделять продакшн и непроизводственные данные. Хотя раньше это было необходимо, такие возможности, как Staging environments, RBAC на уровне окружений (coming soon) и Extended attributes, сделают это ненужным.
    • Зависимости между проектами являются однонаправленными, то есть направлены только в одну сторону. Это означает, что dbt проверяет наличие циклов между проектами (циклических зависимостей) и выдаёт ошибку, если они обнаружены. При этом мы рассматриваем возможность в будущем поддерживать двунаправленные зависимости между проектами — dbt по‑прежнему будет проверять циклы на уровне узлов, но позволит циклы на уровне проектов.
    • Все пользователи аккаунта могут просматривать публичные метаданные моделей, что помогает быстрее находить дата‑продукты. Это не связано с доступом к самим данным, который контролируется правами в хранилище данных. Для сценариев, где даже метаданные о переиспользуемом дата‑активе являются чувствительными, мы рассматриваем опциональное расширение для защищённых моделей.

    Дополнительные вопросы см. в разделе FAQ по Mesh.

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

    Используйте Semantic Layer, работающий на базе MetricFlow, чтобы создать единое представление бизнес‑метрик и обеспечить их согласованность во всех аналитических инструментах. Ниже приведены советы и ограничения, которые стоит учитывать при работе с Semantic Layer.

    Советы​

    • Определяйте семантические модели и метрики один раз в dbt с помощью Semantic Layer (на базе MetricFlow). Затем переиспользуйте их в различных аналитических платформах, снижая избыточность и количество ошибок.
    • Используйте API Semantic Layer для запросов метрик в downstream‑инструментах, чтобы получать согласованные и надежные показатели.
    • Подключайтесь к различным приложениям для работы с данными — от BI‑инструментов до ноутбуков, таблиц, каталогов данных и других — чтобы выполнять запросы к метрикам. Доступные интеграции включают Tableau, Google Sheets, Hex и другие.
    • Используйте exports, чтобы по расписанию записывать часто используемые запросы напрямую в вашу data‑платформу.

    Ограничения​

    • В настоящее время Semantic Layer поддерживает выполнение запросов только в окружении Deployment. Поддержка запросов в Development появится позже.
    • Запросы и команды семантического слоя можно выполнять в CLI dbt, однако выполнение запросов/команд семантического слоя в Studio IDE пока не поддерживается.
    • Semantic Layer не поддерживает использование Single sign-on (SSO) для production credentials Semantic Layer. При этом SSO поддерживается для пользовательских аккаунтов в среде разработки.

    Дополнительную информацию см. в разделе FAQ по Semantic Layer.

    dbt Catalog​

    Catalog расширяет ваши возможности по поиску, пониманию и отладке дата-активов за счёт богатых метаданных и визуализации lineage. Ниже приведены рекомендации и ограничения, которые стоит учитывать при использовании Catalog.

    Советы​

    • Используйте возможности поиска и фильтрации в Catalog, чтобы быстро находить модели, источники и тесты, тем самым упрощая рабочий процесс.
    • Просматривайте все разные проекты и публичные модели в аккаунте, где определены публичные модели и как они используются, чтобы лучше понимать кросс-проектные ресурсы.
    • Используйте функциональность Lenses — это слои, похожие на карты, для вашего DAG, доступные из графа lineage проекта. Lenses помогают глубже понять контекстные метаданные проекта в масштабе, особенно когда нужно выделить конкретную модель или подмножество моделей.
    • Получайте доступ к column-level lineage (CLL) для ресурсов в вашем dbt-проекте. EnterpriseEnterprise +

    Ограничения​

    • Для того чтобы Catalog начал заполнять информацию, в production-окружении деплоя должен быть выполнен как минимум один успешный job run.

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

    Дополнительную информацию смотрите в разделе Catalog FAQs.

    Что дальше?​

    Поздравляем с завершением руководства 🎉!

    Мы надеемся, что вы получили полезные рекомендации и практические советы, которые помогут вам в процессе перехода. Важно отметить, что переход с dbt Core на dbt — это не просто развитие ваших data‑проектов, а возможность выйти на новый уровень совместной работы, управления, эффективности и инноваций внутри команды.

    В качестве следующих шагов рекомендуем продолжить изучение нашей серии из трёх руководств, посвящённых переходу с 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 Learn для обучения по запросу в формате видео.
    • Наша служба поддержки всегда готова помочь вам с устранением проблем в dbt.
    • Присоединяйтесь к сообществу dbt, чтобы общаться с другими пользователями dbt, задавать вопросы и делиться лучшими практиками.
    • Подпишитесь на RSS-уведомления dbt
    • Для корпоративных аккаунтов доступна команда по управлению аккаунтами, которая помогает с решением технических вопросов и сопровождением аккаунта. Запросите демо, чтобы узнать больше.
    • Сравнение dbt и dbt Core с подробным разбором различий между dbt Core и dbt.

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

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

    0