Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Экспорт данных

$ tt [crud|tdg2] export URI SPACE:FILE ... [EXPORT_OPTION ...]

Команда tt [crud|tdg2] export экспортирует данные спейса в файл. Три команды экспорта предназначены для следующих случаев:

  • tt export экспортирует данные из набора реплик с использованием API box.space.
  • tt crud export экспортирует данные из шардированного кластера через роутер с использованием модуля CRUD.
  • tt tdg2 export экспортирует данные из кластера Tarantool Data Grid 2 через его коннектор с использованием TDG2 Repository API.

Команда tt [crud|tdg2] export принимает следующие аргументы:

  • URI: URI экземпляра роутера при использовании crud. В остальных случаях должен указывать URI хранилища.
  • FILE: Имя файла для хранения экспортируемых данных.
  • SPACE: Имя спейса, из которого экспортируются данные.

Формат вывода

Команда tt export экспортирует данные в следующих форматах:

  • tt export и tt crud export: CSV.
  • tt tdg2 export: JSON lines.

Ограничения

Экспорт не поддерживается для типа поля interval.

Экспорт с настройками по умолчанию

Приведенная ниже команда экспортирует данные спейса customers в файл customers.csv:

$ tt crud export localhost:3301 customers:customers.csv

Если в спейсе customers пять полей (id, bucket_id, firstname, lastname и age), файл с экспортированными данными может выглядеть так:

1,477,Andrew,Fuller,382,401,Michael,Suyama,463,2804,Robert,King,33# ...

Если кортеж содержит значение null, например, [1, 477, 'Andrew', null, 38], оно экспортируется как пустое значение:

1,477,Andrew,,38

Экспорт заголовков

Чтобы экспортировать данные с именами полей спейса в первой строке CSV-файла, используйте параметр --header:

$ tt crud export localhost:3301 customers:customers.csv  \                 --header

В этом случае значения полей начинаются со второй строки, например:

id,bucket_id,firstname,lastname,age1,477,Andrew,Fuller,382,401,Michael,Suyama,463,2804,Robert,King,33# ...

Экспорт составных данных

В формате CSV утилита tt по умолчанию экспортирует пустые значения для полей, содержащих составные данные, такие как массивы или карты. Чтобы экспортировать составные значения в определенном формате, используйте параметр --compound-value-format. Например, следующая команда экспортирует составные значения в CSV в сериализованном виде JSON:

$ tt crud export localhost:3301 customers:customers.csv  \                 --compound-value-format json

Экспорт из Tarantool Data Grid 2

Приведенная ниже команда экспортирует данные типа customers из кластера TDG2 в файл customers.jsonl:

$ tt tdg2 export localhost:3301 customers:customers.jsonl

Если в TDG2 включена аутентификация по токену, передайте токен приложения в параметре --token:

$ tt tdg2 export localhost:3301 customers:customers.jsonl \                 --token=2fc136cf-8cae-4655-a431-7c318967263d

Если в типе customers четыре поля (id, firstname, lastname и age), файл с экспортированными данными может выглядеть так:

{"age":30,"first_name":"Samantha","id":1,"second_name":"Carter"}{"age":41,"first_name":"Fay","id":2,"second_name":"Rivers"}{"age":74,"first_name":"Milo","id":4,"second_name":"Walters"}

Значения полей null пропускаются:

{"age":13,"first_name":"Zachariah","id":3}

Поля объектов, содержащие карты с нестроковыми ключами, преобразуются в карты со строковыми ключами.

В TDG2 действует ограничение на количество объектов, передаваемых из каждого хранилища при выполнении запроса (параметр конфигурации TDG2 hard-limits.returned). Если размер пакета экспорта (параметр --batch-size) превышает это ограничение, возможно, что из одного хранилища будет запрошено больше hard-limits.returned объектов, и экспорт завершится с ошибкой. Чтобы гарантировать, что значение hard-limits.returned не будет превышено во время экспорта, задайте размер пакета экспорта не больше этого ограничения.

Например, если в кластере TDG2 установлено ограничение hard-limits.returned в 1000 объектов:

