Вы хотите добавить новое свойство promo_code в событие checkout_started. Какой подход лучше с точки зрения качества данных и совместимости?
AПереименовать событие в
checkout_started_v2 и сразу удалить старое из схемы, чтобы избежать двух версий в отчётахBУдалить из события устаревшие свойства одновременно с добавлением
promo_code, чтобы держать схему компактнойCДобавить
promo_code как необязательное свойство, обновить таксономию событий и валидаторы, сохранив обратную совместимостьDДобавить
promo_code как обязательное свойство сразу для всех клиентов, чтобы старые сборки приложения не отправляли событие без негоПравильный ответ. Безопасная эволюция схемы — это добавление необязательных свойств и обновление таксономии событий с сохранением обратной совместимости.
Разбор
При расширении схемы событий важно не сломать данные, которые уже идут со старых клиентов. Новое поле добавляют как необязательное (optional): новые сборки шлют его, старые продолжают слать событие без него — обратная совместимость сохраняется. Резкое переименование или удаление старого события создаёт пробел в исторических метриках. Удаление устаревших свойств одновременно с добавлением нового — отдельная задача, её делают через депрекацию. Обязательное поле для всех ломает сборки, которые ещё не обновились.
Ещё вопросы по теме «Инструментация и качество данных»
- Вы проектируете схему событий для регистрации. Какой вариант сбора событий лучше всего подходит, чтобы считать конверсию в успешную регистрацию и понимать, через какой способ вошли?
- Вы хотите логировать применение фильтров в каталоге. Какой вариант лучше для таксономии событий и последующей аналитики?
- Вы настраиваете мониторинг качества данных для платёжного флоу. Какой набор проверок согласованности наиболее практичен и устойчив к сезонности?
- После обновления SDK сумма по `purchase_succeeded` выросла почти в 2 раза, но платёжный провайдер этого не подтверждает. Что наиболее вероятно и какое действие по качеству данных самое уместное?
- В мобильном приложении события могут копиться офлайн и отправляться позже. Какие поля времени лучше заложить в логирование, чтобы корректно строить путь пользователя и контролировать задержки?
- Все вопросы по «Инструментация и качество данных» →