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

Функция табличного мира clusterAllReplicas

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

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

примечание

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

Синтаксис

cluster(['cluster_name', db.table, sharding_key])
cluster(['cluster_name', db, table, sharding_key])
clusterAllReplicas(['cluster_name', db.table, sharding_key])
clusterAllReplicas(['cluster_name', db, table, sharding_key])

Аргументы

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

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

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

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

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 engine.