Дубликаты случаются из-за того, что некоторые люди используют идентификатор, а другие - как идентификатор_отличной почты из-за изменения идентификатора. На события ссылаются по этому идентификатору или по электронной почте соответствующему лицу.
Итак, вот что я в итоге сделал, чтобы заново создать отображение личности для людей и их событий:
Я использовал Mixpanel's API (export_people / export_events) для создания резервной копии людей и событий. Я написал скрипт, который создает сопоставление «Different_id <-> электронная почта» для людей, которые используют фактический идентификатор в качестве отдельный_идентификатора, а не электронное письмо (у каждого человека есть поле $ email независимо от содержимого $ diver_id).
Затем я просмотрел все экспортированные события. Для каждого события, у которого был идентификатор в качестве отдельный_идентификатора, я использовал сопоставление, чтобы изменить этот отличный_идентификатор на электронную почту. Обновленные события были сохранены в файле JSON. Таким образом, создавая ссылку из событий на человека, использующего электронную почту в качестве однозначного идентификатора - события, которые были потеряны в противном случае.
Затем я продолжил и использовал дедуплицирующий API из Mixpanel для удаления всех дубликатов - таким образом теряя некоторые события , Теперь я импортировал события из предыдущего шага, который вернул мне эти пропущенные события.
Три открытых вопроса, которые необходимо рассмотреть, прежде чем использовать этот подход:
Я считаю, что события фактически не удаляется при дедупликации. Таким образом, при их повторном импорте в системе, вероятно, появляются повторяющиеся события, на которые просто не ссылаются люди, и которые могут в какой-то момент обнаружиться.
дедупликация с помощью $ email действительно сохранила люди, которые используют электронную почту как Different_id и удалили те, которые имеют действительный идентификатор. Я не знаю, так ли это каждый раз, или это могло быть совпадением. Мой подход потерпит неудачу для людей, которые все еще используют ID в качестве однозначного_идентификатора.
Я полагаю, что обычно не рекомендуется взламывать такой_значный_идентификатор, потому что допущение ошибки может привести к потере данных. Поэтому убедитесь, что все правильно ..