mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-28 18:42:26 +00:00
Update replacingmergetree.md
This commit is contained in:
parent
e653583e87
commit
8bf8dc628c
@ -28,19 +28,65 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
|||||||
|
|
||||||
Описание параметров запроса смотрите в [описании запроса](../../../engines/table-engines/mergetree-family/replacingmergetree.md).
|
Описание параметров запроса смотрите в [описании запроса](../../../engines/table-engines/mergetree-family/replacingmergetree.md).
|
||||||
|
|
||||||
:::note "Внимание"
|
:::warning "Внимание"
|
||||||
Уникальность строк определяется `ORDER BY` секцией таблицы, а не `PRIMARY KEY`.
|
Уникальность строк определяется `ORDER BY` секцией таблицы, а не `PRIMARY KEY`.
|
||||||
:::
|
:::
|
||||||
**Параметры ReplacingMergeTree**
|
|
||||||
|
|
||||||
- `ver` — столбец с номером версии. Тип `UInt*`, `Date`, `DateTime` или `DateTime64`. Необязательный параметр.
|
## Параметры ReplacingMergeTree
|
||||||
|
|
||||||
При слиянии `ReplacingMergeTree` оставляет только строку для каждого уникального ключа сортировки:
|
### ver
|
||||||
|
|
||||||
|
`ver` — столбец с номером версии. Тип `UInt*`, `Date`, `DateTime` или `DateTime64`. Необязательный параметр.
|
||||||
|
|
||||||
|
При слиянии `ReplacingMergeTree` оставляет только строку для каждого уникального ключа сортировки:
|
||||||
|
|
||||||
- Последнюю в выборке, если `ver` не задан. Под выборкой здесь понимается набор строк в наборе кусков данных, участвующих в слиянии. Последний по времени создания кусок (последняя вставка) будет последним в выборке. Таким образом, после дедупликации для каждого значения ключа сортировки останется самая последняя строка из самой последней вставки.
|
- Последнюю в выборке, если `ver` не задан. Под выборкой здесь понимается набор строк в наборе кусков данных, участвующих в слиянии. Последний по времени создания кусок (последняя вставка) будет последним в выборке. Таким образом, после дедупликации для каждого значения ключа сортировки останется самая последняя строка из самой последней вставки.
|
||||||
- С максимальной версией, если `ver` задан. Если `ver` одинаковый у нескольких строк, то для них используется правило -- если `ver` не задан, т.е. в результате слияния останется самая последняя строка из самой последней вставки.
|
- С максимальной версией, если `ver` задан. Если `ver` одинаковый у нескольких строк, то для них используется правило -- если `ver` не задан, т.е. в результате слияния останется самая последняя строка из самой последней вставки.
|
||||||
|
|
||||||
**Секции запроса**
|
Пример:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- without ver - the last inserted 'wins'
|
||||||
|
CREATE TABLE myFirstReplacingMT
|
||||||
|
(
|
||||||
|
`key` Int64,
|
||||||
|
`someCol` String,
|
||||||
|
`eventTime` DateTime
|
||||||
|
)
|
||||||
|
ENGINE = ReplacingMergeTree
|
||||||
|
ORDER BY key;
|
||||||
|
|
||||||
|
INSERT INTO myFirstReplacingMT Values (1, 'first', '2020-01-01 01:01:01');
|
||||||
|
INSERT INTO myFirstReplacingMT Values (1, 'second', '2020-01-01 00:00:00');
|
||||||
|
|
||||||
|
SELECT * FROM myFirstReplacingMT FINAL;
|
||||||
|
|
||||||
|
┌─key─┬─someCol─┬───────────eventTime─┐
|
||||||
|
│ 1 │ second │ 2020-01-01 00:00:00 │
|
||||||
|
└─────┴─────────┴─────────────────────┘
|
||||||
|
|
||||||
|
|
||||||
|
-- with ver - the row with the biggest ver 'wins'
|
||||||
|
CREATE TABLE mySecondReplacingMT
|
||||||
|
(
|
||||||
|
`key` Int64,
|
||||||
|
`someCol` String,
|
||||||
|
`eventTime` DateTime
|
||||||
|
)
|
||||||
|
ENGINE = ReplacingMergeTree(eventTime)
|
||||||
|
ORDER BY key;
|
||||||
|
|
||||||
|
INSERT INTO mySecondReplacingMT Values (1, 'first', '2020-01-01 01:01:01');
|
||||||
|
INSERT INTO mySecondReplacingMT Values (1, 'second', '2020-01-01 00:00:00');
|
||||||
|
|
||||||
|
SELECT * FROM mySecondReplacingMT FINAL;
|
||||||
|
|
||||||
|
┌─key─┬─someCol─┬───────────eventTime─┐
|
||||||
|
│ 1 │ first │ 2020-01-01 01:01:01 │
|
||||||
|
└─────┴─────────┴─────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Секции запроса
|
||||||
|
|
||||||
При создании таблицы `ReplacingMergeTree` используются те же [секции](mergetree.md), что и при создании таблицы `MergeTree`.
|
При создании таблицы `ReplacingMergeTree` используются те же [секции](mergetree.md), что и при создании таблицы `MergeTree`.
|
||||||
|
|
||||||
@ -48,9 +94,10 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
|||||||
|
|
||||||
<summary>Устаревший способ создания таблицы</summary>
|
<summary>Устаревший способ создания таблицы</summary>
|
||||||
|
|
||||||
:::note "Внимание"
|
:::warning "Внимание"
|
||||||
Не используйте этот способ в новых проектах и по возможности переведите старые проекты на способ описанный выше.
|
Не используйте этот способ в новых проектах и по возможности переведите старые проекты на способ описанный выше.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
||||||
(
|
(
|
||||||
|
Loading…
Reference in New Issue
Block a user