Экспорт данных
$ 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
Приведенная ниже команда экспортирует данные типа 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
Применимо к: tt crud export, tt tdg2 export
Тип аутентификации: chap-sha1, pap-sha256 или auto.
Максимальное количество пакетов кортежей в очереди между потоками чтения и записи (по умолчанию 32).
Утилита tt экспортирует данные с использованием двух потоков:
- Поток чтения отправляет запросы и получает данные от экземпляра Tarantool.
- Поток записи кодирует полученные данные и записывает их в выходной файл.
Поток чтения использует очередь для передачи полученных пакетов кортежей потоку записи. Если очередь заполнена, поток чтения ожидает, пока поток записи не заберет пакет из очереди.
Количество кортежей, передаваемых за один запрос. Значение по умолчанию:
10000дляtt exportиtt crud export.100дляtt tdg2 export.
Применимо к: tt export, tt crud export
Формат экспорта составных значений, таких как массивы или карты. По умолчанию утилита tt экспортирует пустые
значения для полей, содержащих такие значения.
Поддерживаемые форматы: json.
См. также раздел Экспорт составных данных.
Применимо к: tt export, tt crud export
Добавляет имена полей в первую строку.
См. также раздел Экспорт заголовков.
Пароль для подключения к экземпляру.
Применимо к: tt export, tt crud export
Экспорт данных с использованием представления чтения.
Применимо к: tt crud export, tt tdg2 export
Путь к файлу доверенных центров сертификации (CA) для зашифрованных соединений.
См. также раздел Зашифрованное соединение.
Применимо к: tt crud export, tt tdg2 export
Путь к файлу SSL-сертификата для зашифрованных соединений.
См. также раздел Зашифрованное соединение.
Применимо к: tt crud export, tt tdg2 export
Список комплектов шифров SSL для зашифрованных соединений, разделенный двоеточиями (:).
См. также раздел Зашифрованное соединение.
Применимо к: tt crud export, tt tdg2 export
Путь к файлу закрытого SSL-ключа для зашифрованных соединений.
См. также раздел Зашифрованное соединение.
Применимо к: tt crud export, tt tdg2 export
Пароль к файлу SSL-ключа для зашифрованных соединений.
См. также раздел Зашифрованное соединение.
Применимо к: tt crud export, tt tdg2 export
Файл со списком паролей к файлу SSL-ключа для зашифрованных соединений.
См. также раздел Аутентификация.
Применимо к: tt tdg2 export
Токен приложения для подключения к TDG2.
Использовать SSL без указания дополнительных SSL-параметров.
См. также раздел Зашифрованное соединение.
Имя пользователя для подключения к экземпляру.