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

Переход с 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