На iOS свойство товара приходит как productId, а на Android как product_id. В отчётах часть событий не объединяется. Что правильнее сделать для качества данных?

AОставить расхождение и в каждом запросе писать оба варианта поля через COALESCE, чтобы быстрее закрыть задачу
BСчитать метрики по iOS и Android каждый раз отдельно, чтобы не смешивать платформы и не править схему
CПривести только iOS к названию productId без обновления контракта схемы событий на стороне Android
DЗафиксировать единый стандарт схемы (например, product_id) и привести инструментирование или ETL-нормализацию к нему
Правильный ответ. Единая схема событий и нормализация свойств между платформами уменьшают ошибки логирования и упрощают аналитику.

Разбор

Расхождение названий между платформами — это нарушение единой таксономии событий. Правильный путь — зафиксировать единый стандарт (snake_case как product_id), отразить его в контракте схемы и либо обновить инструментирование на проблемной платформе, либо нормализовать поле в ETL. COALESCE в каждом запросе размножает технический долг и ломается при добавлении новых полей. Считать платформы отдельно — отказ от кросс-платформенных метрик. Переименование на одной платформе без контракта приводит к тому, что следующий разработчик снова разойдётся.

Тренировать продукт в Telegram

Ещё вопросы по теме «Инструментация и качество данных»