Skip to main content
이 페이지는 ClickHouse Cloud에는 적용되지 않습니다. 여기에서 설명하는 기능은 ClickHouse Cloud 서비스에서 지원되지 않습니다. 자세한 내용은 ClickHouse의 Cloud Compatibility 가이드를 참조하십시오.
ClickHouse의 s3 테이블 함수와 S3 디스크 유형은 S3 호환 게이트웨이를 제공하는 오픈 소스 분산 객체 저장소 SeaweedFS와 호환됩니다. SeaweedFS는 경로 스타일 요청을 네이티브로 지원하므로 자체 호스팅 저장소에서 와일드카드 DNS가 필요하지 않습니다. SeaweedFS는 Iceberg 테이블도 지원합니다. 테이블 버킷에는 테이블 데이터가 Parquet 파일로 저장되고, 내장 Iceberg REST 카탈로그는 테이블 메타데이터를 제공합니다. 동일한 엔드포인트를 통해 이를 쿼리하는 방법은 SeaweedFS 카탈로그 가이드를 참조하십시오. SeaweedFS 4.42 이상을 사용하십시오. 이전 버전에서는 비어 있어 삭제 중인 상위 폴더에 쓰기가 커밋되는 객체가 삭제될 수 있으며, 이 경우 쓰기가 성공한 직후 Object ... suddenly disappeared가 표시됩니다.

로컬에서 SeaweedFS 실행하기

로컬 테스트 환경에서는 S3 자격 증명이 포함된 s3config.json 파일을 생성합니다:
그런 다음 하나의 컨테이너에서 전체 SeaweedFS 스택을 시작합니다. -bucket 플래그는 시작 시 버킷을 생성합니다:
S3 엔드포인트가 포트 8333에서 응답할 때까지 기다린 후 계속하십시오:
echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell을 사용하여 언제든지 버킷을 추가로 만들 수 있습니다. 기본적으로 쓰기 작업은 운영 체제에 전달되면 완료된 것으로 확인됩니다. 확인하기 전에 모든 쓰기 작업을 디스크에 fsync하려면 버킷에서 fsync를 활성화하십시오:

S3 기반 MergeTree

S3 기반 MergeTree 구성은 약간의 수정만으로 사용할 수 있습니다:
엔드포인트에는 버킷 이름(clickhouse) 뒤에 테이블 데이터의 경로 접두사(tables/)가 포함됩니다. SeaweedFS에는 Region이 필요하지 않으므로 태그는 비워 둘 수 있습니다. seaweedfs를 S3 게이트웨이를 실행 중인 호스트로 대체하십시오.
이제 테이블은 스토리지 정책을 통해 SeaweedFS에 데이터를 저장합니다:
자주 읽는 데이터를 로컬에 캐시하려면 SETTINGS disk = 's3_cache'를 사용하여 테이블을 생성하십시오. 위에서 정의한 캐시 디스크는 S3 디스크를 래핑합니다.

s3 테이블 함수

s3 테이블 함수는 동일한 엔드포인트에서 객체를 읽고 쓸 수 있습니다:
글롭 패턴을 사용하면 여러 객체를 읽을 수 있습니다.

백업 및 복원

BACKUPRESTORE는 SeaweedFS 엔드포인트를 S3 대상으로 지원합니다:
마지막 수정일 2026년 8월 18일