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

Для кого предназначен dbt Mesh?

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

Корпоративный data mesh

Некоторые команды по работе с данными функционируют в глобальном масштабе. По определению, такой команде необходимо управлять, развёртывать и распространять data-продукты для большого количества команд. Центральное IT-подразделение может владеть частью data-продуктов или же только платформой, на которой эти data-продукты создаются. Часто в таких организациях есть «архитекторы», которые могут консультировать бизнес-команды по их работе, одновременно отслеживая, что происходит на глобальном уровне (с точки зрения инструментов и содержания работы). Это во многом похоже на то, как устроены крупные софтверные организации после достижения определённого масштаба.

Соотношение численности доменных команд к платформенным в этом сценарии составляет примерно ≥10:1. На каждого участника центральной платформенной команды могут приходиться десятки участников доменно-ориентированных data-команд.

Подходит ли Mesh в таком сценарии? Безусловно! Другого способа масштабно делиться data-продуктами просто нет. Один dbt-проект не сможет удовлетворить глобальные потребности организации такого уровня.

Советы и рекомендации

  • Управление общими макросами: Команды, работающие в таком масштабе, выиграют от наличия отдельного репозитория с dbt-пакетом, содержащим переиспользуемые утилитарные макросы, которые будут устанавливаться во все остальные проекты. Это отличается от public models, которые предоставляют data-as-a-service (набор «API-эндпоинтов») — здесь речь идёт о распространении в виде библиотеки. Такой пакет также может стандартизировать подключение других сторонних пакетов, а также предоставлять обёртки / шимы для этих макросов. У этого пакета должна быть выделенная команда мейнтейнеров — вероятно, центральная платформенная команда или группа «суперпользователей» из доменно-ориентированных команд по моделированию данных.
подсказка

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

Сложности внедрения

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

    Кроме того, имеет смысл отдавать приоритет командам, которые управляют стратегически важными data-активами, требующими широкого распространения. Это позволит Mesh быстрее начать приносить ощутимую ценность.

Если это похоже на вашу организацию, Mesh — архитектура, к которой вам стоит стремиться. ✅

Hub-and-spoke

Некоторые чуть менее крупные организации всё ещё работают с центральной data-командой, обслуживающей несколько бизнес-ориентированных аналитических команд, при соотношении численности примерно 5:1. Такие центральные команды меньше похожи на классическое IT-подразделение и больше — на современную data-платформенную команду аналитических инженеров. Эта команда предоставляет большую часть data-продуктов остальной организации, а также инфраструктуру, позволяющую downstream-командам запускать собственные spoke-проекты для обеспечения качества и сопровождения ядра платформы.

Подходит ли Mesh в таком сценарии? Почти наверняка! Если ваша центральная data-команда начинает становиться узким местом в работе аналитиков, вам нужен способ позволить этим командам работать относительно независимо, при этом сохраняя качество наиболее используемых data-продуктов. Mesh создан именно для решения этой задачи.

Советы и рекомендации

  • Data-продукты, создаваемые некоторыми — для всех: Spoke-команды не должны выпускать public models. Напротив, разработка в проекте hub-команды должна идти медленнее и более осторожно, с фокусом на создании базовых public models, разделяемых между доменами. Мы рекомендуем предоставить участникам hub-команды доступ (как минимум на чтение) к downstream-проектам — это поможет проводить более детальный impact-анализ в Catalog. Если public model не используется ни в одном downstream-проекте или конкретная колонка в этой модели нигде не применяется, hub-команда может с большей уверенностью удалить её. При этом всё равно следует использовать возможности управления в dbt, такие как deprecation_date и version, чтобы корректно задавать ожидания. Если возникает необходимость, чтобы public model из spoke-проекта использовалась в нескольких проектах, сначала стоит подумать, можно ли или нужно ли перенести её в hub-проект.
  • Sources: Spoke-командам следует разрешать и поощрять определение и использование доменно-специфичных источников данных. Платформенной команде не обязательно учитывать, например, данные Thinkific при построении базовых витрин данных, но проект Training может в них нуждаться. Ни два источника нигде в dbt mesh не должны указывать на один и тот же relation object. Если spoke-команда считает, что ей нужен источник, который уже использует hub, интерфейсы должны быть изменены так, чтобы spoke могла получать необходимые данные из платформенного проекта.
  • Качество проектов: Команды, ориентированные в большей степени на аналитиков, будут иметь разный уровень навыков и разные требования к качеству. Владея своими данными, они владеют и последствиями. Вместо ответственности за сквозную поставку data-активов, hub-команда выполняет роль enablement-команды: её задача — предоставлять защитные рамки и проверки качества, но не исправлять все проблемы строго «под себя» (и тем самым оставаться узким местом).

Сложности внедрения

У этой архитектуры есть компромиссы, особенно для hub-команды, которая управляет и поддерживает public models. В этом рабочем процессе намеренно заложено трение, чтобы снизить вероятность непреднамеренных изменений моделей, нарушающих негласные data-контракты. Эти гарантии могут требовать определённых жертв — например, более быстрого онбординга или более гибких процессов разработки. По сравнению с единым проектом, где разработкой занимается ограниченный круг людей, эта архитектура оптимизирует более медленную разработку с участием более широкого круга участников.

Если это похоже на вашу организацию, с большой вероятностью Mesh вам подойдёт. ✅

Монолит одной команды

Некоторые организации работают в ещё меньшем масштабе. Если ваша data-организация — это одна небольшая команда, которая полностью контролирует процесс создания и сопровождения всех data-продуктов в компании, Mesh может быть не нужен. Сложность проектов обычно возникает из-за большого количества источников данных и стейкхолдеров. Однако при таком размере команды работа с единой кодовой базой может быть самым эффективным способом управления data-продуктами. Как правило, если команда такого размера и охвата задумывается о внедрении Mesh, это связано с желанием улучшить дизайн интерфейсов и/или производительность отдельных частей dbt DAG, а не с необходимостью решать организационную проблему.

Подходит ли Mesh? Возможно! Есть причины разделять большой монолитный проект на несколько, чтобы упростить оркестрацию и управление моделями. Однако если одни и те же люди управляют каждым проектом, они могут прийти к выводу, что накладные расходы на сопровождение нескольких проектов не оправдывают получаемые выгоды.

Если это похоже на вашу организацию, стоит внимательно оценить, подходит ли вам Mesh.

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

0
Loading