ClickHouse의 계층형 스토리지
ClickHouse의 MergeTree 테이블 엔진을 활용한 계층형 스토리지 구성 방법과 TTL 기반 데이터 이동 전략을 설명합니다.
ClickHouse의 MergeTree 테이블 엔진은 계층형 스토리지를 지원합니다. 설정 및 자세한 설명은 여러 블록 디바이스를 사용한 데이터 스토리지 문서를 참고하세요. MergeTree 문서 에서 인용합니다: MergeTree 계열 테이블 엔진은 여러 블록 디바이스에 데이터를 저장할 수 있습니다. 예를 들어, 특정 테이블의 데이터가 암묵적으로 “핫(hot)”과 “콜드(cold)”로 나뉘는 경우에 유용합니다. 가장 최근 데이터는 자주 요청되지만 적은 공간만 차지합니다. 반면, 긴 꼬리 형태의 과거 데이터는 거의 요청되지 않습니다. Amazon S3 와 같은 원격 스토리지 백엔드와 함께 사용하면 매우 효율적인 스토리지 체계를 구성할 수 있습니다. 이를 통해 스토리지 정책을 설정하여 일정 기간 동안 로컬 디스크에 데이터를 보관한 후 오브젝트 스토리지로 이동할 수 있습니다. 구성 예시 는 다음과 같습니다: <storage_configuration> <disks> <fast_ssd> <path>/mnt/fast_ssd/clickhouse/</path> </fast_ssd> <gcs> <support_batch_delete>false</support_batch_delete> <type>s3</type> <endpoint>https://storage.googleapis.com/${BUCKET_NAME}/${ROOT_FOLDER}/</endpoint> <access_key_id>${SERVICE_ACCOUNT_HMAC_KEY}</access_key_id> <secret_access_key>${SERVICE_ACCOUNT_HMAC_SECRET}</secret_access_key> <metadata_path>/var/lib/clickhouse/disks/gcs/</metadata_path> </gcs> ... </disks> ... <policies> <move_from_local_disks_to_gcs> <!-- policy name --> <volumes> <hot> <!-- volume name --> <disk>fast_ssd</disk> <!-- disk name --> </hot> <cold> <disk>gcs</disk> </cold> </volumes> <move_factor>0.2</move_factor> <!-- The move factor determines when to move data from hot volume to cold. See ClickHouse docs for more details. --> </moving_from_ssd_to_hdd> .... </sto