Управление таблицами
Узнайте как создать, отредактировать или удалить таблицу. Для создания таблицы вам понадобится база данных.
Создать таблицу
Вы можете создавать таблицы двух типов:
-
YDB-таблица — реляционная таблица с индексом по первичному ключу. Таблица YDB всегда упорядочена по первичному ключу.
-
Документная таблица — тип таблиц, совместимый с Amazon DynamoDB. Этот тип таблиц доступен только в бессерверном режиме работы Yandex Database.
Документная таблица содержит данные в виде набора элементов. Каждый элемент представляет собой набор атрибутов. Атрибут — единица данных, представленная в документной таблице в виде пары ключ-значение, атрибуты во много похожи на столбцы реляционных таблиц. При создании документной таблицы обязательно требуется задать первичный ключ, который служит уникальным идентификатором элементов таблицы. Первичный ключ представляет собой набор атрибутов. Все элементы таблицы обязаны содержать атрибуты, входящие в первичный ключ таблицы. За исключением первичного ключа, элементы могут содержать произвольные атрибуты произвольных типов.
Создать YDB-таблицу
- В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
- Выберите базу данных, в которой нужно создать таблицу.
- Выберите Создать → Таблица в правой части страницы.
- Настройте параметры таблицы:
- Имя таблицы. Должно быть уникальным в рамках базы данных.
- Тип таблицы — YDB-таблица.
- Добавьте колонки:
- Имя колонки. Должно быть уникальным в рамках таблицы.
- Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
- Первичный ключ. Укажите, входит ли колонка в состав первичного ключа. По первичному ключу автоматически строятся первичные индексы.
- При необходимости настройте вторичные индексы:
- Имя вторичного индекса. Должно быть уникальным в рамках таблицы.
- Ключ — одна или несколько колонок, которые образуют ключ для построения вторичного индекса.
- Настройте политику партицирования:
- Нет — таблица не партицируется.
- Uniform — весь диапазон значений ключевой колонки типа Uint32 или Uint64 (от 0 до максимального значения) разбивается на интервалы одинаковой длины. При использовании такой политики задайте число интервалов в поле Количество.
- Explicit — позволяет явно указать значения ключей, которые будут выступать границами для первоначального разбиения таблицы на партиции. Чтобы добавить очередное граничное значение, нажмите кнопку Add split point.
- Настройте автопартицирование:
- By size — если включено, то партиция разделяется на две при достижении определенного размера данных.
- By load — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
- Задайте расширенные настройки таблицы:
- Autopartition by size MBs — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
- Min partitions — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
- Max partitions — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
- Key bloom filter — если включено, использует Блум-фильтр для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
- Нажмите кнопку Создать таблицу.
Создать документную таблицу
Примечание
Документные таблицы доступны только в бессерверном режиме работы Yandex Database.
- В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
- Выберите базу данных, в которой нужно создать таблицу.
- Выберите Создать → Таблица в правой части страницы.
- Настройте параметры таблицы:
- Имя таблицы. Должно быть уникальным в рамках базы данных.
- Тип таблицы — документная таблица.
- Добавьте колонки:
- Имя колонки. Должно быть уникальным в рамках таблицы.
- Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
- Ключ партицирования — простой первичный ключ, который состоит из одного атрибута. YDB использует значение ключа партицирования в качестве входных данных для внутренней функции хэширования. Результат вычисления хэш функции определяет партицию, на которой элемент будет храниться.
- Ключ сортировки. Первичный ключ может быть составным и состоять из ключа партицирования и ключа сортировки. Все элементы с одинаковым ключом партицирования будут храниться вместе, отсортированные по значению ключа сортировки. Если в документной таблице задан ключ партицирования и ключ сортировки, два элемента могут содержать одинаковое значение ключа партицирования, но должны содержать различные значения ключа сортировки.
- Нажмите кнопку Создать таблицу.
Чтобы создать таблицу, укажите:
- Имя таблицы.
- Имена и типы данных для каждой колонки.
- Колонки, формирующие первичный ключ. Первичный ключ в таблицах YDB является обязательным.
Таблицы в YDB имеют следующие характеристики:
- Каждая колонка может содержать значение NULL.
- При попытке создать таблицу с уже существующим именем не будет произведено никакого действия.
- Первичные индексы строятся по первичному ключу, являются уникальными и создаются автоматически.
Подробнее про модель данных и схему YDB читайте в разделе Модель данных и схема. Про поддерживаемые типы данных читайте в разделе Типы данных.
Оператор CREATE TABLE создает таблицу с указанными параметрами:
CREATE TABLE series
(
series_id Uint64,
title Utf8,
series_info Utf8,
release_date Uint64,
PRIMARY KEY (series_id)
);
CREATE TABLE seasons
(
series_id Uint64,
season_id Uint64,
title Utf8,
first_aired Uint64,
last_aired Uint64,
PRIMARY KEY (series_id, season_id)
);
CREATE TABLE episodes
(
series_id Uint64,
season_id Uint64,
episode_id Uint64,
title Utf8,
air_date Uint64,
PRIMARY KEY (series_id, season_id, episode_id)
);
В результате будет создана простая таблица series
с колонками series_id
, title
, series_info
и release_date
. Колонка series_id
является первичным ключом таблицы. Таблицы seasons
и episodes
описываются аналогичным образом.
Примечание
Подробнее о том, как добавить вторичные индексы при создании таблицы, читайте в разделе Добавление вторичных индексов.
Изменить структуру таблицы
В YDB можно добавлять неключевые колонки в таблицу и изменять настройки автопартицирования таблиц.
- В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
- Выберите базу данных, в которой нужно изменить таблицу.
- Найдите таблицу в списке и выберите → Изменить.
- Добавьте новые колонки в таблицу и укажите их параметры:
- Имя колонки. Должно быть уникальным в рамках таблицы.
- Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
- Чтобы удалить неключевые колонки из таблицы, нажмите на значок в нужной строке. Удалить колонки, которые образуют первичный ключ, невозможно.
- Настройте автопартицирование:
- By size — если включено, то партиция разделяется на две при достижении определенного размера данных.
- By load — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
- Задайте расширенные настройки таблицы:
- Autopartition by size MBs — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
- Min partitions — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
- Max partitions — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
- Key bloom filter — если включено, использует Блум-фильтр для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
- Нажмите кнопку Изменить таблицу.
ADD COLUMN добавляет колонку с указанными именем и типом. Приведенный ниже код добавит к таблице episodes
колонку is_deleted
с типом данных Bool
.
ALTER TABLE episodes ADD COLUMN is_deleted Bool;
DROP COLUMN удаляет колонку с указанными именем. Приведенный ниже код удалит колонку is_deleted
из таблицы episodes
.
ALTER TABLE episodes DROP COLUMN is_deleted;
Удалить таблицу
- В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
- Выберите базу данных, в которой нужно удалить таблицу.
- Найдите таблицу в списке и выберите → Удалить.
- Подтвердите удаление.
DROP TABLE удаляет указанную таблицу. Если таблицы с таким именем не существует, возвращается ошибка. Приведенный ниже код вернет ошибку Table not found
, так как мы не создавали таблицу actors.
DROP TABLE actors;
Создать и удалить директории
- В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
- Выберите базу данных, в которой нужно создать директорию.
- Выберите Создать → Директория в правой части страницы.
- Введите имя директории и нажмите кнопку Создать директорию.
SDK предоставляет методы создания, удаления, листинга и просмотра информации о директории.
В таблице ниже приведены имена методов в SDK для Java, Python и Go.
Метод | Java | Python | Go |
---|---|---|---|
Создание директории | SchemeClient.makeDirectory |
scheme_client.make_directory |
Client.MakeDirectory |
Удаление директории | SchemeClient.removeDirectory |
scheme_client.remove_directory |
Client.RemoveDirectory |
Просмотр информации о директории | SchemeClient.describePath |
SchemeClient.describeDirectory |
Client.DescribePath |
Листинг директории | scheme_client.describe_path |
SchemeClient.list_directory |
Client.ListDirectory |