ClickHouse/docs/ru/sql-reference/table-functions/cluster.md
2021-08-16 23:00:38 +00:00

4.0 KiB
Raw Blame History

toc_priority toc_title
50 cluster

cluster, clusterAllReplicas

Позволяет обратиться ко всем шардам существующего кластера, который сконфигурирован в секции remote_servers без создания таблицы типа Distributed. В запросе используется одна реплика каждого шарда.

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

!!! note "Примечание" Все доступные кластеры перечислены в таблице 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 имя кластера, который обозначает подмножество адресов и параметров подключения к удаленным и локальным серверам, входящим в кластер.
  • db.table или db, table - имя базы данных и таблицы.
  • sharding_key - ключ шардирования. Указывается, если данные добавляются более чем в один шард кластера. Необязательный аргумент.

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

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

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

Аргументы могут содержать макросы — подстановки в фигурных скобках. Эти подстановки заменяются на соответствующие значения из конфигурационного файла, из секции macros.

Пример:

SELECT * FROM cluster('{cluster}', default.example_table);

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

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

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

  • Чтение данных из конкретного кластера для сравнения данных, отладки и тестирования.
  • Запросы к разным ClickHouse кластерам и репликам в целях исследования.
  • Нечастых распределенных запросов которые делаются вручную.

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

См. также