к дупликации данных?
Я какое-то время назад смотрел в исходники kafkaengine - там на ура могут возникать дубликаты. Данные пишутся в clickhouse, а после этого клиент пробует закомитить оффсет. Пробует он сделать это максимум 3 раза, если мне не изменяет память.
вот именно. есть ли какой-нибудь експ по разрешению таких ситуаций?
Ну мы написали отдельный сервис, который пишет в Replicated* таблицы идемпотентными вставками. Clickhouse для replicated таблиц делает deduplication последних N вставок при условии, что их контент и порядок данных совпадают.
replicated? может быть replacing?
Нет, именно replicated
https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/replication/
kafka-key тоже пишется, replicated дал подобного эффекта
Ну с replacingmergetree вы вынуждены будете либо следить за дубликатами, делать optimize final, либо переписывать все select-ы
по поводу последнего утверждения доп вопрос: как можно оптимизировать селекты под дюпы?
Все зависит от вашего профиля нагрузки. Может быть вам и FINAL в селектах подойдет, а может и GROUP BY придется делать в подзапросе.
конечно, это же кафка. Там без дубликатов нельзя.
Хехехе :) А можно попросить более развёрнуто?
ну в кафке очень тяжело сделать без дубликатов, даже если использовать exactly once -- это не имеет отношения к КХ, это вообще
Обсуждают сегодня