ClickHouse/docs/ru/operations/table_engines/replacingmergetree.md
BayoNet 90b1f5f71b New syntax for ReplacingMergeTree.
Some improvements in text.
2018-09-19 11:20:17 +03:00

41 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ReplacingMergeTree
Движок отличается от [MergeTree](mergetree.md#table_engines-mergetree) тем, что выполняет удаление дублирующихся записей с одинаковым значением первичного ключа.
Дедупликация данных производится лишь во время слияний. Слияние происходят в фоне в неизвестный момент времени, на который вы не можете ориентироваться. Некоторая часть данных может остаться необработанной. Хотя вы можете вызвать внеочередное слияние с помощью запроса `OPTIMIZE`, на это не стоит рассчитывать, так как запрос `OPTIMIZE` приводит к чтению и записи большого объёма данных.
Таким образом, `ReplacingMergeTree` подходит для фоновой чистки дублирующихся данных в целях экономии места, но не даёт гарантии отсутствия дубликатов.
## Конфигурирование движка при создании таблицы
```
ENGINE [=] ReplacingMergeTree([ver]) [PARTITION BY expr] [ORDER BY expr] [SAMPLE BY expr] [SETTINGS name=value, ...]
```
**Параметры ReplacingMergeTree**
- `ver` — столбец с версией, тип `UInt*`, `Date` или `DateTime`. Необязательный параметр.
При слиянии, из всех строк с одинаковым значением первичного ключа `ReplacingMergeTree` оставляет только одну:
- Последнюю в выборке, если `ver` не задан.
- С максимальной версией, если `ver` задан.
**Секции ENGINE**
`ReplacingMergeTree` использует те же [секции ENGINE](mergetree.md#table_engines-mergetree-configuring), что и `MergeTree`.
### Устаревший способ конфигурирования движка
!!!attention
Не используйте этот способ в новых проектах и по возможности переведите старые проекты на способ описанный выше.
```sql
ReplacingMergeTree(EventDate, (OrderID, EventDate, BannerID, ...), 8192, [ver])
```
Все параметры, кроме `ver` имеют то же значение, что в и `MergeTree`.
- `ver` — столбец с версией. Необязательный параметр. Описание смотрите выше по тексту.