[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for YDB](../index.md) > [Пошаговые инструкции](index.md) > Управление таблицами и директориями

# Управление таблицами и директориями

В этом разделе описано, как с помощью облачной консоли управления или [Terraform](../../tutorials/infrastructure-management/terraform-quickstart.md) управлять строковыми и документными таблицами, а также директориями.

Доступны следующие операции:
* [Создать таблицу](#create-table).
* [Изменить структуру таблицы](#alter-table).
* [Удалить таблицу](#drop-table).
* [Создать и удалить директории](#directories).

Для работы с таблицами и директориями понадобится заранее созданная [база данных](index.md).

## Создать таблицу {#create-table}

Вы можете создать строковую или [документную](../concepts/dynamodb-tables.md) таблицы.

### Строковая таблица {#create-ydb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
  1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
  1. Выберите базу данных, в которой нужно создать таблицу.
  1. Перейдите на вкладку **Навигация**.
  1. Выберите **Создать** → **Таблицу** в правой части страницы.
  1. Настройте параметры таблицы:
     * **Имя** таблицы. Должно быть уникальным в рамках базы данных.
     * **Тип таблицы** — `Строковая таблица`.
  1. Добавьте колонки:
     * **Имя** колонки. Должно быть уникальным в рамках таблицы.
     * **Тип** данных колонки. Независимо от типа данных, каждая колонка может содержать значение `NULL`.
     * **Первичный ключ**. Укажите, входит ли колонка в состав первичного ключа. По первичному ключу автоматически строятся первичные индексы.
  1. При необходимости настройте [вторичные индексы](https://ydb.tech/docs/ru//concepts/secondary_indexes):
     * **Имя** вторичного индекса. Должно быть уникальным в рамках таблицы.
     * **Ключ** — одна или несколько колонок, которые образуют ключ для построения вторичного индекса.
  1. Настройте политику [партиционирования](https://ydb.tech/docs/ru//concepts/datamodel):
     * `Нет` — таблица не партиционируется.
     * `Равномерно` — весь диапазон значений ключевой колонки типа Uint32 или Uint64 (от 0 до максимального значения) разбивается на интервалы одинаковой длины. При использовании такой политики задайте число интервалов в поле **Количество**.
     * `Явно` — позволяет явно указать значения ключей, которые будут выступать границами для первоначального разбиения таблицы на партиции. Чтобы добавить очередное граничное значение, нажмите кнопку **Добавить ключ-границу шарда**.
  1. Настройте автопартицирование:
     * **По размеру** — если включено, то партиция разделяется на две при достижении определенного размера данных.
     * **По нагрузке** — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
  1. Задайте расширенные настройки таблицы:
     * **Автопартицирование по размеру MB** — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
     * **Минимальное количество партиций** — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
     * **Максимальное количество партиций** — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
     * **Фильтр Блума для первичного ключа** — если включено, использует [Блум-фильтр](https://ru.wikipedia.org/wiki/Фильтр_Блума) для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
  1. Нажмите кнопку **Создать таблицу**.

  Для создания строковых таблиц также можно воспользоваться командой [`CREATE TABLE`](https://ydb.tech/docs/ru//yql/reference/syntax/create_table).


- Terraform {#tf}

   О том, как создать строковую таблицу с помощью Terraform, можно узнать из статьи [Создание строковых и колоночных таблиц в базе данных](../terraform/tables.md).

{% endlist %}

### Документная таблица {#create-dynamodb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

  {% note info %}

  Документные таблицы доступны только в бессерверном режиме работы Managed Service for YDB.

  {% endnote %}

  1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
  1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
  1. Выберите базу данных, в которой нужно создать таблицу.
  1. Выберите **Создать** → **Таблицу** в правой части страницы.
  1. Настройте параметры таблицы:
     * **Имя** таблицы. Должно быть уникальным в рамках базы данных.
     * **Тип таблицы** — `Документная таблица`.
  1. Добавьте колонки:
     * **Имя** колонки. Должно быть уникальным в рамках таблицы.
     * **Тип** данных колонки. Независимо от типа данных, каждая колонка может содержать значение `NULL`.
     * **Ключ партицирования** — простой первичный ключ, который состоит из одного атрибута. YDB использует значение ключа партицирования в качестве входных данных для внутренней функции хеширования. Результат вычисления хеш-функции определяет партицию, на которой элемент будет храниться.
     * **Ключ сортировки**. Первичный ключ может быть составным и состоять из ключа партицирования и ключа сортировки. Все элементы с одинаковым ключом партицирования будут храниться вместе, отсортированные по значению ключа сортировки. Если в документной таблице задан ключ партицирования и ключ сортировки, два элемента могут содержать одинаковое значение ключа партицирования, но должны содержать различные значения ключа сортировки.
  1. Нажмите кнопку **Создать таблицу**.

- Terraform {#tf}

   О том, как создать документную таблицу с помощью Terraform, можно узнать из статьи [Создание документных таблиц в базе данных](../terraform/dynamodb-tables.md).

{% endlist %}

### Колоночная таблица {#create-column-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
  1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
  1. Выберите базу данных, в которой нужно создать таблицу.
  1. Перейдите на вкладку **Навигация**.
  1. Выберите **Создать** → **Таблицу** в правой части страницы.
  1. Настройте параметры таблицы:
     * **Имя** таблицы. Должно быть уникальным в рамках базы данных.
     * **Тип таблицы** — `Колоночная таблица`.
  1. Добавьте колонки:
     * **Имя** колонки. Должно быть уникальным в рамках таблицы.
     * **Тип** данных колонки.
     * **Первичный ключ**. Укажите, входит ли колонка в состав первичного ключа. По первичному ключу автоматически строится первичный индекс.

        {% note info %}

        Порядок колонок в первичном ключе определяется порядком колонок в создаваемой таблице.

        {% endnote %}

     * **Ограничение NOT NULL**. Укажите, может ли колонка содержать значение `NULL`.
     <!-- * **Значение по умолчанию**. Укажите значение колонки по умолчанию. -->
  1. Настройте параметры TTL таблицы:
     * **Колонка**. Выберите колонку, значение которой будет использоваться для вычисления времени жизни строк.
     * **Время жизни**. Укажите время жизни строк таблицы.
     * **Единица измерения**. Выберите единицу измерения указанного времени жизни строк таблицы.
  1. Настройте партицирование:
     * **Ключ партицирования** — Укажите колонку, по которой будет партицироваться таблица.
     * **Количество партиций** — Укажите количество партиций таблицы.
  1. Нажмите кнопку **Создать таблицу**.

  Для создания колоночных таблиц также можно воспользоваться командой [`CREATE TABLE`](https://ydb.tech/docs/ru//yql/reference/syntax/create_table).


- Terraform {#tf}

   О том, как создать колоночную таблицу с помощью Terraform, можно узнать из статьи [Создание строковых и колоночных таблиц в базе данных](../terraform/tables.md).

{% endlist %}

## Изменить структуру таблицы {#alter-table}

### Строковая таблица {#alter-ydb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   В облачной консоли YDB можно добавлять неключевые колонки в таблицу и изменять настройки автопартицирования таблиц.

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Выберите базу данных, в которой нужно изменить таблицу.
   1. Найдите таблицу в списке и выберите ![image](../../_assets/horizontal-ellipsis.svg) → **Изменить**.
   1. Добавьте новые колонки в таблицу и укажите их параметры:
      * **Имя** колонки. Должно быть уникальным в рамках таблицы.
      * **Тип** данных колонки. Независимо от типа данных, каждая колонка может содержать значение `NULL`.
   1. Чтобы удалить неключевые колонки из таблицы, нажмите на значок ![image](../../_assets/cross.svg) в нужной строке. Удалить колонки, которые образуют первичный ключ, невозможно.
   1. Настройте автопартицирование:
      * **По размеру** — если включено, то партиция разделяется на две при достижении определенного размера данных.
      * **По нагрузке** — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
   1. Задайте расширенные настройки таблицы:
      * **Автопартицирование по размеру MB** — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
      * **Минимальное количество партиций** — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
      * **Максимальное количество партиций** — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
      * **Фильтр Блума для первичного ключа** — если включено, использует [Блум-фильтр](https://ru.wikipedia.org/wiki/Фильтр_Блума) для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
   1. Нажмите кнопку **Изменить таблицу**.

- Terraform {#tf}

   Сущности таблицы, которые можно изменять с помощью Terraform, описаны в статье [Создание строковых и колоночных таблиц в базе данных](../terraform/tables.md).

{% endlist %}

### Документная таблица {#alter-dynamodb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   {% note info %}

   В данный момент поддерживается только добавление новых строк в таблицу, а превью в консоли управления отключено.

   {% endnote %}

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Выберите базу данных, в которой нужно изменить таблицу.
   1. Найдите таблицу в списке и кликнете по ней.
   1. Нажмите кнопку **Добавить строку**.
   1. Введите желаемые значения для перечисленных в форме колонок и нажмите кнопку **Добавить**.

- Terraform {#tf}

   Сущности таблицы, которые  можно изменять с помощью Terraform описаны в статье [Создание документных таблиц в базе данных](../terraform/dynamodb-tables.md).

{% endlist %}

Для изменения строковых таблиц также предназначена команда [`ALTER TABLE`](https://ydb.tech/docs/ru//yql/reference/syntax/alter_table).

### Колоночная таблица {#alter-column-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Выберите базу данных, в которой нужно изменить таблицу.
   1. Найдите таблицу в списке и выберите ![image](../../_assets/horizontal-ellipsis.svg) → **Изменить**.

        Выполните необходимые изменения в структуре таблицы. Доступны следующие действия:

        -  Добавьте новые колонки в таблицу и укажите их параметры:
            * **Имя** колонки. Должно быть уникальным в рамках таблицы.
            * **Тип** данных колонки. Независимо от типа данных, каждая колонка может содержать значение `NULL`.
        -  Удалите неключевые колонки из таблицы, нажмите на значок ![image](../../_assets/cross.svg) в нужной строке. Удалить колонки, которые образуют первичный ключ, невозможно.
        -  Настройте параметры TTL таблицы:
            * **Колонка**. Выберите колонку, значение которой будет использоваться для вычисления времени жизни строк.
            * **Время жизни**. Укажите время жизни строк таблицы.
            * **Единица измерения**. Выберите единицу измерения указанного времени жизни строк таблицы.

   1. Нажмите кнопку **Изменить таблицу**.

  Для изменения колоночных таблиц также можно воспользоваться командой [`ALTER TABLE`](https://ydb.tech/docs/ru//yql/reference/syntax/alter_table).


- Terraform {#tf}

   Сущности таблицы, которые можно изменять с помощью Terraform, описаны в статье [Создание строковых и колоночных таблиц в базе данных](../terraform/tables.md).

   {% note info %}

   Изменение параметров колоночной таблицы `store` и `partition_by` приведет к пересозданию таблицы.

   {% endnote %}

{% endlist %}

## Удалить таблицу {#drop-table}

### Строковая таблица {#drop-ydb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Выберите базу данных, в которой нужно удалить таблицу.
   1. Найдите таблицу в списке и выберите ![image](../../_assets/horizontal-ellipsis.svg) → **Удалить**.
   1. Подтвердите удаление.

- Terraform {#tf}

   Для удаления строковой таблицы удалите ресурс `yandex_ydb_table`.

{% endlist %}

### Документная таблица {#drop-dynamodb-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Перейдите базу данных, в которой нужно удалить документную таблицу.
   1. Выберите документную таблицу из списка таблиц, нажмите ![image](../../_assets/horizontal-ellipsis.svg) → **Удалить**.
   1. Подтвердите удаление.

- Terraform {#tf}

   Для удаления документной таблицы удалите ресурс `aws_dynamodb_table`.

{% endlist %}

### Колоночная таблица {#drop-ydb-column-table}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
   1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
   1. Выберите базу данных, в которой нужно удалить таблицу.
   1. Найдите таблицу в списке и выберите ![image](../../_assets/horizontal-ellipsis.svg) → **Удалить**.
   1. Подтвердите удаление.

- Terraform {#tf}

   Для удаления колоночной таблицы удалите ресурс `yandex_ydb_table`.

{% endlist %}

Для удаления таблиц также предназначена команда [`DROP TABLE`](https://ydb.tech/docs/ru//yql/reference/syntax/drop_table).

## Создать и удалить директории {#directories}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) перейдите на страницу каталога.
  1. Перейдите в сервис **Managed Service for&nbsp;YDB**.
  1. Выберите базу данных, в которой нужно создать директорию.
  1. Выберите **Создать** → **Директорию** в правой части страницы.
  1. Введите имя директории и нажмите кнопку **Создать директорию**.

{% endlist %}