YTsaurus CLI

Существуют несколько способов установить CLI.
CLI состоит из нескольких частей. Основная часть написана на Python, совместима с Python 2&3, и является платформонезависимой.
Для использования YSON-формата представления данных можно установить так называемые YSON-bindings.
Они представляют собой отдельную библиотеку, доступную только под Linux и MacOS, написанную на C++.

Узнать версию установленной CLI можно, вызвав команды yt --version, это самый простой способ проверить работоспособность CLI.

Внимание

Не рекомендуется устанавливать библиотеку и YSON-bindings разными способами одновременно.
Это может приводить к труднодиагностируемым проблемам.

Примечание

При возникновении сложностей изучите раздел FAQ.

Пакет называется ytsaurus-client. Перед установкой пакета можно поставить пакет wheel, чтобы иметь возможность поставить версию, отличную от системной, или поставить YTsaurus CLI без sudo.

По умолчанию из PyPI устанавливается последняя стабильная версия пакета.
Все тестовые версии имеют суффикс "a1" и могут быть установлены через pip путем добавления опции --pre.
Команда для установки из pypi:

# Установка YTsaurus CLI
pip install ytsaurus-client
# Установка YSON-bindings
pip install ytsaurus-yson

Автодополнение

В комплекте с Deb-пакетом также поставляется скрипт для bash autocompletion, который при установке автоматически добавляется в /etc/bash_completion.d/.

В случае pip-пакета включить autocompletion можно с помощью утилиты register-python-argcomplete, которая поставляется вместе с пакетом argcomplete.

register-python-argcomplete yt | sudo tee /etc/bash_completion.d/yt >/dev/null

Проверить работоспособность автодополнения можно набрав в консоли:

yt <TAB><TAB>
abort-job
abort-op
abort-tx
add-member
alter-table
alter-table-replica
check-permission
...

Главным преимуществом этой функции является возможность дополнять пути в Кипарисе. Для работы этой функции необходимо, чтобы в переменных окружения был указан кластер, с которым вы работаете, например, посредством команды export YT_PROXY=<cluster_name>. Пример:

export YT_PROXY=<cluster-name>
yt list /<TAB>/<TAB><TAB>
//@               //home/           //porto_layers/   //statbox/        //test_q_roc_auc  //trash           //userfeat/       //userstats/
//cooked_logs/    //logs            //projects/       //sys             //tmp/            //userdata/       //user_sessions/

Если вместо названий команд или путей Кипариса вы видите что-то иное (либо ничего, либо пути в текущей директории), значит autocompletion не включился. Проверьте выполнение следующих условий:

  • Должен быть установлен основной пакет bash_completion. Под Ubuntu-подобными системами этого можно достичь посредством запуска команды sudo apt-get install bash-completion;
  • bash-completion должен инициироваться при запуске bash-сессии. Например, в Ubuntu по умолчанию в .bashrc есть строка . /etc/bash_completion, если у вас такой не видно, то стоит ее прописать себе в .bashrc;
  • В /etc/bash_completion.d должен попасть файл yt_completion, настраивающий автодополнение для команды yt. Если под вашей системой всё содержимое /etc/bash_completion.d по каким-то причинам не запускается автоматически, можно самостоятельно запустить этот скрипт в конце вашего .bashrc;