Перейти к основному содержанию
Табличная функция remote позволяет обращаться к удалённым серверам на лету, то есть без создания Distributed таблицы. Табличная функция remoteSecure аналогична remote, но использует защищённое соединение. Обе функции можно использовать в запросах SELECT и INSERT.

Синтаксис

Параметры

Аргументы также можно передавать с помощью именованных коллекций.

Возвращаемое значение

Таблица, расположенная на удалённом сервере.

Использование

Поскольку табличные функции remote и remoteSecure заново устанавливают соединение для каждого запроса, вместо них рекомендуется использовать таблицу Distributed. Кроме того, если указаны имена хостов, выполняется разрешение имён, а ошибки при работе с различными репликами не учитываются. При обработке большого количества запросов всегда заранее создавайте таблицу Distributed и не используйте табличную функцию remote. Табличная функция remote может быть полезна в следующих случаях:
  • Однократная миграция данных из одной системы в другую
  • Доступ к конкретному серверу для сравнения данных, отладки и тестирования, то есть разовые ad hoc-подключения.
  • Запросы между различными кластерами ClickHouse в исследовательских целях.
  • Нечастые распределённые запросы, выполняемые вручную.
  • Распределённые запросы, в которых набор серверов каждый раз задаётся заново.

Адреса

Несколько адресов можно указать через запятую. В этом случае ClickHouse будет использовать распределённую обработку и отправлять запрос на все указанные адреса (как в случае с сегментами, содержащими разные данные). Пример:

Примеры

Выборка данных с удалённого сервера:

Или используя именованные коллекции:

Вставка данных в таблицу на удалённом сервере:

Миграция таблиц из одной системы в другую:

В этом примере используется одна таблица из набора демонстрационных данных. База данных — imdb, а таблица — actors.

В исходной системе ClickHouse (системе, где сейчас хранятся данные)

  • Проверьте исходную базу данных и имя таблицы (imdb.actors)
  • Получите оператор CREATE TABLE в исходной системе:
Ответ

В целевой системе ClickHouse

  • Создайте целевую базу данных:
  • Используя оператор CREATE TABLE из исходной системы, создайте целевую таблицу:

Возвращаемся к исходному развертыванию

Выполните вставку данных в новую базу данных и таблицу, созданные в удаленной системе. Вам понадобятся host, port, имя пользователя, пароль, база данных пункта назначения и целевая таблица.

Глоббинг

Шаблоны в { } используются для генерации набора сегментов и указания реплик. Если есть несколько пар { }, генерируется декартово произведение соответствующих наборов. Поддерживаются следующие типы шаблонов.
  • {a,b,c} - Обозначает любую из альтернативных строк a, b или c. Шаблон заменяется на a в адресе первого сегмента, на b — в адресе второго сегмента и так далее. Например, example0{1,2}-1 генерирует адреса example01-1 и example02-1.
  • {N..M} - Диапазон чисел. Этот шаблон генерирует адреса сегментов с последовательно возрастающими индексами от N до M включительно. Например, example0{1..2}-1 генерирует example01-1 и example02-1.
  • {0n..0m} - Диапазон чисел с ведущими нулями. Этот шаблон сохраняет ведущие нули в индексах. Например, example{01..03}-1 генерирует example01-1, example02-1 и example03-1.
  • {a|b} - Любое количество вариантов, разделённых символом |. Шаблон задаёт реплики. Например, example01-{1|2} генерирует реплики example01-1 и example01-2.
Запрос будет отправлен на первую работоспособную реплику. Однако для remote реплики перебираются в порядке, заданном параметром load_balancing. Количество генерируемых адресов ограничено параметром table_function_remote_max_addresses.
Последнее изменение 10 июня 2026 г.