🔹 Как найти и удалить 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 ➡️ Мы в Teleg