개요
S3BackedMergeTree를 사용해 MergeTree 엔진의 스토리지로 S3를 사용할 수 있도록 지원합니다. 이 테이블 엔진을 사용하면 MergeTree 엔진의 삽입 및 쿼리 성능을 유지하면서도 S3의 확장성과 비용 이점을 활용할 수 있습니다.
스토리지와 컴퓨트를 분리한 아키텍처는 일반적인 ClickHouse 배포보다 구현과 관리가 더 복잡하다는 점에 유의하십시오. 이 가이드에서 설명하듯 자가 관리형 ClickHouse에서도 스토리지와 컴퓨트를 분리할 수 있지만, 구성 없이도 이 아키텍처로 ClickHouse를 사용할 수 있는 SharedMergeTree 테이블 엔진을 제공하는 ClickHouse Cloud 사용을 권장합니다.
이 가이드는 ClickHouse 버전 22.8 이상을 사용한다고 가정합니다.
1
S3를 ClickHouse 디스크로 사용
디스크 생성
저장소 구성(Storage configuration)을 저장할 새 파일을 ClickHouseconfig.d 디렉터리에 만드십시오:BUCKET, ACCESS_KEY_ID, SECRET_ACCESS_KEY를 데이터를 저장할 AWS 버킷 정보로 바꾸십시오:region을 지정하거나 사용자 지정 HTTP header를 보내는 경우) 관련 설정 목록은 여기에서 확인할 수 있습니다.또한 access_key_id와 secret_access_key 대신 아래 항목을 사용할 수도 있으며, 이 경우 환경 변수와 Amazon EC2 메타데이터에서 자격 증명을 가져오려고 시도합니다:2
S3 기반 테이블 생성
S3 디스크가 올바르게 구성되었는지 확인하려면 테이블을 생성하고 쿼리해 볼 수 있습니다.새 S3 스토리지 정책을 지정하여 테이블을 생성하십시오:엔진을 다음과 같은 결과가 표시됩니다:이제 새 테이블에 몇 개의 행을 삽입하겠습니다:행이 삽입되었는지 확인해 보겠습니다:AWS 콘솔에서 데이터가 S3에 성공적으로 삽입되었다면, 지정한 버킷에 ClickHouse가 새 파일을 생성한 것을 확인할 수 있습니다.모든 것이 정상적으로 작동했다면, 이제 저장소와 컴퓨트가 분리된 ClickHouse를 사용하고 있습니다!
S3BackedMergeTree로 지정할 필요는 없었다는 점에 유의하십시오. ClickHouse는 테이블이 저장소로 S3를 사용하고 있음을 감지하면 내부적으로 엔진 유형을 자동으로 변환합니다.테이블이 올바른 policy로 생성되었는지 확인하십시오:3
장애 허용을 위한 복제 구현(선택 사항)
장애 허용을 위해 여러 AWS 리전에 분산된 여러 ClickHouse 서버 노드를 사용할 수 있으며, 각 노드에 대해 S3 버킷을 하나씩 사용할 수 있습니다.S3 디스크를 사용하는 복제는
ReplicatedMergeTree 테이블 엔진을 사용해 구현할 수 있습니다. 자세한 내용은 다음 가이드를 참조하십시오: