---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/yql/reference/syntax/alter_table/family.md?version=v25.3
  - https://ydb.tech/docs/ru/yql/reference/syntax/alter_table/family.md?version=v25.3
  - href: ru/yql/reference/syntax/alter_table/family.md
    type: text/markdown
    title: Markdown version
  - href: ../../../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/yql/reference/syntax/alter_table/family.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Создание и изменение групп колонок

Механизм [групп](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=v25.3#column-groups) колонок позволяет увеличить производительность операций неполного чтения строк путем разделения хранения колонок строковой таблицы на несколько групп. Наиболее часто используемый сценарий — организация хранения редко используемых атрибутов в отдельной группе колонок.


## Создание группы колонок

`ADD FAMILY` — создаёт новую группу колонок в строковой таблице. Приведенный ниже код создаст в таблице `series_with_families` группу колонок `family_small`.

```yql
ALTER TABLE series_with_families ADD FAMILY family_small (
    DATA = "ssd",
    COMPRESSION = "off"
);
```

## Изменение групп колонок

При помощи команды `ALTER COLUMN` можно изменить группу колонок для указанной колонки. Приведённый ниже код для колонки `release_date` в таблице `series_with_families` сменит группу колонок на `family_small`.

```yql
ALTER TABLE series_with_families ALTER COLUMN release_date SET FAMILY family_small;
```

Две предыдущие команды можно объединить в один вызов `ALTER TABLE`. Приведённый ниже код создаст в таблице `series_with_families` группу колонок `family_small` и установит её для колонки `release_date`.

```yql
ALTER TABLE series_with_families
  ADD FAMILY family_small (
      DATA = "ssd",
      COMPRESSION = "off"
  ),
  ALTER COLUMN release_date SET FAMILY family_small;
```

При помощи команды `ALTER FAMILY` можно изменить параметры группы колонок.

### Изменение типа хранилища


<!-- source: ru/_includes/only_allow_for_oltp_note.md -->
{% note warning %}

<!-- source: ru/_includes/only_allow_for_oltp_text.md -->
Поддерживается только для [строковых](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=v25.3#row-oriented-tables) таблиц.
<!-- endsource: ru/_includes/only_allow_for_oltp_text.md -->

{% endnote %}
<!-- endsource: ru/_includes/only_allow_for_oltp_note.md -->


Приведённый ниже код для группы колонок `default` в таблице `series_with_families` сменит тип хранилища на `rot`:

```yql
ALTER TABLE series_with_families ALTER FAMILY default SET DATA "rot";
```

{% note info %}

Доступные типы устройств хранения зависят от конфигурации кластера YDB.

{% endnote %}

### Изменение кодека сжатия


<!-- source: ru/_includes/codec_zstd_allow_for_olap_note.md -->
{% note warning %}

<!-- source: ru/_includes/codec_zstd_allow_for_olap_text.md -->
Кодек `"zstd"` поддерживается только для [колоночных](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=v25.3#column-oriented-tables) таблиц.
<!-- endsource: ru/_includes/codec_zstd_allow_for_olap_text.md -->

{% endnote %}
<!-- endsource: ru/_includes/codec_zstd_allow_for_olap_note.md -->


Приведённый ниже код для группы колонок `default` в таблице `series_with_families` сменит кодек сжатия на `lz4`:

```yql
ALTER TABLE series_with_families ALTER FAMILY default SET COMPRESSION "lz4";
```

### Изменение уровня кодека сжатия


<!-- source: ru/_includes/only_allow_for_olap_note.md -->
{% note warning %}

<!-- source: ru/_includes/only_allow_for_olap_text.md -->
Поддерживается только для [колоночных](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=v25.3#column-oriented-tables) таблиц.
<!-- endsource: ru/_includes/only_allow_for_olap_text.md -->

{% endnote %}
<!-- endsource: ru/_includes/only_allow_for_olap_note.md -->


Приведённый ниже код для группы колонок `default` в таблице `series_with_families` сменит уровень кодека сжатия, если он поддерживает различные уровни сжатия:

```yql
ALTER TABLE series_with_families ALTER FAMILY default SET COMPRESSION_LEVEL 5;
```

Могут быть указаны все параметры группы колонок, описанные в команде [`CREATE TABLE`](https://ydb.tech/docs/ru/yql/reference/syntax/create_table/secondary_index.md?version=v25.3)