Табличная функция 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.