строку с индексом, который уже был в таблице, - то новая строка заменит старую. И вот здесь это подтверждается:
CREATE TABLE db1.test_replacing
(
publisher String,
unique_id String
)
ENGINE = ReplacingMergeTree()
ORDER BY (unique_id)
INSERT INTO db1.test_replacing VALUES
('old_publisher', 'id1')
INSERT INTO db1.test_replacing VALUES
('new_publisher', 'id1')
SELECT * FROM db1.test_replacing FINAL
# результат:
# new_publisher id1
Однако в случае группировки реплейс не работает:
SELECT count(*), publisher
FROM db1.test_replacing
GROUP BY publisher
# результат:
# 1 old_publisher
# 1 new_publisher
Как заставить его заработать?
Все работает. Вы сравниваете результат с final и без final
Дедупликация данных производится лишь во время слияний. Слияние происходят в фоне в неизвестный момент времени, на который вы не можете ориентироваться. https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/replacingmergetree/
Обсуждают сегодня