RemoteCopy

Операция RemoteCopy копирует таблицы одного кластера на другой. Джобы операции Remote Copy запускаются на кластере назначения и копируют чанки с исходного кластера (pull схема). Данная операция копирует чанки в исходном виде, не разжимая их и не меняя erasure схему. В случае, если входная таблица одна и является сортированной, то выходная таблица тоже будет отсортирована.

Общие параметры для всех типов операций описаны в разделе Настройки операций.

У операции RemoteCopy поддерживаются следующие дополнительные параметры (в скобках указаны значения по умолчанию, если заданы):

  • cluster_name — имя кластера, с которого необходимо скопировать данные. Описание доступных кластеров доступно в узле //sys/clusters;
  • network_name — имя сети в терминах YTsaurus, которую необходимо использовать при копировании. На всех узлах удаленного кластера указанная сеть должна быть сконфигурирована. Например: fastbone или backbone;
  • networks — набор сетей в порядке приоритета, которые будут использоваться для копирования данных; важно: не указывайте эту и предыдущую опцию без согласования с администратором системы;
  • input_table_paths — список таблиц, которые необходимо скопировать;
  • output_table_path — имя таблицы, в которую необходимо скопировать данные;
  • schema_inference_mode (auto) — режим определения схемы. Доступные значения: auto, from_input, from_output. Подробности в разделе Схема данных;
  • cluster_connection — конфигурация для подключения к кластеру источнику. Настраивается администратором системы YTsaurus при настройке кластера;
  • copy_attributes (false) — копировать атрибуты входной таблицы. Доступно только в случае, когда входная таблица одна). Копируются только пользовательские атрибуты (не системные);
  • attribute_keys — при указании данной опции и включении опции copy_attributes будут копироваться только атрибуты из приведенного списка.

Важно: на production кластерах действует специальное ограничение и remote copy операции можно запускать только в пулах, у которых в одном из предков стоит ограничение на количество одновременно запущенных джобов (то есть указан атрибут resource_limits со значением user_slots не выше определенного порога).

Пример спецификации

{
  pool = "my_cool_pool";
  network_name = "fastbone";
  input_table_paths = [ "//tmp/input_table" ];
  output_table_paths = "//tmp/output_table";
  copy_attributes = %true;
}