mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 22:22:00 +00:00
19 lines
2.1 KiB
ReStructuredText
19 lines
2.1 KiB
ReStructuredText
ReplacingMergeTree
|
||
------------------
|
||
|
||
Движок таблиц отличается от ``MergeTree`` тем, что выполняет удаление дублирующихся записей с одинаковым значением первичного ключа.
|
||
|
||
Последний, необязательный параметр движка таблицы - столбец с "версией". При слиянии, для всех строк с одинаковым значением первичного ключа, оставляет только одну строку: если задан столбец версии - строку с максимальной версией, иначе - последнюю строку.
|
||
|
||
Столбец с версией должен иметь тип из семейства ``UInt``, либо ``Date`` или ``DateTime``.
|
||
|
||
.. code-block:: sql
|
||
|
||
ReplacingMergeTree(EventDate, (OrderID, EventDate, BannerID, ...), 8192, ver)
|
||
|
||
Обратите внимание, что дедупликация данных производится лишь во время слияний. Слияние происходят в фоне, в неизвестный момент времени, на который вы не можете ориентироваться. Некоторая часть данных может так и остаться необработанной. Хотя вы можете вызвать внеочередное слияние с помощью запроса OPTIMIZE, на это не стоит рассчитывать, так как запрос OPTIMIZE приводит к чтению и записи большого объёма данных.
|
||
|
||
Таким образом, ``ReplacingMergeTree`` подходит для фоновой чистки дублирующихся данных в целях экономии места, но не даёт гарантий отсутствия дубликатов.
|
||
|
||
*Движок не используется в Яндекс.Метрике, но нашёл своё применение в других отделах Яндекса.*
|