Загрузка из файловой системы
Команда tools restore
создает в базе данных объекты схемы данных и загружает в них данные из файловой системы, ранее выгруженные туда командой tools dump
, или подготовленные вручную в соответствии с правилами, описанными в статье Файловая структура:
ydb [connection options] tools restore -p PATH -i PATH [options]
, где [connection options]
— опции соединения с БД
Если таблица уже существует в базе данных -- в её схему не будет внесено изменений. Это может привести к тому, что операция загрузки данных не сможет быть выполнена, если не все колонки в загружаемых файлах присутствуют в таблице в базе данных или не подходят по типу.
Для загрузки данных в таблицу применяется команда YQL REPLACE
. Если до момента загрузки в таблице существовали записи, то те из них, ключи которых существуют в загружаемых файлах, будут заменены данными из файлов; записи с теми ключами, которых не существует в загружаемых файлах, останутся без изменений.
Обязательные параметры
-p PATH
или --path PATH
: Путь к директории в базе данных, внутрь которой будет выполняться загрузка. Для загрузки в корневой каталог укажите .
. Все отсутствующие директории на пути будут созданы.
-i PATH
или --input PATH
: Путь к директории в клиентской файловой системе, откуда будет выполняться загрузка.
Необязательные параметры
[options]
- необязательные параметры команды:
--restore-data VAL
: Флаг загрузки данных, 1 (да) или 0 (нет), по умолчанию 1. Если флаг установлен в 0, то при загрузке будут только созданы объекты в схеме, а данные в них загружены не будут. Если в файловой системе нет данных (выгружена только схема), то изменение флага не имеет значения.
--restore-indexes VAL
: Флаг загрузки индексов, 1 (да) или 0 (нет), по умолчанию 1. Если флаг установлен в 0, то при загрузке вторичные индексы не будут ни зарегистрированы в схеме данных, ни заполнены данными.
--dry-run
: Режим проверки соответствия схемы данных в базе данных и файловой системе без внесения изменений в базу данных, 1 (да) или 0 (нет), по умолчанию 0. При включении данного режима проверяется, что:
- Все таблицы в файловой системе присутствуют в базе данных
- Схема данных объектов в файловой системе и базе данных одинаковая
--save-partial-result
: Сохранять результат неполной загрузки. Без включения данной опции ошибка в процессе выполнения загрузки приведет к восстановлению состояния базы данных на момент перед началом загрузки.
Параметры ограничения нагрузки
Приведенные ниже параметры позволяют ограничить нагрузку на базу данных, создаваемую в процессе загрузки данных.
Важно
Некоторые из перечисленных ниже параметров имеют действующие значения по умолчанию . Это значит, что если даже ни один из них не задан в команде вызова tools restore
, нагрузка все равно будет ограничена.
--bandwidth VAL
: Ограничение объема загрузки в секунду, по умолчанию 0 (не установлено). VAL
определяет объем, задается в виде числа с приставкой, например 2MiB.
--rps VAL
: Ограничение количества запросов на загрузку пакетов данных в базу данных в секунду, по умолчанию 30.
--in-flight VAL
: Ограничения количество запросов, одновременно находящихся в состоянии исполнения, по умолчанию 10.
--upload-batch-rows VAL
: Ограничение количества записей в пакете загружаемых данных, по умолчанию 0 (не ограничено). VAL
определяет количество записей, задается в виде числа с необязательной десятичной приставкой, например 1K.
--upload-batch-bytes VAL
: Ограничение объема пакета загружаемых данных, по умолчанию 512KB. VAL
определяет объем, задается в виде числа с приставкой, например 1MiB.
--upload-batch-rus VAL
: Применимо только для Serverless баз данных, ограничивает потребление Request Units (RU) на загрузку одного пакета, по умолчанию 30 RU. Размер пакета подбирается под указанное значение. VAL
определяет количество RU, задается в виде числа с необязательной десятичной приставкой, например 100 или 1K.
Примеры
Примечание
В примерах используется профиль quickstart
, подробнее смотрите в Создание профиля для соединения с тестовой БД.
Загрузка в корень базы данных
Из текущей директории файловой системы:
ydb -p quickstart tools restore -p . -i .
Из заданной директории файловой системы:
ydb -p quickstart tools restore -p . -i ~/backup_quickstart
Загрузка в заданную директорию в базе данных
Из текущей директории файловой системы:
ydb -p quickstart tools restore -p dir1/dir2 -i .
Из заданной директории файловой системы:
ydb -p quickstart tools restore -p dir1/dir2 -i ~/backup_quickstart
Проверка соответствия схемы данных в базе данных и файловой системе:
ydb -p quickstart tools restore -p dir1/dir2 -i ~/backup_quickstart --dry-run