Функция табличного мира clusterAllReplicas
Позволяет получать доступ ко всем шардом (настроенным в разделе remote_servers) кластера без создания таблицы Distributed. Запрашивается только одна реплика каждого шара.
Функция clusterAllReplicas аналогична cluster, но запрашивает все реплики. Каждая реплика в кластере используется как отдельный шард/соединение.
Все доступные кластеры перечислены в таблице system.clusters.
Синтаксис
Аргументы
| Аргументы | Тип |
|---|---|
cluster_name | Имя кластера, которое используется для формирования набора адресов и параметров соединения с удаленными и локальными серверами, установите default, если не указано. |
db.table или db, table | Имя базы данных и таблицы. |
sharding_key | Ключ шардирования. Необязательный. Должен быть указан, если у кластера более одного шара. |
Возвращаемое значение
Набор данных из кластеров.
Использование макросов
cluster_name может содержать макросы — замены в фигурных скобках. Заменяемое значение берется из секции macros файла конфигурации сервера.
Пример:
Использование и рекомендации
Использование функций табличного мира cluster и clusterAllReplicas менее эффективно, чем создание таблицы Distributed, потому что в этом случае соединение с сервером восстанавливается для каждого запроса. При обработке большого количества запросов всегда создавайте таблицу Distributed заранее и не используйте функции табличного мира cluster и clusterAllReplicas.
Функции табличного мира cluster и clusterAllReplicas могут быть полезны в следующих случаях:
- Доступ к конкретному кластеру для сравнения данных, отладки и тестирования.
- Запросы к различным кластерам и репликам ClickHouse в исследовательских целях.
- Редкие распределенные запросы, которые выполняются вручную.
Настройки соединения, такие как host, port, user, password, compression, secure, берутся из конфигурационного раздела <remote_servers>. См. детали в Distributed engine.