Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clusterAllReplicas

Позволяет обращаться ко всем сегментам (настроенным в разделе remote_servers) кластера без создания таблицы Distributed. Запрос выполняется только к одной реплике каждого сегмента.

Функция clusterAllReplicas — то же, что и cluster, но запросы выполняются ко всем репликам. Каждая реплика в кластере используется как отдельный сегмент/соединение.

Синтаксис

cluster(['cluster_name', db.table, sharding_key][, SETTINGS name = value, ...])
cluster(['cluster_name', db, table, sharding_key][, SETTINGS name = value, ...])
clusterAllReplicas(['cluster_name', db.table, sharding_key][, SETTINGS name = value, ...])
clusterAllReplicas(['cluster_name', db, table, sharding_key][, SETTINGS name = value, ...])

Аргументы

Аргументы Тип
cluster_name Имя кластера, используемое для формирования набора адресов и параметров подключения к удалённым и локальным серверам; если не указано, устанавливается default.
db.table or db, table Имя базы данных и таблицы.
sharding_key Ключ сегментирования. Необязательный. Должен быть указан, если в кластере более одного сегмента.
SETTINGS name = value, ... Настройки distributed таблицы, созданной функцией, например skip_unavailable_shards. Необязательный. Настройка, указанная в запросе, имеет над ним приоритет.

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

Данные из кластеров.

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

cluster_name может содержать макросы — подстановки в {}. Подставляемое значение берётся из раздела macros файла конфигурации сервера.

Пример:

SELECT * FROM cluster('{cluster}', default.example_table);

Использование и рекомендации

Использовать табличные функции cluster и clusterAllReplicas менее эффективно, чем создавать таблицу Distributed, поскольку в этом случае подключение к серверу заново устанавливается для каждого запроса. При обработке большого числа запросов всегда заранее создавайте таблицу Distributed и не используйте табличные функции cluster и clusterAllReplicas.

Табличные функции cluster и clusterAllReplicas могут быть полезны в следующих случаях:

  • Доступ к определённому кластеру для сравнения данных, отладки и тестирования.
  • Запросы к различным кластерам и репликам ClickHouse в исследовательских целях.
  • Нечастые распределённые запросы, выполняемые вручную.

Параметры подключения, такие как host, port, user, password, compression, secure, берутся из раздела конфигурации <remote_servers>. Подробности см. в разделе движок Distributed.

Navigation