use_* 서버 설정

use_* 서버 설정

이 설정들은 ClickHouse 서버의 데이터 파트 헤더 저장 방식, 캐시 메모리 아레나, 공유 로그 파이프라인 등을 제어해요. ClickHouse 소스 코드에서 자동으로 생성된 참조 문서예요.

출처: 문서

본문

이 설정들은 ClickHouse 서버를 구성하며 ClickHouse 소스 코드에서 자동으로 생성돼요.

use_minimalistic_part_header_in_zookeeper

ZooKeeper에서 데이터 파트 헤더를 저장하는 방법이에요. 이 설정은 MergeTree 계열에만 적용돼요. 다음과 같이 지정할 수 있어요:

config.xml 파일의 merge_tree 섹션에서 전역으로

ClickHouse는 서버의 모든 테이블에 이 설정을 사용해요. 언제든 설정을 변경할 수 있고, 설정이 변경되면 기존 테이블의 동작도 바뀌어요.

테이블별로

테이블을 만들 때 해당 엔진 설정을 지정해요. 이 설정이 있는 기존 테이블의 동작은 전역 설정이 변경되어도 바뀌지 않아요.

가능한 값

  • 0 — 기능이 꺼짐.
  • 1 — 기능이 켜짐.

use_minimalistic_part_header_in_zookeeper = 1이면 replicated 테이블이 단일 znode를 사용해 데이터 파트 헤더를 컴팩트하게 저장해요. 테이블에 열이 많으면 이 저장 방법이 Zookeeper에 저장되는 데이터 용량을 크게 줄여줘요.

use_minimalistic_part_header_in_zookeeper = 1을 적용한 후에는 이 설정을 지원하지 않는 ClickHouse 서버 버전으로 다운그레이드할 수 없어요. 클러스터의 서버에서 ClickHouse를 업그레이드할 때 주의해요. 모든 서버를 한꺼번에 업그레이드하지 마세요. 테스트 환경이나 클러스터의 몇몇 서버에서만 새 ClickHouse 버전을 테스트하는 것이 더 안전해요.

이 설정으로 이미 저장된 데이터 파트 헤더는 이전(비컴팩트) 표현으로 되돌릴 수 없어요.

use_separate_cache_arena

캐시 할당(mark 캐시, 비압축 캐시, 페이지 캐시)을 위한 전용 jemalloc 아레나를 활성화해요. 캐시 데이터를 쿼리 처리 할당에서 격리해서 메모리 단편화를 줄여요.

use_shared_merge_tree_log_pipeline

ClickHouse Cloud에서만 사용할 수 있어요. 활성화하면 system.*_log 테이블이 S3 기반 파이프라인을 통해 SharedMergeTree로 지원돼요. 각 로그 <log>에 대해 시작 시 다음 객체가 자동으로 생성돼요:

  • system.<log>_s3 — 직접 플러시 대상인 S3 백업 테이블. 각 SYSTEM FLUSH LOGS 호출은 여기에 새 파티셔닝 파일을 기록해요.
  • system.<log>_s3queue<log>_s3에서 파일을 가져와 행을 하위 스트림으로 내보내는 S3Queue 테이블(정렬 모드). 각 노드는 partition_regex 기반 파티셔닝으로 자신의 파일만 처리해요.
  • system.<log>_mv<log>_s3queue의 행을 최종 SharedMergeTree 테이블로 라우팅하는 MATERIALIZED VIEW.
  • system.<log> — 행이 누적되고 조회되는 최종 SharedMergeTree 테이블.

스키마나 설정이 변경되면 영향받는 테이블이 <log>_0, <log>_1 등으로 이름이 바뀌고 재생성돼요. 이는 기존 SystemLog 회전(rotation) 동작과 일치해요.

서버 구성에 <shared_log_pipeline><endpoint>가 설정되어 있어야 해요. 또한 shared_log_pipeline.enable_sync_flush, shared_log_pipeline.flush_timeout_seconds를 참고해요.

더 알아보기 (Learn more)