메인 콘텐츠로 건너뛰기
ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]
이 명령은 lightweight UPDATE SQL 문으로 생성된 패치 파트를 물리적으로 머티리얼라이즈하도록 수동으로 트리거합니다. 영향을 받는 컬럼만 다시 작성하여 보류 중인 패치를 데이터 파트에 강제로 적용합니다.
  • MergeTree 계열의 테이블(복제된 테이블 포함)에서만 작동합니다.
  • 이는 mutation 작업이며 백그라운드에서 비동기적으로 실행됩니다.

APPLY PATCHES를 사용하는 경우

일반적으로 APPLY PATCHES는 사용할 필요가 없습니다
패치 파트는 보통 apply_patches_on_merge 설정이 활성화되어 있으면(기본값) 머지 중에 자동으로 적용됩니다. 하지만 다음과 같은 경우에는 패치 적용을 수동으로 트리거하는 것이 유용할 수 있습니다:
  • SELECT 쿼리에서 패치를 적용할 때 발생하는 오버헤드를 줄이려는 경우
  • 여러 패치 파트가 쌓이기 전에 통합하려는 경우
  • 패치가 이미 구체화된 상태로 백업 또는 내보내기를 위해 데이터를 준비하려는 경우
  • apply_patches_on_merge가 비활성화되어 있어 패치 적용 시점을 직접 제어하려는 경우

예시

테이블의 대기 중인 모든 패치를 적용합니다:
ALTER TABLE my_table APPLY PATCHES;
패치를 특정 파티션에만 적용하십시오:
ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';
다른 작업과 함께 수행합니다:
ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;

패치 적용 모니터링

system.mutations 테이블을 사용해 패치 적용 진행 상태를 모니터링할 수 있습니다:
SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';

관련 항목

마지막 수정일 2026년 6월 10일