записи для всей таблицы. Проверка уникальности по двум полям. Инсерты идут по 10 млн записей. Есть решения из коробки? Или какое-то оптимальное решие для кликхауса имеется?
https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replacingmergetree/ Учитывайте, что дедупликация будет работать в бэкграунде, то есть в момент времени после инсерта в данных могут быть дубликаты
Спасибо,это решение не подходит, т.к. не могу у изменить движок таблицы, а так же поля для определения уникальности отличаются от полей в ordre by
Оптимальное решение для clickhouse предполагает именно это - вдумчивое определение движка и order by под вашу задачу. Проверять в полете 10М строк на присутствие в миллиардной таблице без хорошего индекса - так себе решение. Если у вас вставка раз в сутки - можете попробовать skip index, может быть на ваших данных он чем-то поможет, но скорее нет. Лучше переделать таблицу.
В кх вообще нет уникальности, никаких констрейнтов
проверять уникальность в момент вставки дорого. может на выборке лучше подшаманить? в клике для этого все имеется. а так, выше уже самые нормальные варианты разобрали)
https://altinity.com/blog/2020/4/14/handling-real-time-updates-in-clickhouse это как доп материал к этому варианту. есть вероятность что argMin, argMax, any, max вам подойдут не меняя структуру
Обсуждают сегодня