Прокси
В данном разделе содержится информация о различных интерфейсах, которые позволяют работать с системой YTsaurus: HTTP и RPC прокси.
HTTP-прокси
HTTP-прокси — это универсальный языко-независимый интерфейс для работы с системой YTsaurus.
Предупреждение
HTTP API является весьма низкоуровневым и плохо подходит для написания простого и надежного прикладного кода. В частности, при его использовании необходимо правильно организовать логгирование запросов и разметку их correlation ids, балансировать нагрузку на прокси, брать дополнительные явные блокировки на таблицы, обрабатывать ошибки и в ряде случаев повторять действия и т.д.
Мы настоятельно рекомендуем использовать поддерживаемые нами SDK для вашего языка, в которых эти задачи уже решены, например для python или С++.
Для работы в консоли также следует использовать CLI, а не задавать прямые HTTP-запросы.
HTTP-прокси разделяются в зависимости от типа запроса. Запросы к дереву метаинформации вида get
, set
считаются сравнительно лёгкими и обрабатываются так называемыми контрольными (лёгкими) HTTP-прокси.
Запросы на чтение или запись (read-table
, write-table
) потенциально могут передавать существенно больший объём данных, сильнее нагружать сеть узлов кластера YTsaurus и поэтому обрабатываются так называемыми тяжёлыми прокси (data-прокси).
Пример взаимодействия пользователя с YTsaurus через HTTP-интерфейс представлен в разделе HTTP-прокси.
Справочную информацию по HTTP-прокси можно посмотреть в разделе Справочник по HTTP-прокси.
RPC-прокси
RPC-прокси — это специальный интерфейс для взаимодействия с YTsaurus, через протокол RPC. Обращение к RPC Proxy происходит по протоколу TCP, порт 9013. Основные отличия RPC-прокси от HTTP-прокси:
- более высокая скорость обработки запросов, что достигается за счет следующих особенностей:
- работа с RPC-прокси происходит по специальному внутреннему протоколу, который лучше подходит для работы с большим числом одновременных запросов;
- в RPC-прокси запрос передаётся в нативном формате YTsaurus, поэтому не требует дополнительного времени и ресурсов на конвертацию;
- возможность сохранить совместимость на уровне пользовательского кода при изменениях в протоколе взаимодействия компонентов внутри YTsaurus кластера.
Поддерживаются следующие языки программирования:
По каждому языку программирования доступны примеры.