Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clusterAllReplicas

분산 테이블을 생성하지 않고도 클러스터의 모든 세그먼트(remote_servers 섹션에 구성됨)에 액세스할 수 있습니다. 분산 테이블를 생성하지 않고도 액세스할 수 있습니다. 각 세그먼트에서는 레플리카 1개만 조회합니다.

clusterAllReplicas 함수는 cluster와 동일하지만, 모든 레플리카를 조회합니다. 클러스터의 각 레플리카는 별도의 세그먼트/연결로 사용됩니다.

구문

cluster(['cluster_name', db.table, sharding_key][, SETTINGS name = value, ...])
cluster(['cluster_name', db, table, sharding_key][, SETTINGS name = value, ...])
clusterAllReplicas(['cluster_name', db.table, sharding_key][, SETTINGS name = value, ...])
clusterAllReplicas(['cluster_name', db, table, sharding_key][, SETTINGS name = value, ...])

인수

인수 유형
cluster_name 원격 및 로컬 서버의 주소 집합과 연결 매개변수를 구성하는 데 사용되는 클러스터 이름입니다. 지정하지 않으면 default로 설정됩니다.
db.table or db, table 데이터베이스와 테이블의 이름입니다.
sharding_key 세그먼트 분할 키입니다. 선택 사항입니다. 클러스터에 세그먼트가 2개 이상 있으면 지정해야 합니다.
SETTINGS name = value, ... 함수로 생성된 분산 테이블의 설정입니다. 예를 들어 skip_unavailable_shards가 있습니다. 선택 사항입니다. 쿼리에 지정한 설정이 이 설정보다 우선합니다.

반환 값

클러스터에서 가져온 데이터셋입니다.

매크로 사용

cluster_name에는 매크로, 즉 {}로 감싼 치환 값을 포함할 수 있습니다. 치환되는 값은 서버 구성 파일의 macros 섹션에서 가져옵니다.

예시:

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

사용법 및 권장 사항

clusterclusterAllReplicas 테이블 함수를 사용하는 것은 분산 테이블을 생성하는 것보다 효율이 떨어집니다. 이 경우 각 요청마다 서버 연결이 다시 설정되기 때문입니다. 많은 수의 쿼리를 처리할 때는 항상 분산 테이블을 미리 생성하고, clusterclusterAllReplicas 테이블 함수는 사용하지 마십시오.

clusterclusterAllReplicas 테이블 함수는 다음과 같은 경우에 유용할 수 있습니다.

  • 데이터 비교, 디버깅, 테스트를 위해 특정 클러스터에 액세스해야 하는 경우
  • 연구 목적으로 여러 ClickHouse 클러스터와 레플리카에 쿼리해야 하는 경우
  • 수동으로 수행하는 드문 분산 요청인 경우

host, port, user, password, compression, secure와 같은 연결 설정은 <remote_servers> 구성 섹션에서 가져옵니다. 자세한 내용은 분산 엔진을 참조하십시오.

Navigation