메인 콘텐츠로 건너뛰기
s3 테이블 함수의 확장입니다. 지정된 클러스터의 여러 노드를 사용해 Amazon S3 및 Google Cloud Storage Google Cloud Storage의 파일을 병렬로 처리할 수 있습니다. initiator 노드는 클러스터의 모든 노드에 connection을 생성하고, S3 파일 경로의 와일드카드(*)를 전개한 다음 각 파일을 동적으로 분배합니다. worker 노드는 initiator에 다음에 처리할 작업을 요청해 이를 처리합니다. 이 과정은 모든 작업이 완료될 때까지 반복됩니다.

구문

s3Cluster(cluster_name, url[, NOSIGN | access_key_id, secret_access_key,[session_token]][, format][, structure][, compression_method][, headers][, extra_credentials])
s3Cluster(cluster_name, named_collection[, option=value [,..]])

인수

인수설명
cluster_name원격 및 로컬 서버의 주소 집합과 연결 매개변수를 구성하는 데 사용되는 클러스터 이름입니다.
url파일 하나 또는 여러 파일의 경로입니다. 읽기 전용 모드에서는 다음 와일드카드를 지원합니다: *, **, ?, {'abc','def'}{N..M}. 여기서 N, M은 숫자이고 abc, def는 문자열입니다. 자세한 내용은 Wildcards In Path를 참조하십시오.
NOSIGN자격 증명 대신 이 키워드를 지정하면 모든 요청에 서명하지 않습니다.
access_key_id and secret_access_key지정된 엔드포인트에 사용할 자격 증명을 지정하는 키입니다. 선택 사항입니다.
session_token지정된 키와 함께 사용할 세션 토큰입니다. 키를 전달하는 경우 선택 사항입니다.
format파일의 포맷입니다.
structure테이블의 구조입니다. 포맷은 'column1_name column1_type, column2_name column2_type, ...'입니다.
compression_method매개변수는 선택 사항입니다. 지원되는 값은 none, gzip 또는 gz, brotli 또는 br, xz 또는 LZMA, zstd 또는 zst입니다. 기본적으로 파일 확장자를 기준으로 압축 방식을 자동 감지합니다.
headers매개변수는 선택 사항입니다. S3 요청에 헤더를 전달할 수 있습니다. headers(key=value) 형식으로 전달하십시오. 예: headers('x-amz-request-payer' = 'requester'). 사용 예시는 here를 참조하십시오.
extra_credentials선택 사항입니다. roleARN은 이 매개변수를 통해 전달할 수 있습니다. 예시는 here를 참조하십시오.
인수는 이름이 지정된 컬렉션을 사용해 전달할 수도 있습니다. 이 경우 url, access_key_id, secret_access_key, format, structure, compression_method는 동일하게 동작하며, 몇 가지 추가 매개변수도 지원합니다:
인수설명
filename지정하면 url에 추가됩니다.
use_environment_credentials기본적으로 활성화되어 있으며, 환경 변수 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN, AWS_EC2_METADATA_DISABLED를 사용해 추가 매개변수를 전달할 수 있습니다.
no_sign_request기본적으로 비활성화되어 있습니다.
expiration_window_seconds기본값은 120입니다.

반환 값

지정된 파일의 데이터를 읽거나 쓰기 위한, 지정된 구조의 테이블입니다.

예시

cluster_simple 클러스터의 모든 노드를 사용해 /root/data/clickhouse/root/data/database/ 폴더에 있는 모든 파일에서 데이터를 조회합니다:
SELECT * FROM s3Cluster(
    'cluster_simple',
    'http://minio1:9001/root/data/{clickhouse,database}/*',
    'minio',
    'ClickHouse_Minio_P@ssw0rd',
    'CSV',
    'name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
) ORDER BY (name, value, polygon);
cluster_simple 클러스터의 모든 파일에 있는 전체 행 수를 계산합니다:
파일 목록에 앞자리가 0인 숫자 범위가 포함된 경우, 각 자릿수별로 중괄호를 사용하는 구문을 사용하거나 ?를 사용하십시오.
프로덕션 환경에서는 이름이 지정된 컬렉션을 사용하는 것이 좋습니다. 다음은 예시입니다:

CREATE NAMED COLLECTION creds AS
        access_key_id = 'minio',
        secret_access_key = 'ClickHouse_Minio_P@ssw0rd';
SELECT count(*) FROM s3Cluster(
    'cluster_simple', creds, url='https://s3-object-url.csv',
    format='CSV', structure='name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
)

비공개 및 공개 버킷 액세스

사용자는 여기에 설명된 s3 함수와 동일한 방법을 사용할 수 있습니다.

성능 최적화

s3 함수의 성능을 최적화하는 방법에 대한 자세한 내용은 상세 가이드를 참조하십시오.
마지막 수정일 2026년 6월 10일