Внедрение контрактов данных
Вопрос
Пайплайны аналитики ломаются раз в неделю из-за изменений в базах микросервисов. Как вы внедрите контракты данных?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Выделить критичные источники и потребителей по lineage
Контракт: схема, семантика, гарантии, владелец, правила изменений
Автоматическая проверка в CI сервиса и на входе пайплайна
Публикация данных через события или выделенные представления вместо чтения внутренних таблиц
Версии и период совместимости для ломающих изменений
Договорённость с командами и метрики: число поломок
Что могут спросить следом
- Что делать, если команда сервиса не хочет брать на себя контракт?
- Где хранить контракты?
Разбор
Образцовый ответ: «Корень проблемы в том, что аналитика читает внутренние таблицы сервисов, которые команды считают своей приватной деталью. Начну с lineage: какие источники ломают пайплайны чаще всего и какие витрины от них зависят. Для них оформляю контракты: схема, смысл и единицы полей, свежесть, владелец и правила изменений, храню в репозитории в машиночитаемом виде. Проверка контракта встраивается в CI сервиса: миграция, удаляющая или переименовывающая поле из контракта, не проходит без согласования. На входе пайплайна та же проверка как блокирующая. Стратегически перевожу сервисы на публикацию данных через события с реестром схем или через выделенные представления, а не через чтение их таблиц. Ломающие изменения только через новую версию с периодом совместимости. Метрика успеха: число поломок пайплайнов из-за источников. Чтобы команды согласились, показываю цену поломок для бизнеса и беру на себя инструменты».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.