Skip to content

Commit 3b6def6

Browse files
authored
Merge d169b9c into 5b45c74
2 parents 5b45c74 + d169b9c commit 3b6def6

File tree

5 files changed

+68
-36
lines changed

5 files changed

+68
-36
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Поддерживается только для [строковых](../concepts/datamodel/table.md#strokovye-tablicy) таблиц. Поддержка функциональности для [колоночных](../concepts/datamodel/table.md#column-tables) таблиц находится в разработке.
1+
Поддерживается только для [строковых](../concepts/datamodel/table.md#row-oriented-tables) таблиц. Поддержка функциональности для [колоночных](../concepts/datamodel/table.md#column-oriented-tables) таблиц находится в разработке.

ydb/docs/ru/core/concepts/datamodel/_includes/table.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ CREATE TABLE article (
221221
+ Доступно и в первичном ключе и в остальных колонках: `Date`, `Datetime`, `Timestamp`, `Int32`, `Int64`, `Uint8`, `Uint16`, `Uint32`, `Uint64`, `Utf8`, `String`;
222222
+ Доступно только в колонках, не входящих в первичный ключ: `Bool`, `Decimal`, `Double`, `Float`, `Int8`, `Int16`, `Interval`, `JsonDocument`, `Json`, `Uuid`, `Yson`.
223223

224+
* В колоночных таблицах поддерживаются группы колонок, но пока только используется для задания сжатия на колонках.
224225

225226
Повторим создание таблицы `article`, на этот раз в колоночной форме, с помощью следующей YQL-команды:
226227

ydb/docs/ru/core/yql/reference/yql-core/syntax/alter_table/family.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
# Создание и изменение групп колонок
22

3-
{% if oss == true and backend_name == "YDB" %}
4-
5-
{% include [OLAP_not_allow_note](../../../../_includes/not_allow_for_olap_note.md) %}
6-
7-
{% endif %}
8-
93
Механизм {% if oss == true and backend_name == "YDB" %}[групп](../../../../concepts/datamodel/table.md#column-groups){% else %}групп{% endif %} колонок позволяет увеличить производительность операций неполного чтения строк путем разделения хранения колонок строковой таблицы на несколько групп. Наиболее часто используемый сценарий — организация хранения редко используемых атрибутов в отдельной группе колонок.
104

115

@@ -39,12 +33,24 @@ ALTER TABLE series_with_families
3933
ALTER COLUMN release_date SET FAMILY family_small;
4034
```
4135

42-
При помощи команды `ALTER FAMILY` можно изменить параметры группы колонок. Приведенный ниже код для группы колонок `default` в таблице `series_with_families` сменит тип хранилища на `hdd`:
36+
При помощи команды `ALTER FAMILY` можно изменить параметры группы колонок. Приведенный ниже код для группы колонок `default` в таблице `series_with_families` сменит тип хранилища на `hdd` (поддерживается только для [строковых](../../../../concepts/datamodel/table.md#row-oriented-tables) таблиц):
4337

4438
```yql
4539
ALTER TABLE series_with_families ALTER FAMILY default SET DATA "hdd";
4640
```
4741

42+
Приведенный ниже код для группы колонок `default` в таблице `series_with_families` сменит кодек сжатия на `lz4`:
43+
44+
```yql
45+
ALTER TABLE series_with_families ALTER FAMILY default SET COMPRESSION "lz4";
46+
```
47+
48+
Приведенный ниже код для группы колонок `default` в таблице `series_with_families` сменит уровень сжатия кодека, если он поддерживает различные уровни сжатия (поддерживается только для [колоночных](../../../../concepts/datamodel/table.md#column-oriented-tables) таблиц):
49+
50+
```yql
51+
ALTER TABLE series_with_families ALTER FAMILY default SET COMPRESSION_LEVEL 5;
52+
```
53+
4854
{% note info %}
4955

5056
Доступные типы устройств хранения зависят от конфигурации кластера {{ ydb-short-name }}.

ydb/docs/ru/core/yql/reference/yql-core/syntax/create_table/family.md

Lines changed: 49 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,59 @@
11
# Группы колонок
22

3-
{% if oss == true and backend_name == "YDB" %}
4-
5-
{% include [not_allow_for_olap](../../../../_includes/not_allow_for_olap_note.md) %}
6-
7-
{% endif %}
8-
93
Колонки одной таблицы можно объединять в группы, для того чтобы задать следующие параметры:
104

11-
* `DATA` — тип устройства хранения для данных колонок этой группы. Допустимые значения: `"ssd"`, `"rot"`.
12-
* `COMPRESSION` — кодек сжатия данных. Допустимые значения: `"off"`, `"lz4"`.
5+
* `DATA` — тип устройства хранения для данных колонок этой группы (поддерживается только для [строковых](../../../../concepts/datamodel/table.md#row-oriented-tables) таблиц). Допустимые значения: `"ssd"`, `"rot"`.
6+
* `COMPRESSION` — кодек сжатия данных. Допустимые значения: `"off"`, `"lz4"`, `"zstd"` (только для [колоночных](../../../../concepts/datamodel/table.md#column-oriented-tables) таблиц).
7+
* `COMPRESSION_LEVEL` — уровень сжатия кодека (поддерживается только для [колоночных](../../../../concepts/datamodel/table.md#column-oriented-tables) таблиц), если кодек поддерживает уровень сжатия.
138

149
По умолчанию все колонки находятся в одной группе с именем `default`. При желании, параметры этой группы тоже можно переопределить.
1510

16-
В примере ниже для создаваемой таблицы добавляется группа колонок `family_large` и устанавливается для колонки `series_info`, а также переопределяются параметры для группы `default`, которая по умолчанию установлена для всех остальных колонок.
17-
18-
```yql
19-
CREATE TABLE series_with_families (
20-
series_id Uint64,
21-
title Utf8,
22-
series_info Utf8 FAMILY family_large,
23-
release_date Uint64,
24-
PRIMARY KEY (series_id),
25-
FAMILY default (
26-
DATA = "ssd",
27-
COMPRESSION = "off"
28-
),
29-
FAMILY family_large (
30-
DATA = "rot",
31-
COMPRESSION = "lz4"
32-
)
33-
);
34-
```
11+
В примерах ниже для создаваемых таблиц добавляется группа колонок `family_large` и устанавливается для колонки `series_info`, а также переопределяются параметры для группы `default`, которая по умолчанию установлена для всех остальных колонок.
12+
13+
14+
{% list tabs %}
15+
16+
- Создание строковой таблицы
17+
18+
```sql
19+
CREATE TABLE series_with_families (
20+
series_id Uint64,
21+
title Utf8,
22+
series_info Utf8 FAMILY family_large,
23+
release_date Uint64,
24+
PRIMARY KEY (series_id),
25+
FAMILY default (
26+
DATA = "ssd",
27+
COMPRESSION = "off"
28+
),
29+
FAMILY family_large (
30+
DATA = "rot",
31+
COMPRESSION = "lz4"
32+
)
33+
);
34+
```
35+
36+
- Создание колоночной таблицы
37+
38+
```sql
39+
CREATE TABLE series_with_families (
40+
series_id Uint64,
41+
title Utf8,
42+
series_info Utf8 FAMILY family_large,
43+
release_date Uint64,
44+
PRIMARY KEY (series_id),
45+
FAMILY default (
46+
COMPRESSION = "lz4"
47+
),
48+
FAMILY family_large (
49+
COMPRESSION = "zstd",
50+
COMPRESSION_LEVEL = 5
51+
)
52+
)
53+
WITH (STORE = COLUMN);
54+
```
55+
56+
{% endlist %}
3557

3658
{% note info %}
3759

ydb/docs/ru/core/yql/reference/yql-core/syntax/create_table/index.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,9 @@ CREATE TABLE <table_name> (
246246
* [Группы колонок](family.md).
247247
* [Дополнительные параметры](with.md).
248248

249-
Для колоночных таблиц при их создании возможно задать только [дополнительные параметры](with.md).
249+
Для колоночных таблиц при их создании возможно задать:
250+
251+
* [Группы колонок](family.md).
252+
* [Дополнительные параметры](with.md).
250253

251254
{% endif %}

0 commit comments

Comments
 (0)