mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-06 16:40:48 +00:00
Inline custom_compression_codec.md into create.md for now
This commit is contained in:
parent
fe18d88313
commit
e4b023ad7f
@ -1,43 +0,0 @@
|
||||
# Column Compression Codecs
|
||||
|
||||
Besides default data compression, defined in [server settings](../server_settings/settings.md#compression), per-column specification is also available.
|
||||
|
||||
Supported compression algorithms:
|
||||
|
||||
- `NONE` - no compression for data applied
|
||||
- `LZ4`
|
||||
- `LZ4HC(level)` - (level) - LZ4\_HC compression algorithm with defined level.
|
||||
Possible `level` range: \[3, 12\]. Default value: 9. Greater values stands for better compression and higher CPU usage. Recommended value range: [4,9].
|
||||
- `ZSTD(level)` - ZSTD compression algorithm with defined `level`. Possible `level` value range: \[1, 22\]. Default value: 1.
|
||||
Greater values stands for better compression and higher CPU usage.
|
||||
- `Delta(delta_bytes)` - compression approach when raw values are replace with difference of two neighbour values. Up to `delta_bytes` are used for storing delta value.
|
||||
Possible `delta_bytes` values: 1, 2, 4, 8. Default value for delta bytes is `sizeof(type)`, if it is equals to 1, 2, 4, 8 and equals to 1 otherwise.
|
||||
|
||||
Syntax example:
|
||||
```
|
||||
CREATE TABLE codec_example
|
||||
(
|
||||
dt Date CODEC(ZSTD), /* используется уровень сжатия по-умолчанию */
|
||||
ts DateTime CODEC(LZ4HC),
|
||||
float_value Float32 CODEC(NONE),
|
||||
double_value Float64 CODEC(LZ4HC(9))
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY tuple()
|
||||
ORDER BY dt
|
||||
```
|
||||
|
||||
Codecs can be combined in a pipeline. Default table codec is not included into pipeline (if it should be applied to a column, you have to specify it explicitly in pipeline). Example below shows an optimization approach for storing timeseries metrics.
|
||||
Usually, values for particular metric, stored in `path` does not differ significantly from point to point. Using delta-encoding allows to reduce disk space usage significantly.
|
||||
```
|
||||
CREATE TABLE timeseries_example
|
||||
(
|
||||
dt Date,
|
||||
ts DateTime,
|
||||
path String,
|
||||
value Float32 CODEC(Delta(2), ZSTD)
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY dt
|
||||
ORDER BY (path, ts)
|
||||
```
|
@ -80,10 +80,49 @@ If you add a new column to a table but later change its default expression, the
|
||||
|
||||
It is not possible to set default values for elements in nested data structures.
|
||||
|
||||
### Column compression codecs
|
||||
# Column Compression Codecs
|
||||
|
||||
Table columns can use either common compression codec, defined in server settings, or use individual one, defined in `compression_codec`.
|
||||
[Detailed description](../operations/table_engines/custom_compression_codec.md).
|
||||
Besides default data compression, defined in [server settings](../operations/server_settings/settings.md#compression), per-column specification is also available.
|
||||
|
||||
Supported compression algorithms:
|
||||
|
||||
- `NONE` - no compression for data applied
|
||||
- `LZ4`
|
||||
- `LZ4HC(level)` - (level) - LZ4\_HC compression algorithm with defined level.
|
||||
Possible `level` range: \[3, 12\]. Default value: 9. Greater values stands for better compression and higher CPU usage. Recommended value range: [4,9].
|
||||
- `ZSTD(level)` - ZSTD compression algorithm with defined `level`. Possible `level` value range: \[1, 22\]. Default value: 1.
|
||||
Greater values stands for better compression and higher CPU usage.
|
||||
- `Delta(delta_bytes)` - compression approach when raw values are replace with difference of two neighbour values. Up to `delta_bytes` are used for storing delta value.
|
||||
Possible `delta_bytes` values: 1, 2, 4, 8. Default value for delta bytes is `sizeof(type)`, if it is equals to 1, 2, 4, 8 and equals to 1 otherwise.
|
||||
|
||||
Syntax example:
|
||||
```
|
||||
CREATE TABLE codec_example
|
||||
(
|
||||
dt Date CODEC(ZSTD), /* используется уровень сжатия по-умолчанию */
|
||||
ts DateTime CODEC(LZ4HC),
|
||||
float_value Float32 CODEC(NONE),
|
||||
double_value Float64 CODEC(LZ4HC(9))
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY tuple()
|
||||
ORDER BY dt
|
||||
```
|
||||
|
||||
Codecs can be combined in a pipeline. Default table codec is not included into pipeline (if it should be applied to a column, you have to specify it explicitly in pipeline). Example below shows an optimization approach for storing timeseries metrics.
|
||||
Usually, values for particular metric, stored in `path` does not differ significantly from point to point. Using delta-encoding allows to reduce disk space usage significantly.
|
||||
```
|
||||
CREATE TABLE timeseries_example
|
||||
(
|
||||
dt Date,
|
||||
ts DateTime,
|
||||
path String,
|
||||
value Float32 CODEC(Delta(2), ZSTD)
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY dt
|
||||
ORDER BY (path, ts)
|
||||
```
|
||||
|
||||
### Temporary Tables
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
# Форматы сжатия для колонок
|
||||
|
||||
Помимо сжатия для колонок по умолчанию, определяемого в [настройках сервера](../server_settings/settings.md#compression),
|
||||
существует возможность указать формат сжатия индивидуально для каждой колонки.
|
||||
|
||||
Поддерживаемые форматы:
|
||||
|
||||
- `NONE` - сжатие отсутствует
|
||||
- `LZ4`
|
||||
- `LZ4HC(level)` - алгоритм сжатия LZ4\_HC с указанным уровнем компрессии `level`.
|
||||
Возможный диапазон значений `level`: \[3, 12\]. Значение по умолчанию: 9. Чем выше уровень, тем лучше сжатие, но тратится больше времени. Рекомендованный диапазон \[4, 9\].
|
||||
- `ZSTD(level)` - алгоритм сжатия ZSTD с указанным уровнем компрессии `level`. Возможный диапазон значений `level`: \[1, 22\]. Значение по умолчанию: 1.
|
||||
Чем выше уровень, тем лучше сжатие, но тратится больше времени.
|
||||
- `Delta(delta_bytes)` - способ сжатия, при котором вместо числовых значений поля сохраняется разность между двумя соседними значениями. Значение `delta_bytes` - число байт для хранения дельты.
|
||||
Возможные значения: 1, 2, 4, 8. Значение по умолчанию: если `sizeof(type)` равен 1, 2, 4, 8 - `sizeof(type)`, иначе - 1.
|
||||
|
||||
Пример использования:
|
||||
```
|
||||
CREATE TABLE codec_example
|
||||
(
|
||||
dt Date CODEC(ZSTD), /* используется уровень сжатия по умолчанию */
|
||||
ts DateTime CODEC(LZ4HC),
|
||||
float_value Float32 CODEC(NONE),
|
||||
double_value Float64 CODEC(LZ4HC(9))
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY tuple()
|
||||
ORDER BY dt
|
||||
```
|
||||
|
||||
Кодеки могут комбинироваться между собой. Если для колонки указана своя последовательность кодеков, то общий табличный кодек не применяется (должен быть указан в последовательности принудительно, если нужен). В примере ниже - оптимизация для хранения timeseries метрик.
|
||||
Как правило, значения одной и той же метрики `path` не сильно различаются между собой, и выгоднее использовать дельта-компрессию вместо записи всего числа:
|
||||
```
|
||||
CREATE TABLE timeseries_example
|
||||
(
|
||||
dt Date,
|
||||
ts DateTime,
|
||||
path String,
|
||||
value Float32 CODEC(Delta(2), ZSTD)
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY dt
|
||||
ORDER BY (path, ts)
|
||||
```
|
@ -1,6 +1,6 @@
|
||||
## CREATE DATABASE
|
||||
|
||||
Создание базы данных db_name
|
||||
Создание базы данных db\_name.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE [IF NOT EXISTS] db_name
|
||||
@ -80,10 +80,51 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...
|
||||
|
||||
Отсутствует возможность задать значения по умолчанию для элементов вложенных структур данных.
|
||||
|
||||
### Форматы сжатия для колонок
|
||||
# Форматы сжатия для колонок
|
||||
|
||||
Помимо сжатия для колонок по умолчанию, определяемого в [настройках сервера](../operations/server_settings/settings.md#compression),
|
||||
существует возможность указать формат сжатия индивидуально для каждой колонки.
|
||||
|
||||
Поддерживаемые форматы:
|
||||
|
||||
- `NONE` - сжатие отсутствует
|
||||
- `LZ4`
|
||||
- `LZ4HC(level)` - алгоритм сжатия LZ4\_HC с указанным уровнем компрессии `level`.
|
||||
Возможный диапазон значений `level`: \[3, 12\]. Значение по умолчанию: 9. Чем выше уровень, тем лучше сжатие, но тратится больше времени. Рекомендованный диапазон \[4, 9\].
|
||||
- `ZSTD(level)` - алгоритм сжатия ZSTD с указанным уровнем компрессии `level`. Возможный диапазон значений `level`: \[1, 22\]. Значение по умолчанию: 1.
|
||||
Чем выше уровень, тем лучше сжатие, но тратится больше времени.
|
||||
- `Delta(delta_bytes)` - способ сжатия, при котором вместо числовых значений поля сохраняется разность между двумя соседними значениями. Значение `delta_bytes` - число байт для хранения дельты.
|
||||
Возможные значения: 1, 2, 4, 8. Значение по умолчанию: если `sizeof(type)` равен 1, 2, 4, 8 - `sizeof(type)`, иначе - 1.
|
||||
|
||||
Пример использования:
|
||||
```
|
||||
CREATE TABLE codec_example
|
||||
(
|
||||
dt Date CODEC(ZSTD), /* используется уровень сжатия по умолчанию */
|
||||
ts DateTime CODEC(LZ4HC),
|
||||
float_value Float32 CODEC(NONE),
|
||||
double_value Float64 CODEC(LZ4HC(9))
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY tuple()
|
||||
ORDER BY dt
|
||||
```
|
||||
|
||||
Кодеки могут комбинироваться между собой. Если для колонки указана своя последовательность кодеков, то общий табличный кодек не применяется (должен быть указан в последовательности принудительно, если нужен). В примере ниже - оптимизация для хранения timeseries метрик.
|
||||
Как правило, значения одной и той же метрики `path` не сильно различаются между собой, и выгоднее использовать дельта-компрессию вместо записи всего числа:
|
||||
```
|
||||
CREATE TABLE timeseries_example
|
||||
(
|
||||
dt Date,
|
||||
ts DateTime,
|
||||
path String,
|
||||
value Float32 CODEC(Delta(2), ZSTD)
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PARTITION BY dt
|
||||
ORDER BY (path, ts)
|
||||
```
|
||||
|
||||
Таблица может использовать общий формат сжатия, установленный в настройках сервера, или применять к каждой колонке свой формат, указанный в `compression_codec`.
|
||||
[Подробное описание](../operations/table_engines/custom_compression_codec.md).
|
||||
|
||||
### Временные таблицы
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user