На iOS свойство товара приходит как productId, а на Android как product_id. В отчётах часть событий не объединяется. Что правильнее сделать для качества данных?
AОставить расхождение и в каждом запросе писать оба варианта поля через
COALESCE, чтобы быстрее закрыть задачуBСчитать метрики по
iOS и Android каждый раз отдельно, чтобы не смешивать платформы и не править схемуCПривести только
iOS к названию productId без обновления контракта схемы событий на стороне AndroidDЗафиксировать единый стандарт схемы (например,
product_id) и привести инструментирование или ETL-нормализацию к немуПравильный ответ. Единая схема событий и нормализация свойств между платформами уменьшают ошибки логирования и упрощают аналитику.
Разбор
Расхождение названий между платформами — это нарушение единой таксономии событий. Правильный путь — зафиксировать единый стандарт (snake_case как product_id), отразить его в контракте схемы и либо обновить инструментирование на проблемной платформе, либо нормализовать поле в ETL. COALESCE в каждом запросе размножает технический долг и ломается при добавлении новых полей. Считать платформы отдельно — отказ от кросс-платформенных метрик. Переименование на одной платформе без контракта приводит к тому, что следующий разработчик снова разойдётся.
Ещё вопросы по теме «Инструментация и качество данных»
- Вы проектируете схему событий для регистрации. Какой вариант сбора событий лучше всего подходит, чтобы считать конверсию в успешную регистрацию и понимать, через какой способ вошли?
- Вы хотите логировать применение фильтров в каталоге. Какой вариант лучше для таксономии событий и последующей аналитики?
- Вы настраиваете мониторинг качества данных для платёжного флоу. Какой набор проверок согласованности наиболее практичен и устойчив к сезонности?
- После обновления SDK сумма по `purchase_succeeded` выросла почти в 2 раза, но платёжный провайдер этого не подтверждает. Что наиболее вероятно и какое действие по качеству данных самое уместное?
- В мобильном приложении события могут копиться офлайн и отправляться позже. Какие поля времени лучше заложить в логирование, чтобы корректно строить путь пользователя и контролировать задержки?
- Все вопросы по «Инструментация и качество данных» →