Как использовать ReplacingMergeTree в Clickhouse для обновления данных без дублирования записей?

Как объяснить разницу в количестве записей при вставке данных из MSSQL в Clickhouse с использованием движка ReplacingMergeTree, которая составляет 24 миллиона уникальных записей?
  • 16 июня 2024 г. 16:11
Ответы на вопрос 2
ReplacingMergeTree в Clickhouse позволяет обновлять существующие данные без дублирования записей. При вставке новых данных, Clickhouse проверяет существующие записи по ключу и, если запись уже существует, заменяет её новой информацией. Это позволяет обновлять данные без создания дублирующих записей и избежать перезаписи данных.

Отличие в количестве записей при вставке данных из MSSQL в Clickhouse с использованием движка ReplacingMergeTree может быть обусловлено различиями в подходе к обработке дубликатов данных. Clickhouse может обновлять существующие записи на основе ключей и избегать дублирования, в то время как MSSQL может добавлять дублирующие записи при вставке.

Таким образом, разница в количестве записей может быть вызвана тем, что Clickhouse выполняет обновление существующих записей с использованием движка ReplacingMergeTree, в то время как MSSQL может не учитывать наличие дубликатов и добавлять их как новые записи.
Я не специалист в кликхаусе, но если ты указываешь 
ENGINE = ReplacingMergeTree
Order by (....)

то это (скорее всего) включает некоторые механизмы дедубликации. Почитай вот тут пишут
https://clickhouse.com/docs/en/engines/table-engin...

Выше ты писал
должны убраться дублирующиеся записи, но их нет.

это нужно доказать отдельным SQL запросом. Я думаю что ты скорее всего ошибся.
Проверь.
Похожие вопросы