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

В данном разделе собрана информация о командной строке YTsaurus: описание, способы установки, примеры использования.

Описание

YTsaurus CLI (Command Line Interface) — самый удобный способ взаимодействия с системой YTsaurus из консоли. CLI полностью реализует функциональность всех команд, поддерживаемых YTsaurus. Имя команды задается первым аргументом, далее идут её опции. Для получения справки по CLI достаточно выполнить команду:

yt --help
yt read --help

Для работы с кластером необходимо получить токен доступа и положить его в файл ~/.yt/token или в переменную окружения YT_TOKEN.

Более подробно о токенах и аутентификации в разделе Аутентификация.

Кроме токена доступа необходимо указать кластер, с которым будет происходить работа. Для этого можно указать имя прокси сервера в переменной окружения YT_PROXY: export YT_PROXY=<cluster-name> или передавать имя прокси сервера в каждую команду по отдельности через опцию proxy, например: --proxy <cluster-name>.

Ниже перечислены некоторые особенности CLI:

  • Все подчеркивания в названиях команд и опций заменены на дефис;

  • input_table_paths и output_table_paths задаются через опции --src и --dst;

  • Для указания нескольких колонок для сортировки или reduce следует передать опцию sort-by или reduce-by несколько раз, например --sort-by a --sort-by b выполнит сортировку по составному ключу a b;

    Внимание

    При написании --sort-by a,b произойдет сортировка по одной колонке с именем a,b.

  • Команда write записывает данные почанково и под транзакцией;

  • Существует команда find (реализованная поверх get), которая отчасти повторяет unix-утилиту find;

  • Команда list по умолчанию (без указания параметра --format) печатает просто список элементов узла, каждый на отдельной строке. Также у неё есть опция -l, которая будет вместе с именами печатать полезную информацию об узлах;

  • Любые файлы, загружаемые в систему YTsaurus, по умолчанию загружаются без флага executable. Если вы хотите загрузить бинарный файл, который будет запускаться в джобе, то при загрузке нужно указать опцию --executable, или можно после загрузки проставить атрибут у файла /@executable=true;

  • Форматы данных, принимаемых на входе команд и возникающих на выходе, могут быть заданы через следующие переменные окружения:

    • YT_ARGUMENTS_FORMAT — управляет форматом для значений опций типа --spec, --attributes. По умолчанию yson;
    • YT_STRUCTURED_DATA_FORMAT — управляет форматом команд get/set. По умолчанию yson;
    • YT_TABULAR_DATA_FORMAT — управляет форматом чтения/записи таблиц, а также запуска джобов операций. Значения по умолчанию нет, значение переменной нужно выставить явно, либо указать опцию --format );
  • Есть способ создавать алиасы для команд. Алиасы указываются в файле ~/.yt/aliases в формате name=opts. Пример:

    mkdir=create map_node
    ls=list
    rm=remove
    mv=move
    cp=copy
    
  • Поддерживается auto-completion команд бинарного файла и путей для bash.