cluster / clusterAllReplicas 테이블 함수

cluster / clusterAllReplicas 테이블 함수 (cluster)

Distributed 테이블을 만들지 않고도, 클러스터의 모든 샤드(remote_servers 섹션에 설정된)에 접근할 수 있는 테이블 함수예요. 각 샤드의 레플리카 하나만 조회됩니다.

clusterAllReplicas 함수는 cluster와 같지만, 모든 레플리카를 조회합니다. 클러스터의 각 레플리카가 별도의 샤드/연결로 사용됩니다.

사용 가능한 모든 클러스터는 system.clusters 테이블에 나열되어 있어요.

출처: 문서

본문

Distributed 테이블을 만들지 않고도 (remote_servers 섹션에 설정된) 클러스터의 모든 샤드에 접근할 수 있습니다. 각 샤드의 레플리카 하나만 조회됩니다.

clusterAllReplicas 함수 — cluster와 같지만 모든 레플리카를 조회합니다. 클러스터의 각 레플리카가 별도의 샤드/연결로 사용됩니다.

사용 가능한 모든 클러스터는 system.clusters 테이블에 나열되어 있어요.

구문

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 또는 db, table 데이터베이스와 테이블의 이름.
sharding_key 샤딩 키. 선택 사항. 클러스터에 샤드가 둘 이상이면 지정해야 합니다.
SETTINGS name = value, ... 함수가 만드는 Distributed 테이블의 설정(예: skip_unavailable_shards). 선택 사항. 쿼리에 지정된 설정이 우선합니다.

반환 값

클러스터의 데이터셋.

매크로 사용하기

cluster_name에는 매크로({} 안의 치환)가 포함될 수 있습니다. 치환된 값은 서버 설정 파일의 macros 섹션에서 가져옵니다.

예제:

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

사용법 및 권장 사항

clusterclusterAllReplicas 테이블 함수는 Distributed 테이블을 만드는 것보다 덜 효율적입니다. 이 경우 요청마다 서버 연결을 새로 맺기 때문입니다. 많은 쿼리를 처리할 때는 항상 미리 Distributed 테이블을 만들고, clusterclusterAllReplicas 테이블 함수를 사용하지 마세요.

clusterclusterAllReplicas 테이블 함수는 다음과 같은 경우에 유용합니다:

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

host, port, user, password, compression, secure 같은 연결 설정은 <remote_servers> 설정 섹션에서 가져옵니다. 자세한 내용은 Distributed 엔진을 참고해요.

더 알아보기 (Learn more)