MergeTree 엔진 패밀리
MergeTree 패밀리에 속한 테이블 엔진은 ClickHouse 데이터 저장 기능의 핵심입니다. 이 엔진들은 열 지향(columnar) 저장, 사용자 정의 파티셔닝, 희소(sparse) 기본 인덱스, 보조 data-skipping 인덱스 등 내결함성과 고성능 데이터 조회를 위한 대부분의 기능을 제공합니다.
기본 MergeTree 테이블 엔진은 단일 노드 ClickHouse 인스턴스에서 사실상 기본 테이블 엔진으로 볼 수 있으며, 다양한 사용 사례에 대해 범용적이고 실용적입니다.
프로덕션 환경에서는 ReplicatedMergeTree를 사용하는 것이 좋습니다. 일반 MergeTree 엔진의 모든 기능에 고가용성을 추가해 주기 때문입니다. 추가 이점으로 데이터 수집(ingestion) 시 자동 데이터 중복 제거가 제공되므로, insert 중 네트워크 문제가 발생했을 때 소프트웨어가 안전하게 재시도할 수 있습니다.
MergeTree 패밀리의 다른 모든 엔진은 특정 사용 사례를 위한 추가 기능을 제공합니다. 일반적으로 이는 백그라운드에서 수행되는 추가 데이터 처리로 구현됩니다.
MergeTree 엔진의 주요 단점은 비교적 무거운 편이라는 점입니다. 따라서 일반적으로 이러한 엔진을 너무 많이 두지 않습니다. 예를 들어 임시 데이터처럼 작은 테이블이 많이 필요한 경우에는 Log 엔진 패밀리를 고려하십시오.
| Page | Description |
|---|---|
| MergeTree table engine | MergeTree 계열 테이블 엔진은 높은 데이터 수집(ingest) 속도와 매우 큰 데이터 규모를 처리하도록 설계되었습니다. |
| Replicated* table engines | ClickHouse에서 Replicated* 계열 테이블 엔진을 사용한 데이터 복제에 대한 개요입니다. |
| Custom Partitioning Key | MergeTree 테이블에 사용자 정의 파티셔닝 키를 추가하는 방법을 설명합니다. |
| ReplacingMergeTree table engine | 정렬 키 값(ORDER BY 테이블 섹션, PRIMARY KEY 아님)이 동일한 중복 행을 제거한다는 점에서 MergeTree와 다릅니다. |
| CoalescingMergeTree table engine | CoalescingMergeTree는 MergeTree 엔진을 상속합니다. 주요 기능은 파트 병합 동안 각 컬럼의 마지막 non-null 값을 자동으로 저장하는 것입니다. |
| SummingMergeTree table engine | SummingMergeTree는 MergeTree 엔진을 상속합니다. 주요 기능은 파트 병합 동안 숫자형 데이터를 자동으로 합산하는 것입니다. |
| AggregatingMergeTree table engine | 동일한 기본 키(보다 정확히는 동일한 정렬 키)를 가진 모든 행을, 집계 함수 상태들의 조합을 저장하는 단일 행(단일 데이터 파트 내)으로 대체합니다. |
| CollapsingMergeTree table engine | MergeTree를 상속하지만, 병합 과정에서 행을 축약(collapse)하는 로직을 추가로 제공합니다. |
| VersionedCollapsingMergeTree table engine | 지속적으로 변경되는 객체 상태를 빠르게 기록하고, 백그라운드에서 오래된 객체 상태를 삭제할 수 있도록 합니다. |
| GraphiteMergeTree table engine | Graphite 데이터를 희소화(thinning)하고 집계/평균(rollup)하도록 설계되었습니다. |
| Exact and Approximate Vector Search | 정확 및 근사 벡터 검색(Vector Search)에 대한 문서입니다. |
| Full-text Search with Text Indexes | 텍스트에서 검색어를 빠르게 찾는 기능입니다. |