mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Apply suggestions from code review
This commit is contained in:
parent
2428c6c78c
commit
68b3122272
@ -389,7 +389,7 @@ Functions with a constant argument that is less than ngram size can’t be used
|
||||
- `NOT startsWith(s, 'test')`
|
||||
|
||||
## Projections {#projections}
|
||||
Projections are like [materialized views](../../sql-reference/statements/create/view.md#materialized) but defined in part-level. It provides consistency guarantees along with automatic usage in queries.
|
||||
Projections are like [materialized views](../../../sql-reference/statements/create/view.md#materialized) but defined in part-level. It provides consistency guarantees along with automatic usage in queries.
|
||||
|
||||
Projections are an experimental feature. To enable them you must set the [allow_experimental_projection_optimization](../../../operations/settings/settings.md#allow-experimental-projection-optimization) to `1`. See also the [force_optimize_projection ](../../../operations/settings/settings.md#force_optimize_projection) setting.
|
||||
|
||||
@ -402,7 +402,7 @@ A projection query is what defines a projection. It implicitly selects data from
|
||||
SELECT <column list expr> [GROUP BY] <group keys expr> [ORDER BY] <expr>
|
||||
```
|
||||
|
||||
Projections can be modified or dropped with the [ALTER](../../../sql-reference/statement/alter/projection.md) statement.
|
||||
Projections can be modified or dropped with the [ALTER](../../../sql-reference/statements/alter/projection.md) statement.
|
||||
|
||||
### Projection Storage {#projection-storage}
|
||||
Projections are stored inside the part directory. It's similar to an index but contains a subdirectory that stores an anonymous `MergeTree` table's part. The table is induced by the definition query of the projection. If there is a `GROUP BY` clause, the underlying storage engine becomes [AggregatingMergeTree](aggregatingmergetree.md), and all aggregate functions are converted to `AggregateFunction`. If there is an `ORDER BY` clause, the `MergeTree` table uses it as its primary key expression. During the merge process the projection part is merged via its storage's merge routine. The checksum of the parent table's part is combined with the projection's part. Other maintenance jobs are similar to skip indices.
|
||||
|
@ -376,7 +376,7 @@ INDEX b (u64 * length(str), i32 + f64 * 100, date, str) TYPE set(100) GRANULARIT
|
||||
- `NOT startsWith(s, 'test')`
|
||||
|
||||
## Проекции {#projections}
|
||||
Проекции похожи на [материализованные представления](../../sql-reference/statements/create/view.md#materialized), но определяются на уровне кусков данных. Это обеспечивает гарантии согласованности данных наряду с автоматическим использованием в запросах.
|
||||
Проекции похожи на [материализованные представления](../../../sql-reference/statements/create/view.md#materialized), но определяются на уровне кусков данных. Это обеспечивает гарантии согласованности данных наряду с автоматическим использованием в запросах.
|
||||
|
||||
Проекции это экспериментальная возможность. Чтобы включить поддержку проекций, установите настройку [allow_experimental_projection_optimization](../../../operations/settings/settings.md#allow-experimental-projection-optimization) в значение `1`. См. также настройку [force_optimize_projection ](../../../operations/settings/settings.md#force_optimize_projection).
|
||||
|
||||
@ -389,7 +389,7 @@ INDEX b (u64 * length(str), i32 + f64 * 100, date, str) TYPE set(100) GRANULARIT
|
||||
SELECT <column list expr> [GROUP BY] <group keys expr> [ORDER BY] <expr>
|
||||
```
|
||||
|
||||
Проекции можно изменить или удалить с помощью запроса [ALTER](../../../sql-reference/statement/alter/projection.md).
|
||||
Проекции можно изменить или удалить с помощью запроса [ALTER](../../../sql-reference/statements/alter/projection.md).
|
||||
|
||||
### Хранение проекции {#projection-storage}
|
||||
Проекции хранятся в каталоге куска данных. Это похоже на хранение индексов, но используется подкаталог, в котором хранится анонимный кусок таблицы `MergeTree`. Таблица создается запросом определения проекции. Если есть секция `GROUP BY`, то используется движок [AggregatingMergeTree](aggregatingmergetree.md), а все агрегатные функции преобразуются в `AggregateFunction`. Если есть секция `ORDER BY`, таблица `MergeTree` использует ее в качестве выражения для первичного ключа. Во время процесса слияния кусок данных проекции объединяется с помощью процедуры слияния ее хранилища. Контрольная сумма куска данных родительской таблицы включает кусок данных проекции. Другие процедуры аналогичны индексам пропуска данных.
|
||||
|
Loading…
Reference in New Issue
Block a user