выполнять OPTIMIZE TABLE FINAL DEDUPLICATE или ReplacingMergeTree?
Ни то, ни другое, по сути, @solard сказал правду своей шуткой, необходимо все-таки на стороне приложения дедуплицировать данные
зависит от движка таблицы, для каждого движка есть свои методы, ведь дубли не удаляются сразу, могут вообще никогда не удалятся, поэтому в самой таблице дубли могут быть, но от них можно избавиться в запросе селекта Для движка ReplacingMergeTree есть такие практики финализации в запросе (https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/#single-key), я предпочитаю в Replacing делать через LIMIT 1 BY <названия ваших полей>, вообще не рекомендуется делать через FINAL, но можно для небольших таблиц, справочников, например Для CollapsingMergeTree прикол заключается в использовании поля Sign в выражении (https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/collapsingmergetree/#primer-ispolzovaniia), умножить числовые данные поля на Sign и сложить, тогда дубли самоуничтожатся, тк они разного знака
https://kb.altinity.com/altinity-kb-schema-design/row-level-deduplication/
а вы пробовали на практике использовать CollapsingMergeTree ?
Обсуждают сегодня