aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormzinal <mzinal@yandex-team.com>2022-08-16 21:04:59 +0300
committermzinal <mzinal@yandex-team.com>2022-08-16 21:04:59 +0300
commit54cb0f7a108ced72164520dee2637522fe2f7c81 (patch)
treed34ce3ac03af9e3c1a07b46b0826b9975b8f564b
parenteea0d7f2ed8b13d2ee65cf39532df479e8862667 (diff)
downloadydb-54cb0f7a108ced72164520dee2637522fe2f7c81.tar.gz
added column group overview
-rw-r--r--ydb/docs/ru/core/concepts/datamodel/_includes/table.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
index 23aa912401..5d31c6aed4 100644
--- a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
+++ b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
@@ -134,3 +134,23 @@
| Имя параметра | Тип | Допустимые значения | Возможность изменения | Возможность сброса |
| ------------- | --- | ------------------- | --------------------- | ------------------ |
| `KEY_BLOOM_FILTER` | Enum | `ENABLED`, `DISABLED` | Да | Нет |
+
+## Группы колонок {#column-groups}
+
+{{ ydb-short-name }} позволяет группировать колонки в таблице для оптимизации их хранения и использования. Механизм групп колонок позволяет увеличить производительность операций неполного чтения строк путём разделения хранения колонок таблицы на насколько групп. Наиболее часто используемый сценарий - организация хранения редко используемых атрибутов в отдельной группе колонок (и, возможно, с использованием сжатия и на более медленных устройствах хранения данных).
+
+У каждой группы колонок есть собственное имя, уникальное в рамках таблицы. Состав групп колонок устанавливается при создании таблицы, но может при необходимости быть расширен позднее (удаление групп колонок из существующей таблицы не предусмотрено).
+
+Группа колонок может содержать произвольное число колонок своей таблицы, в том числе не содержать ни одной. Каждая колонка таблицы принадлежит одной, и только одной группе колонок (группы колонок не пересекаются). Принадлежность колонок группам устанавливается при создании таблицы, но может быть изменена позднее.
+
+Для каждой таблицы существует основная группа колонок с именем `default`, в которую входят все колонки, для которых не указана явным образом другая группа колонок. Колонки первичного ключа всегда принадлежат основной группе колонок и не могут быть перемещены в другую группу.
+
+Для группы колонок устанавливаются атрибуты, влияющие на хранение данных, а именно:
+* используемый тип устройств хранения данных (например, SSD либо HDD, состав доступных типов устройств хранения зависит от конфигурации кластера YDB);
+* режим сжатия данных (выключено `OFF`, либо включено `LZ4`).
+
+Атрибуты группы колонок устанавливаются при создании таблицы (в том числе могут быть явно определены для основной группы колонок), а также могут быть изменены впоследствии. Изменения атрибутов хранения не применяются немедленно к хранимым данным, вместо этого они применяются при последующей ручной либо автоматической компактификации (LSM compaction).
+
+Доступ к данным, хранящимся в полях основной группы колонок, является более быстрым и требует меньше ресурсов, чем доступ к данным той же самой строки таблицы, хранящимся в полях дополнительно созданных групп колонок. Поиск по первичному ключу всегда осуществляется в основной группе колонок. При обращении к полям в других группах колонок помимо поиска по первичному ключу необходимы дополнительные поисковые операции для определения конкретной позиции хранения этих полей.
+
+Таким образом, вынос части колонок таблицы в отдельную группу колонок позволяет ускорить чтение наиболее важных и часто используемых колонок (входящих в состав основной группы колонок) ценой некоторого замедления доступа к остальным колонкам. Кроме того, на уровне групп колонок осуществляется управление параметрами хранения данных - выбор типа устройств хранения и режима сжатия.