diff options
author | bazeltsev <bazeltsev@ydb.tech> | 2022-08-19 13:22:53 +0300 |
---|---|---|
committer | bazeltsev <bazeltsev@ydb.tech> | 2022-08-19 13:22:53 +0300 |
commit | e71cec66a3f48389e9ae9bf34a4dd7613c965639 (patch) | |
tree | 6b66f106447533d2afb01739bcf876450417283d | |
parent | 36af596cd430a979838e9e66aad25ea0b380838f (diff) | |
download | ydb-e71cec66a3f48389e9ae9bf34a4dd7613c965639.tar.gz |
Improved clarity columns group
updated
3 files changed, 23 insertions, 10 deletions
diff --git a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md index 5d31c6aed4..aa6631b52b 100644 --- a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md +++ b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md @@ -12,7 +12,7 @@ ## Партиционирование {#partitioning} -Таблица в БД может быть шардирована по диапазонам значений первичного ключа. Каждый шард таблицы отвечает за свой диапазон первичных ключей. Диапазоны ключей, обслуживаемых разными шардами, не пересекаются. Различные шарды таблицы могут обслуживаться разными серверами распределенной БД (в том числе расположенными в разных локациях), а также могут независимо друг от друга перемещаться между серверами для перебалансировки или поддержания работоспособности шарда при отказах серверов или сетевого оборудования. +Таблица в БД может быть шардирована по диапазонам значений первичного ключа. Каждый шард таблицы отвечает за свой диапазон первичных ключей. Диапазоны ключей, обслуживаемых разными шардами, не пересекаются. Различные шарды таблицы могут обслуживаться разными серверами распределенной БД (в том числе расположенными в разных локациях), а также могут независимо друг от друга перемещаться между серверами для перебалансировки или поддержания работоспособности шарда при отказах серверов или сетевого оборудования. При малом объеме данных или небольшой нагрузке таблица может состоять из одного шарда. При росте объема данных, обслуживаемых шардом, или нагрузки на шард, {{ ydb-short-name }} автоматически разбивает его на два. Разбиение происходит по медианному значению первичного ключа, если размер шарда превышает порог. В случае разбиения по нагрузке шард сначала собирает сэмпл запрашиваемых ключей (читаемых, записываемых и удаляемых), и на основании этого сэмпла выбирает для разбиения такой ключ, чтоб нагрузка распределилась поровну между новыми шардами. Таким образом в случае разбиения по нагрузке новые шарды могут иметь существенно отличающийся размер. @@ -96,7 +96,7 @@ В схеме данных таблицы можно указать необходимость запуска реплик для чтения для каждого шарда таблицы. Обращения к репликам для чтения (фолловерам) типично происходят не покидая сети датацентра, что позволяет обеспечить время ответа в единицы миллисекунд: -| Имя параметра | Описание | Тип | Допустимые значения | Возможность изменения | Возможность сброса | +| Имя параметра | Описание | Тип | Допустимые значения | Возможность изменения | Возможность сброса | | ------------- | --------- | --- | ------------------- | --------------------- | ------------------ | | `READ_REPLICAS_SETTINGS` | `PER_AZ` означает использование указанного количества реплик в каждом AZ, `ANY_AZ` — во всех AZ суммарно. | String | `"PER_AZ:<count>"`, `"ANY_AZ:<count>"` где `<count>` — число реплик | Да | Нет | @@ -137,20 +137,21 @@ ## Группы колонок {#column-groups} -{{ ydb-short-name }} позволяет группировать колонки в таблице для оптимизации их хранения и использования. Механизм групп колонок позволяет увеличить производительность операций неполного чтения строк путём разделения хранения колонок таблицы на насколько групп. Наиболее часто используемый сценарий - организация хранения редко используемых атрибутов в отдельной группе колонок (и, возможно, с использованием сжатия и на более медленных устройствах хранения данных). +{{ ydb-short-name }} позволяет группировать колонки в таблице для оптимизации их хранения и использования. Механизм групп колонок позволяет увеличить производительность операций неполного чтения строк путем разделения хранения колонок таблицы на насколько групп. Наиболее часто используемый сценарий — организация хранения редко используемых атрибутов в отдельной группе колонок (и, возможно, с использованием сжатия и на более медленных устройствах хранения данных). -У каждой группы колонок есть собственное имя, уникальное в рамках таблицы. Состав групп колонок устанавливается при создании таблицы, но может при необходимости быть расширен позднее (удаление групп колонок из существующей таблицы не предусмотрено). +У каждой группы колонок есть собственное имя, уникальное в рамках таблицы. Состав групп колонок устанавливается при [создании таблицы](../../../yql/reference/syntax/create_table.md#column-family), а также может быть [изменен](../../../yql/reference/syntax/alter_table.md#column-family) позднее. Удаление групп колонок из существующей таблицы не предусмотрено. Группа колонок может содержать произвольное число колонок своей таблицы, в том числе не содержать ни одной. Каждая колонка таблицы принадлежит одной, и только одной группе колонок (группы колонок не пересекаются). Принадлежность колонок группам устанавливается при создании таблицы, но может быть изменена позднее. -Для каждой таблицы существует основная группа колонок с именем `default`, в которую входят все колонки, для которых не указана явным образом другая группа колонок. Колонки первичного ключа всегда принадлежат основной группе колонок и не могут быть перемещены в другую группу. +Для каждой таблицы существует основная группа колонок с именем `default`, в которую входят все колонки, для которых не указана явным образом другая группа колонок. Колонки первичного ключа всегда принадлежат основной группе колонок и не могут быть перемещены в другую группу. -Для группы колонок устанавливаются атрибуты, влияющие на хранение данных, а именно: -* используемый тип устройств хранения данных (например, SSD либо HDD, состав доступных типов устройств хранения зависит от конфигурации кластера YDB); -* режим сжатия данных (выключено `OFF`, либо включено `LZ4`). +Для группы колонок устанавливаются атрибуты, влияющие на хранение данных: + +* используемый тип устройст хранения данных (SSD или HDD, доступность типов зависит от конфигурации кластера {{ ydb-short-name }}); +* режим сжатия данных (без сжатия или сжатие алгоритмом [LZ4](https://ru.wikipedia.org/wiki/LZ4)). Атрибуты группы колонок устанавливаются при создании таблицы (в том числе могут быть явно определены для основной группы колонок), а также могут быть изменены впоследствии. Изменения атрибутов хранения не применяются немедленно к хранимым данным, вместо этого они применяются при последующей ручной либо автоматической компактификации (LSM compaction). Доступ к данным, хранящимся в полях основной группы колонок, является более быстрым и требует меньше ресурсов, чем доступ к данным той же самой строки таблицы, хранящимся в полях дополнительно созданных групп колонок. Поиск по первичному ключу всегда осуществляется в основной группе колонок. При обращении к полям в других группах колонок помимо поиска по первичному ключу необходимы дополнительные поисковые операции для определения конкретной позиции хранения этих полей. -Таким образом, вынос части колонок таблицы в отдельную группу колонок позволяет ускорить чтение наиболее важных и часто используемых колонок (входящих в состав основной группы колонок) ценой некоторого замедления доступа к остальным колонкам. Кроме того, на уровне групп колонок осуществляется управление параметрами хранения данных - выбор типа устройств хранения и режима сжатия. +Таким образом, вынос части колонок таблицы в отдельную группу колонок позволяет ускорить чтение наиболее важных и часто используемых колонок (входящих в состав основной группы колонок) ценой некоторого замедления доступа к остальным колонкам. Кроме того, на уровне групп колонок осуществляется управление параметрами хранения данных — выбор типа устройств хранения и режима сжатия. diff --git a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/alter_table.md b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/alter_table.md index 3950879ff0..d6bbd23094 100644 --- a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/alter_table.md +++ b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/alter_table.md @@ -134,6 +134,12 @@ ALTER TABLE series_with_families ALTER TABLE series_with_families ALTER FAMILY default SET DATA "hdd"; ``` +{% note info %} + +Доступные типы устройств хранения зависят от конфигурации кластера {{ ydb-short-name }}. + +{% endnote %} + Могут быть указаны все параметры группы колонок, описанные в команде [`CREATE TABLE`](create_table#column-family) diff --git a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/create_table.md b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/create_table.md index 3ded0e3a7c..246a951235 100644 --- a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/create_table.md +++ b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/create_table.md @@ -135,7 +135,7 @@ WITH ( Колонки одной таблицы можно объединять в группы, для того чтобы задать следующие параметры: -* `DATA` — тип хранилища для данных колонок этой группы. Допустимые значения: ```"ssd"```, ```"hdd"```. +* `DATA` — тип устройства хранения для данных колонок этой группы. Допустимые значения: ```"ssd"```, ```"hdd"```. * `COMPRESSION` — кодек сжатия данных. Допустимые значения: ```"off"```, ```"lz4"```. По умолчанию все колонки находятся в одной группе с именем ```default```. При желании, параметры этой группы тоже можно переопределить. @@ -160,6 +160,12 @@ CREATE TABLE series_with_families ( ); ``` +{% note info %} + +Доступные типы устройств хранения зависят от конфигурации кластера {{ ydb-short-name }}. + +{% endnote %} + {% endif %} |