Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Database
  • Начало работы
    • Обзор
    • Создание базы данных
    • YQL
      • Работа с данными
      • Работа с YDB CLI
      • Работа с YDB SDK
    • Document API
      • Работа с данными
      • Работа с инструментами AWS
        • Настройка окружения
  • Пошаговые инструкции
    • Работа с YDB CLI
      • Структура и описание команд YDB CLI
      • Получение информации об объекте схемы
      • Потоковое чтение таблицы
      • Работа со вторичными индексами
    • Использование плана запроса и AST
    • Управление базами данных
    • Подключение к базе данных
    • Управление таблицами
    • Чтение и запись данных
    • Работа со вторичными индексами
  • Работа с SDK
  • Концепции
    • Обзор
    • Модель данных и схема
    • Режимы работы Serverless и Dedicated
    • Типы данных
    • Транзакции
    • Вторичные индексы
    • Time to Live (TTL)
    • Термины и определения
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
    • Режим с выделенными инстансами
  • Рекомендации
    • Проектирование схемы
    • Партицирование таблиц
    • Вторичные индексы
    • Постраничный вывод
    • Загрузка больших объемов данных
    • Использование таймаутов
  • YDB API и справочник
    • Ограничения базы данных
    • Обработка ошибок в API
  • HTTP API, совместимый с Amazon DynamoDB
    • Справочник API
      • Все методы
      • Actions
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
      • Общие ошибки
  • Справочник YQL
    • Обзор
    • Типы данных
      • Простые
      • Опциональные
      • Контейнеры
      • Специальные
    • Синтаксис
      • Неподдерживаемые конструкции
      • Работа с текстовым представлением типов данных
      • Выражения
      • CREATE TABLE
      • DROP TABLE
      • INSERT INTO
      • UPSERT INTO
      • REPLACE INTO
      • UPDATE
      • DELETE
      • SELECT
      • GROUP BY
      • JOIN
      • FLATTEN
      • ACTION
      • DISCARD
      • PRAGMA
      • DECLARE
      • OVER, PARTITION BY и WINDOW
    • Встроенные функции
      • Базовые
      • Агрегатные
      • Оконные
      • Для работы со списками
      • Для работы со словарями
      • Для работы с JSON
      • Для работы со структурами
      • Для работы с типами
    • Предустановленные пользовательские функции
      • HyperScan
      • Pcre
      • Pire
      • Re2
      • String
      • Unicode
      • Datetime
      • Url
      • Ip
      • Digest
      • Math
      • Histogram
    • Работа с текстовым представлением типов данных
  • Туториал YQL
    • Обзор
    • Создание таблицы
    • Добавление данных в таблицу
    • Выборка данных из всех колонок
    • Выборка данных из определенных колонок
    • Сортировка и фильтрация
    • Агрегирование данных
    • Дополнительные условия выборки
    • Объединение таблиц с помощью JOIN
    • Вставка и модификация данных с помощью REPLACE
    • Вставка и модификация данных с помощью UPSERT
    • Вставка данных с помощью INSERT
    • Обновление данных с помощью UPDATE
    • Удаление данных
    • Добавление и удаление колонок
    • Удаление таблицы
  • Обслуживание
    • Резервное копирование
  • Диагностика
    • Системные таблицы
  • Вопросы и ответы
    • Общие вопросы
    • Ошибки
    • YQL
    • Все вопросы на одной странице
  • Публичные материалы
  1. Пошаговые инструкции
  2. Управление таблицами

Управление таблицами

  • Создать таблицу
  • Изменить структуру таблицы
  • Удалить таблицу
  • Создать и удалить директории

Узнайте как создать, отредактировать или удалить таблицу. Для создания таблицы вам понадобится база данных.

Создать таблицу

Консоль управления
SQL

Вы можете создавать таблицы двух типов:

  • YDB-таблица — реляционная таблица с индексом по первичному ключу. Таблица YDB всегда упорядочена по первичному ключу.

  • Документная таблица — тип таблиц, совместимый с Amazon DynamoDB. Этот тип таблиц доступен только в бессерверном режиме работы Yandex Database.

    Документная таблица содержит данные в виде набора элементов. Каждый элемент представляет собой набор атрибутов. Атрибут — единица данных, представленная в документной таблице в виде пары ключ-значение, атрибуты во много похожи на столбцы реляционных таблиц. При создании документной таблицы обязательно требуется задать первичный ключ, который служит уникальным идентификатором элементов таблицы. Первичный ключ представляет собой набор атрибутов. Все элементы таблицы обязаны содержать атрибуты, входящие в первичный ключ таблицы. За исключением первичного ключа, элементы могут содержать произвольные атрибуты произвольных типов.

