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

Введение в dbt Mesh

Что такое 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, не беспокойтесь о создании многопроектной архитектуры сразу. Вы можете постепенно внедрять функции из этого руководства по мере роста. Набор функций эффективно работает как независимые инструменты. Ознакомление с инструментами и функциями, которые составляют многопроектную архитектуру, и тем, как они могут применяться в вашей организации, поможет вам принимать более обоснованные решения по мере роста.

Для получения дополнительной информации обратитесь к Mesh FAQs.

Цели обучения

  • Понять назначение и компромиссы построения много-проектной архитектуры.
  • Сформировать интуитивное понимание различных паттернов Mesh и того, как спроектировать много-проектную архитектуру для вашей организации.
  • Определить рекомендуемые шаги для постепенного внедрения этих паттернов в вашей реализации dbt.
подсказка

Чтобы помочь вам начать работу, ознакомьтесь с нашим Quickstart with Mesh или пройдите наш онлайн‑курс Mesh course, чтобы узнать больше!

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

0
Loading