🔹 Дубли и дедупликация: практическое 🔹 Как найти и удалить duplicate при загрузке данных? 🔸 Дубли появляются когда одна и та же сущность попадает в поток несколько раз — это ломает агрегаты, нарушает уникальные ключи и увеличивает хранилище.

🔸 distinct (DISTINCT) убирает полные повторы строк на чтении, но сравнивает весь набор столбцов и на больших объёмах будет дорогим по времени и памяти.

🔸 Используйте row_number (ROW_NUMBER()) чтобы пометить повторяющиеся группы по ключу и оставить одну запись по правилу (например, самая свежая). Пример:

WITH dedup AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id, email ORDER BY updated_at DESC) AS rn FROM stg.table ) SELECT * FROM dedup WHERE rn = 1;

🔸 hash ускоряет сравнение: вычисляйте hash ключевых колонок (например md5), группируйте по hash или джойтесь по нему, но всегда проверяйте возможные коллизии для критичных данных.

📚 DISTINCT — просто; row_number — для правил "оставить одну"; hash — для оптимизации на больших данных.

#CODERIKK #ETL #Junior

➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️


В этом посте были ссылки, но мы их удалили по правилам Сетки

🔹 Дубли и дедупликация: практическое
🔹 Как найти и удалить duplicate при загрузке данных?
🔸 Дубли появляются когда одна и та же сущность попадает в поток несколько раз — это ломает агрегаты, нарушает ... | Сетка — социальная сеть от hh.ru