Создать YDB-таблицу

  1. В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
  2. Выберите базу данных, в которой нужно создать таблицу.
  3. Выберите Создать → Таблица в правой части страницы.
  4. Настройте параметры таблицы:
    • Имя таблицы. Должно быть уникальным в рамках базы данных.
    • Тип таблицы — YDB-таблица.
  5. Добавьте колонки:
    • Имя колонки. Должно быть уникальным в рамках таблицы.
    • Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
    • Первичный ключ. Укажите, входит ли колонка в состав первичного ключа. По первичному ключу автоматически строятся первичные индексы.
  6. При необходимости настройте вторичные индексы:
    • Имя вторичного индекса. Должно быть уникальным в рамках таблицы.
    • Ключ — одна или несколько колонок, которые образуют ключ для построения вторичного индекса.
  7. Настройте политику партицирования:
    • Нет — таблица не партицируется.
    • Uniform — весь диапазон значений ключевой колонки типа Uint32 или Uint64 (от 0 до максимального значения) разбивается на интервалы одинаковой длины. При использовании такой политики задайте число интервалов в поле Количество.
    • Explicit — позволяет явно указать значения ключей, которые будут выступать границами для первоначального разбиения таблицы на партиции. Чтобы добавить очередное граничное значение, нажмите кнопку Add split point.
  8. Настройте автопартицирование:
    • By size — если включено, то партиция разделяется на две при достижении определенного размера данных.
    • By load — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
  9. Задайте расширенные настройки таблицы:
    • Autopartition by size MBs — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
    • Min partitions — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
    • Max partitions — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
    • Key bloom filter — если включено, использует Блум-фильтр для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
  10. Нажмите кнопку Создать таблицу.

Создать документную таблицу

Примечание

Документные таблицы доступны только в бессерверном режиме работы Yandex Database.

  1. В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
  2. Выберите базу данных, в которой нужно создать таблицу.
  3. Выберите Создать → Таблица в правой части страницы.
  4. Настройте параметры таблицы:
    • Имя таблицы. Должно быть уникальным в рамках базы данных.
    • Тип таблицы — документная таблица.
  5. Добавьте колонки:
    • Имя колонки. Должно быть уникальным в рамках таблицы.
    • Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
    • Ключ партицирования — простой первичный ключ, который состоит из одного атрибута. YDB использует значение ключа партицирования в качестве входных данных для внутренней функции хэширования. Результат вычисления хэш функции определяет партицию, на которой элемент будет храниться.
    • Ключ сортировки. Первичный ключ может быть составным и состоять из ключа партицирования и ключа сортировки. Все элементы с одинаковым ключом партицирования будут храниться вместе, отсортированные по значению ключа сортировки. Если в документной таблице задан ключ партицирования и ключ сортировки, два элемента могут содержать одинаковое значение ключа партицирования, но должны содержать различные значения ключа сортировки.
  6. Нажмите кнопку Создать таблицу.

Чтобы создать таблицу, укажите:

  1. Имя таблицы.
  2. Имена и типы данных для каждой колонки.
  3. Колонки, формирующие первичный ключ. Первичный ключ в таблицах 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 можно добавлять неключевые колонки в таблицу и изменять настройки автопартицирования таблиц.

Консоль управления
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
  2. Выберите базу данных, в которой нужно изменить таблицу.
  3. Найдите таблицу в списке и выберите → Изменить.
  4. Добавьте новые колонки в таблицу и укажите их параметры:
    • Имя колонки. Должно быть уникальным в рамках таблицы.
    • Тип данных колонки. Независимо от типа данных, каждая колонка может содержать значение NULL.
  5. Чтобы удалить неключевые колонки из таблицы, нажмите на значок в нужной строке. Удалить колонки, которые образуют первичный ключ, невозможно.
  6. Настройте автопартицирование:
    • By size — если включено, то партиция разделяется на две при достижении определенного размера данных.
    • By load — если включено, то партиция разделяется на две если в течение некоторого промежутка времени испытывает высокую нагрузку (потребляет много процессорного времени).
  7. Задайте расширенные настройки таблицы:
    • Autopartition by size MBs — пороговое значение размера данных, при котором срабатывает автопартицирование по размеру.
    • Min partitions — количество партиций в таблице, ниже которого не происходит слияние партиций по размеру или нагрузке.
    • Max partitions — количество партиций в таблице, выше которого не происходит разбиение по размеру или нагрузке.
    • Key bloom filter — если включено, использует Блум-фильтр для поиска по ключу. В некоторых случаях позволяет ускорить чтение по ключу.
  8. Нажмите кнопку Изменить таблицу.

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;

Удалить таблицу

Консоль управления
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
  2. Выберите базу данных, в которой нужно удалить таблицу.
  3. Найдите таблицу в списке и выберите → Удалить.
  4. Подтвердите удаление.

DROP TABLE удаляет указанную таблицу. Если таблицы с таким именем не существует, возвращается ошибка. Приведенный ниже код вернет ошибку Table not found, так как мы не создавали таблицу actors.

DROP TABLE actors;

Создать и удалить директории

Консоль управления
SDK
  1. В консоли управления перейдите на страницу каталога и выберите сервис Yandex Database.
  2. Выберите базу данных, в которой нужно создать директорию.
  3. Выберите Создать → Директория в правой части страницы.
  4. Введите имя директории и нажмите кнопку Создать директорию.

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
В этой статье:
  • Создать таблицу
  • Изменить структуру таблицы
  • Удалить таблицу
  • Создать и удалить директории
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»