diff options
author | mzinal <mzinal@yandex-team.com> | 2022-08-16 21:04:59 +0300 |
---|---|---|
committer | mzinal <mzinal@yandex-team.com> | 2022-08-16 21:04:59 +0300 |
commit | 54cb0f7a108ced72164520dee2637522fe2f7c81 (patch) | |
tree | d34ce3ac03af9e3c1a07b46b0826b9975b8f564b | |
parent | eea0d7f2ed8b13d2ee65cf39532df479e8862667 (diff) | |
download | ydb-54cb0f7a108ced72164520dee2637522fe2f7c81.tar.gz |
added column group overview
-rw-r--r-- | ydb/docs/ru/core/concepts/datamodel/_includes/table.md | 20 |
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). + +Доступ к данным, хранящимся в полях основной группы колонок, является более быстрым и требует меньше ресурсов, чем доступ к данным той же самой строки таблицы, хранящимся в полях дополнительно созданных групп колонок. Поиск по первичному ключу всегда осуществляется в основной группе колонок. При обращении к полям в других группах колонок помимо поиска по первичному ключу необходимы дополнительные поисковые операции для определения конкретной позиции хранения этих полей. + +Таким образом, вынос части колонок таблицы в отдельную группу колонок позволяет ускорить чтение наиболее важных и часто используемых колонок (входящих в состав основной группы колонок) ценой некоторого замедления доступа к остальным колонкам. Кроме того, на уровне групп колонок осуществляется управление параметрами хранения данных - выбор типа устройств хранения и режима сжатия. |