О dbt Mesh
Организации любого масштаба используют dbt для управления трансформациями данных — от небольших стартапов до крупных корпораций. По мере роста может становиться сложно координировать все организационные и технические требования заинтересованных сторон в рамках одного dbt‑проекта.
До недавнего времени также не существовало полноценного, «первоклассного» способа эффективно управлять зависимостями, управлением (governance) и рабочими процессами между несколькими dbt‑проектами.
Именно здесь появляется Mesh — он дает возможность командам по работе с данными работать независимо и совместно; делиться данными, кодом и лучшими практиками, не жертвуя безопасностью или автономностью.
Mesh — это не отдельный продукт, а паттерн, который становится возможным благодаря сочетанию нескольких возможностей dbt:
- Межпроектные ссылки - это базовая возможность, которая позволяет развертывать несколько проектов. Вызовы
{{ ref() }}теперь работают между проектами dbt на тарифных планах Enterprise и Enterprise+. - Catalog - платформа документации dbt на основе метаданных с полной поддержкой отслеживания происхождения данных между проектами.
- Управление - возможности управления dbt позволяют контролировать доступ к моделям dbt как внутри проектов, так и между ними.
- Группы - с помощью групп можно объединять узлы DAG в dbt, имеющие логическую связь (например, по функциональной области), и назначать владельца всей группы.
- Доступ - настройки доступа позволяют контролировать, кто может ссылаться на модели.
- Версии моделей - при координации работы между проектами и командами мы рекомендуем рассматривать модели данных как стабильные API. Версионирование моделей — это механизм, позволяющий плавно внедрять новые версии моделей и выводить устаревшие из использования по мере их развития.
- Контракты моделей - контракты данных задают явные требования к структуре данных, чтобы изменения данных в источниках, предшествующих dbt, или в логике проекта не нарушали работу продуктов данных у нижестоящих потребителей.
Когда стоит использовать dbt Mesh?
Мультипроектная архитектура помогает организациям со зрелыми и сложными процессами трансформации в dbt повысить гибкость и производительность своих dbt‑проектов. Если вы уже используете dbt и ваш проект начал сталкиваться с одним или несколькими из следующих признаков, вероятно, вы готовы начать изучение этого подхода:
- Количество моделей в проекте начинает ухудшать производительность и замедлять разработку.
- Команды разработали отдельные рабочие процессы и нуждаются в разделении (decoupling) разработки между собой.
- Команды сталкиваются с проблемами коммуникации, и надежность некоторых ваших дата‑продуктов начинает снижаться.
- Требования к безопасности и управлению растут и выиграли бы от более строгой изоляции.
dbt предназначен для согласованного использования перечисленных выше возможностей и упрощения решения этих задач.
Если вы только начинаете работать с dbt, не беспокойтесь о том, чтобы сразу строить многопроектную архитектуру. Вы можете постепенно внедрять эти возможности по мере масштабирования. Этот набор функций эффективно работает и как независимые инструменты. Ознакомление с инструментарием и возможностями, из которых состоит многопроектная архитектура, а также понимание того, как они могут быть применены в вашей организации, помогут вам принимать более взвешенные решения по мере роста.
Для получения дополнительной информации см. FAQ по Mesh.