Работа из командной строки

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

Следующая