# tdg2 config.yaml# ...hard-limits.returned: 1000

Задайте размер пакета для tt tdg2 export не больше 1000:

$ tt tdg2 export localhost:3301 customers:customers.jsonl --batch-size=1000

Аутентификация

При подключении к кластеру с включенной аутентификацией укажите учетные данные в параметрах --username и --password:

$ tt crud export localhost:3301 customers:customers.csv \                 --username myuser --password p4$$w0rD

Зашифрованное соединение

Для подключения к экземплярам, использующим SSL-шифрование, укажите файлы SSL-сертификата и SSL-ключа в параметрах --sslcertfile и --sslkeyfile. При необходимости добавьте другие SSL-параметры через параметры --ssl*.

$ tt crud export localhost:3301 customers:customers.csv \                 --username myuser --password p4$$w0rD   \                 --auth pap-sha256 --sslcertfile certs/server.crt \                 --sslkeyfile certs/server.key

Для соединений, использующих SSL, но не требующих дополнительных параметров, добавьте параметр --use-ssl:

$ tt crud export localhost:3301 customers:customers.csv \                 --username myuser --password p4$$w0rD   \                 --use-ssl

Параметры

--auth STRING

Применимо к: tt crud export, tt tdg2 export

Тип аутентификации: chap-sha1, pap-sha256 или auto.

--batch-queue-size INT

Максимальное количество пакетов кортежей в очереди между потоками чтения и записи (по умолчанию 32).

Утилита tt экспортирует данные с использованием двух потоков:

  • Поток чтения отправляет запросы и получает данные от экземпляра Tarantool.
  • Поток записи кодирует полученные данные и записывает их в выходной файл.

Поток чтения использует очередь для передачи полученных пакетов кортежей потоку записи. Если очередь заполнена, поток чтения ожидает, пока поток записи не заберет пакет из очереди.

--batch-size INT

Количество кортежей, передаваемых за один запрос. Значение по умолчанию:

  • 10000 для tt export и tt crud export.
  • 100 для tt tdg2 export.

--compound-value-format STRING

Применимо к: tt export, tt crud export

Формат экспорта составных значений, таких как массивы или карты. По умолчанию утилита tt экспортирует пустые значения для полей, содержащих такие значения.

Поддерживаемые форматы: json.

См. также раздел Экспорт составных данных.

--header

Применимо к: tt export, tt crud export

Добавляет имена полей в первую строку.

См. также раздел Экспорт заголовков.

--password STRING

Пароль для подключения к экземпляру.

--readview

Применимо к: tt export, tt crud export

Экспорт данных с использованием представления чтения.

--sslcafile STRING

Применимо к: tt crud export, tt tdg2 export

Путь к файлу доверенных центров сертификации (CA) для зашифрованных соединений.

См. также раздел Зашифрованное соединение.

--sslcertfile STRING

Применимо к: tt crud export, tt tdg2 export

Путь к файлу SSL-сертификата для зашифрованных соединений.

См. также раздел Зашифрованное соединение.

--sslciphersfile STRING

Применимо к: tt crud export, tt tdg2 export

Список комплектов шифров SSL для зашифрованных соединений, разделенный двоеточиями (:).

См. также раздел Зашифрованное соединение.

--sslkeyfile STRING

Применимо к: tt crud export, tt tdg2 export

Путь к файлу закрытого SSL-ключа для зашифрованных соединений.

См. также раздел Зашифрованное соединение.

--sslpassword STRING

Применимо к: tt crud export, tt tdg2 export

Пароль к файлу SSL-ключа для зашифрованных соединений.

См. также раздел Зашифрованное соединение.

--sslpasswordfile STRING

Применимо к: tt crud export, tt tdg2 export

Файл со списком паролей к файлу SSL-ключа для зашифрованных соединений.

См. также раздел Аутентификация.

--token STRING

Применимо к: tt tdg2 export

Токен приложения для подключения к TDG2.

--use-ssl STRING

Использовать SSL без указания дополнительных SSL-параметров.

См. также раздел Зашифрованное соединение.

--username STRING

Имя пользователя для подключения к экземпляру.