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