메인 콘텐츠로 건너뛰기
이 엔진을 사용하면 ClickHouse를 RocksDB와 연동할 수 있습니다.

테이블 생성하기

엔진 매개변수:
  • ttl - 값의 수명(time to live)입니다. TTL은 초 단위로 지정합니다. TTL이 0이면 일반 RocksDB 인스턴스가 사용됩니다(TTL 없음).
  • rocksdb_dir - 기존 RocksDB 디렉터리의 경로이거나 새로 생성된 RocksDB의 대상 경로입니다. 지정한 rocksdb_dir로 테이블을 엽니다.
  • read_only - read_only를 true로 설정하면 읽기 전용 모드가 사용됩니다. TTL이 있는 스토리지에서는 compaction이 트리거되지 않으므로(수동/자동 모두) 만료된 항목이 제거되지 않습니다.
  • primary_key_name – 컬럼 목록에 있는 임의의 컬럼 이름입니다.
  • 기본 키는 반드시 지정해야 하며, 기본 키는 하나의 컬럼만 지원합니다. 기본 키는 바이너리 형식으로 직렬화되어 rocksdb key가 됩니다.
  • 기본 키를 제외한 컬럼은 해당 순서대로 바이너리 형식으로 직렬화되어 rocksdb value가 됩니다.
  • key equals 또는 in 필터링이 있는 쿼리는 rocksdb의 다중 key lookup으로 최적화됩니다.
엔진 설정:
  • optimize_for_bulk_insert – 테이블이 대량 삽입에 최적화됩니다(insert pipeline이 memtable에 쓰는 대신 SST 파일을 생성하여 rocksdb 데이터베이스로 가져옵니다). 기본값: 1.
  • bulk_insert_block_size - 대량 삽입으로 생성되는 SST 파일의 최소 크기(행 수 기준)입니다. 기본값: 1048449.
예시:

메트릭

RocksDB 통계를 제공하는 system.rocksdb 테이블도 있습니다:

구성

구성을 사용하여 RocksDB 옵션도 변경할 수 있습니다:
기본적으로 단순 근사 count 최적화는 비활성화되어 있어 count() 쿼리 성능에 영향을 줄 수 있습니다. 이 최적화를 활성화하려면 optimize_trivial_approximate_count_query = 1로 설정하십시오. 또한 이 설정은 EmbeddedRocksDB 엔진의 system.tables에도 영향을 미치며, total_rowstotal_bytes의 근사값을 보려면 이 설정을 활성화해야 합니다.

지원되는 작업

삽입

새 행이 EmbeddedRocksDB에 삽입되면 키가 이미 존재하는 경우 값이 업데이트되고, 그렇지 않으면 새 키가 생성됩니다. 예시:

삭제

행은 DELETE 쿼리나 TRUNCATE를 사용해 삭제할 수 있습니다.

업데이트

값은 ALTER TABLE 쿼리로 업데이트할 수 있습니다. 기본 키(primary key)는 업데이트할 수 없습니다.

조인

EmbeddedRocksDB 테이블에서는 특수한 Direct JOIN을 지원합니다. 이 Direct JOIN은 메모리에 해시 테이블을 생성하지 않고 EmbeddedRocksDB에서 데이터를 직접 읽어옵니다. 대규모 조인의 경우 Direct JOIN은 해시 테이블을 생성하지 않으므로 메모리 사용량이 훨씬 낮아질 수 있습니다. Direct JOIN을 활성화하려면:
join_algorithmdirect, hash로 설정되면, 가능한 경우에는 Direct JOIN을 사용하고 그렇지 않으면 hash를 사용합니다.

예시

EmbeddedRocksDB 테이블 생성 및 데이터 삽입
테이블 rdb와 조인할 테이블을 생성하고 데이터를 채웁니다
조인 알고리즘을 direct로 설정하기
INNER JOIN

조인 관련 추가 정보

마지막 수정일 2026년 7월 3일