Функция таблицы 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>. Подробности см. в распределенном движке.
См. также