Перейти к основному содержимому
Перейти к основному содержимому

Функция таблицы clusterAllReplicas

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

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

примечание

Все доступные кластеры перечислены в таблице system.clusters.

Синтаксис

Аргументы

  • cluster_name – Имя кластера, которое используется для построения набора адресов и параметров подключения к удаленным и локальным серверам, установить default, если не указано.
  • db.table или db, table - Имя базы данных и таблицы.
  • sharding_key - Ключ шардирования. Необязательный. Необходим для указания, если у кластера более одного шарда.

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

Набор данных из кластеров.

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

cluster_name может содержать макросы — замену в фигурных скобках. Замененное значение берется из раздела макросов файла конфигурации сервера.

Пример:

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

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

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

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

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

См. также