Работа из командной строки
В данном разделе собрана информация о командной строке YTsaurus: описание, способы установки, примеры использования.
Описание
YTsaurus CLI (Command Line Interface) — самый удобный способ взаимодействия с системой YTsaurus из консоли. CLI реализует функциональность всех команд, поддерживаемых YTsaurus. Имя команды задается первым аргументом, далее идут её опции. Для получения справки по CLI достаточно выполнить команду:
# посмотреть список всех команд
$ yt --help
# подробнее о конкретной команде — "read"
$ yt read --help
Для работы с кластером необходимо получить токен доступа и положить его в файл ~/.yt/token
или в переменную окружения YT_TOKEN
.
Более подробно о токенах и аутентификации в разделе Аутентификация.
Кроме токена доступа необходимо указать кластер, с которым будет происходить работа. Для этого можно указать имя прокси сервера в переменной окружения YT_PROXY
: $ export YT_PROXY=<cluster-name>
или передавать имя прокси сервера в каждую команду по отдельности через опцию proxy
, например: $ yt read --proxy <cluster-name> //home/some_table
.
Более подробно о возможных настройках в разделе Конфигурация клиентской библиотеки.
Ниже перечислены некоторые особенности CLI:
-
Все подчеркивания в названиях команд и опций заменены на дефис, в отличие от названий методов и параметров API.
-
Параметры API
input_table_paths
иoutput_table_paths
в CLI задаются через опции--src
и--dst
. -
Для указания нескольких колонок для сортировки или reduce следует передать опцию
sort-by
илиreduce-by
несколько раз, например--sort-by a --sort-by b
выполнит сортировку по составному ключуa b
.Внимание
При написании
--sort-by a,b
произойдет сортировка по одной колонке с именемa,b
. -
Команды
write-table
иwrite-file
обеспечивают транзакционность записи данных, в отличие от соответствующих команд в HTTP/RPС-прокси. -
Команда
find
реализована поверх командыget
и, отчасти, повторяет unix-утилиту find; -
Команда
list
по умолчанию (без указания параметра--format
) печатает просто список элементов узла, каждый на отдельной строке. Также у неё есть опция-l
, которая будет вместе с именами печатать полезную информацию об узлах. -
Любые файлы, загружаемые в систему YTsaurus, по умолчанию загружаются без флага
executable
. Если вы хотите загрузить бинарный файл, который будет запускаться в джобе, то нужно при загрузке указать опцию--executable
или после загрузки выставить у файла атрибутexecutable
в%true
. -
Форматы данных, принимаемых на входе команд и возникающих на выходе, могут быть заданы через следующие переменные окружения:
YT_ARGUMENTS_FORMAT
— описывает формат для значений некоторых опций CLI (например,--spec
,--attributes
). По умолчаниюyson
.YT_STRUCTURED_DATA_FORMAT
— управляет форматом ввода/вывода команд get/set. По умолчаниюyson
.YT_TABULAR_DATA_FORMAT
— управляет форматом чтения/записи таблиц, а также запуска джобов операций. Значения по умолчанию нет, необходимо описать формат в переменной либо указывать опцию--format
в соответствующих командах CLI.
-
Есть способ создавать алиасы для команд. Алиасы указываются в файле
~/.yt/aliases
в форматеname=opts
. Пример:mkdir=create map_node ls=list rm=remove mv=move cp=copy
-
Поддерживается auto-completion опций CLI и путей в Кипарисе.