Работа из командной строки
В данном разделе собрана информация о командной строке 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 и путей в Кипарисе.