Skip to main content
버전 25.6부터 사용 가능이 테이블 엔진은 OSS와 Cloud 모두에서 버전 25.6 이상부터 사용할 수 있습니다.
이 엔진은 MergeTree를 상속합니다. 핵심적인 차이점은 데이터 파트가 병합되는 방식에 있습니다. CoalescingMergeTree 테이블에서는 ClickHouse가 동일한 기본 키(primary key), 더 정확히는 동일한 정렬 키를 가진 모든 행을 각 컬럼의 최신 NULL이 아닌 값을 담은 단일 행으로 대체합니다. 이를 통해 컬럼 수준의 업서트가 가능하므로 전체 행이 아니라 특정 컬럼만 업데이트할 수 있습니다. CoalescingMergeTree는 키가 아닌 컬럼에서 널 허용(널 허용) 타입과 함께 사용하도록 설계되었습니다. 컬럼이 널 허용이 아니면 동작은 ReplacingMergeTree와 동일합니다.

테이블 만들기

요청 매개변수에 대한 자세한 내용은 요청 설명을 참조하십시오.

CoalescingMergeTree 매개변수

컬럼

columns - 선택 사항입니다. 값이 합쳐질 컬럼 이름을 담은 튜플입니다. 지정한 컬럼은 파티션 또는 정렬 키에 포함되면 안 됩니다. columns를 지정하지 않으면 ClickHouse는 정렬 키에 포함되지 않은 모든 컬럼의 값을 합칩니다.

쿼리 절

CoalescingMergeTree 테이블을 생성할 때는 MergeTree 테이블을 생성할 때와 동일한 이 필요합니다.

사용 예시

다음 테이블을 살펴보겠습니다:
다음과 같이 데이터를 삽입합니다:
결과는 다음과 같습니다:
정확한 최종 결과를 위한 권장 쿼리:
FINAL 수정자를 사용하면 ClickHouse가 쿼리 시점에 머지 로직을 적용하므로, 각 컬럼에 대해 정확히 취합된 “최신” 값을 얻을 수 있습니다. 이는 CoalescingMergeTree 테이블에서 쿼리할 때 가장 안전하고 정확한 메서드입니다.
GROUP BY를 사용하는 방식은 기반이 되는 파트가 완전히 머지되지 않은 경우 잘못된 결과를 반환할 수 있습니다.

Tuple 요소 집계

allow_tuple_element_aggregation 설정을 활성화하면 Tuple 컬럼이 재귀적으로 평탄화되어 각 말단 요소가 독립적으로 coalescing에 참여합니다. 따라서 여러 필드를 단일 Tuple 컬럼에 저장하면서 머지 중 각 요소별로 coalescing되도록 할 수 있습니다. 즉, 각 널 허용 서브컬럼은 최신 NULL이 아닌 값을 서로 독립적으로 유지합니다. 평탄화된 서브컬럼에도 일반 컬럼과 동일한 규칙이 적용됩니다:
  • 정렬 키 또는 파티션 키(partition key)에 속하는 Tuple의 서브컬럼은 coalescing 대상에서 제외됩니다.
  • columns를 지정하면 나열된 Tuple 컬럼의 서브컬럼만 coalescing됩니다.
이 설정은 변경할 수 없으며 테이블 생성 시점에 지정해야 합니다.
마지막 수정일 2026년 7월 23일