MergeTree 엔진 패밀리
MergeTree 엔진 패밀리
MergeTree 패밀리의 테이블 엔진들은 ClickHouse 데이터 저장 능력의 핵심이에요. 복원력과 고성능 데이터 검색을 위한 대부분의 기능, 즉 컬럼형 저장, 커스텀 파티셔닝, 희소(sparse) 기본 인덱스, 보조 데이터 스킵 인덱스 등을 제공해요.
기본 MergeTree 테이블 엔진은 다양한 사용 사례에 유연하고 실용적이므로 단일 노드 ClickHouse 인스턴스의 기본 테이블 엔진으로 간주할 수 있어요. 프로덕션 사용에는 ReplicatedMergeTree가 정답이에요. 일반 MergeTree 엔진의 모든 기능에 고가용성을 더해주기 때문이에요. 보너스로 데이터 수집 시 자동 데이터 중복 제거가 있어서, 삽입 중 네트워크 문제가 있었어도 소프트웨어가 안전하게 재시도할 수 있어요.
MergeTree 패밀리의 다른 모든 엔진들은 특정 사용 사례를 위해 추가 기능을 제공해요. 보통 백그라운드의 추가 데이터 조작으로 구현돼요.
MergeTree 엔진의 주요 단점은 꽤 무겁다는 점이에요. 그래서 일반적인 패턴은 그리 많지 않게 두는 것이에요. 임시 데이터 같은 많은 작은 테이블이 필요하다면 Log 엔진 패밀리를 고려해요.
| Page | Description |
|---|---|
| MergeTree table engine | MergeTree-family 테이블 엔진은 높은 데이터 수집 속도와 거대한 데이터 볼륨을 위해 설계됐어요 |
| Replicated* table engines | ClickHouse에서 Replicated* 패밀리 테이블 엔진의 데이터 복제 개요 |
| Custom Partitioning Key | MergeTree 테이블에 커스텀 파티셔닝 키를 추가하는 방법 |
| ReplacingMergeTree table engine | 같은 정렬 키 값(PRIMARY KEY가 아닌 ORDER BY 테이블 섹션)을 가진 중복 항목을 제거한다는 점에서 MergeTree와 다름 |
| CoalescingMergeTree table engine | CoalescingMergeTree는 MergeTree 엔진에서 상속돼요. 핵심 기능은 파트 병합 중 각 컬럼의 마지막 비-null 값을 자동으로 저장하는 것 |
| SummingMergeTree table engine | SummingMergeTree는 MergeTree 엔진에서 상속돼요. 핵심 기능은 파트 병합 중 숫자 데이터를 자동으로 합하는 것 |
| AggregatingMergeTree table engine | 같은 기본 키(또는 더 정확히는 같은 정렬 키)를 가진 모든 행을, 집계 함수 상태의 조합을 저장하는 단일 행(단일 데이터 파트 내에서)으로 대체해요 |
| CollapsingMergeTree table engine | MergeTree에서 상속하지만 병합 과정에서 행을 축소(collapse)하는 로직을 추가해요 |
| VersionedCollapsingMergeTree table engine | 끊임없이 변하는 객체 상태를 빠르게 쓰고, 백그라운드에서 오래된 객체 상태를 삭제할 수 있게 해줘요 |
| GraphiteMergeTree table engine | Graphite 데이터를 얇게 만들고 집계/평균화(rollup)하기 위해 설계됐어요 |
| Exact and Approximate Vector Search | 정확 및 근사 벡터 검색 문서 |
| Full-text Search with Text Indexes | 텍스트에서 검색어를 빠르게 찾기 |
출처: 문서
본문
MergeTree 엔진 패밀리의 테이블 엔진들은 ClickHouse 데이터 저장 능력의 핵심이에요. 사용 사례에 따라 각 엔진을 선택해 활용할 수 있어요.