system.mutations
이 테이블에는 MergeTree 테이블의 뮤테이션과 그 진행 상태에 대한 정보가 포함되어 있습니다. 각 뮤테이션 명령은 하나의 행으로 표현됩니다.
Columns:
database(String) — 뮤테이션이 적용된 데이터베이스 이름입니다.table(String) — 뮤테이션이 적용된 테이블 이름입니다.mutation_id(String) — 뮤테이션 ID입니다. 복제된 테이블(Replicated Table)의 경우 이 ID는 ClickHouse Keeper의<table_path_in_clickhouse_keeper>/mutations/디렉터리 내 znode 이름과 대응합니다. 비복제 테이블의 경우 이 ID는 테이블 데이터 디렉터리 내 파일 이름과 대응합니다.command(String) — 뮤테이션 명령 문자열입니다(쿼리에서ALTER TABLE [db.]table이후 부분).create_time(DateTime) — 뮤테이션 명령이 실행을 위해 제출된 날짜와 시간입니다.block_numbers.partition_id(Array(String)) — 복제된 테이블의 뮤테이션의 경우, 각 파티션당 하나의 레코드로 파티션 ID를 포함하는 배열입니다. 비복제 테이블의 뮤테이션의 경우 배열은 비어 있습니다.block_numbers.number(Array(Int64)) — 복제된 테이블의 뮤테이션의 경우, 각 파티션에 대해 해당 뮤테이션이 할당받은 블록 번호를 하나의 레코드로 포함하는 배열입니다. 이 번호보다 작은 번호를 가진 블록을 포함하는 파트만 해당 파티션에서 뮤테이션됩니다. 비복제 테이블에서는 모든 파티션의 블록 번호가 단일 시퀀스를 이룹니다. 따라서 비복제 테이블의 뮤테이션의 경우, 이 컬럼에는 뮤테이션이 할당받은 단일 블록 번호를 포함한 레코드가 하나만 존재합니다.parts_in_progress_names(Array(String)) — 현재 뮤테이션이 진행 중인 데이터 파트의 이름 배열입니다.parts_to_do_names(Array(String)) — 뮤테이션이 완료되기 위해 앞으로 뮤테이션이 수행되어야 하는 데이터 파트의 이름 배열입니다.parts_to_do(Int64) — 뮤테이션이 완료되기 위해 앞으로 뮤테이션이 수행되어야 하는 데이터 파트의 개수입니다.parts_postpone_reasons(Map(String)) — 연기된 파트 이름과 그 이유를 매핑한 맵입니다.
참고
- 파트 이름이
parts_postpone_reasons에 없고 아직 뮤테이션이 수행되지 않았다면, 해당 파트는 아직 뮤테이션이 예약되지 않은 것입니다. all_parts라는 파트 이름은 아직 뮤테이션이 수행되지 않은 모든 파트를 나타냅니다.
is_killed(UInt8) — 뮤테이션이 중지(kill)되었는지 여부를 나타냅니다. ClickHouse Cloud에서만 사용할 수 있습니다.
참고
is_killed=1이라고 해서 뮤테이션이 완전히 종료되었다는 의미는 아닙니다. is_killed=1이고 is_done=0 상태가 오랜 기간 지속될 수 있습니다. 이는 다른 장시간 실행 중인 뮤테이션이 중지된 뮤테이션을 차단하고 있는 경우 발생할 수 있습니다. 이러한 상황은 정상입니다.
is_done(UInt8) — 뮤테이션이 완료되었는지 여부를 나타내는 플래그입니다. 가능한 값:- 뮤테이션이 완료된 경우
1, - 뮤테이션이 아직 진행 중인 경우
0.
- 뮤테이션이 완료된 경우
참고
parts_to_do = 0인 경우에도, 복제된 테이블의 뮤테이션은 장시간 실행되는 INSERT 쿼리로 인해 아직 완료되지 않았을 수 있습니다. 이 쿼리는 뮤테이션이 필요로 하는 새로운 데이터 파트를 생성합니다.
일부 데이터 파트의 뮤테이션에 문제가 발생한 경우, 다음 컬럼에 추가 정보가 포함됩니다:
latest_failed_part(String) — 가장 최근에 뮤테이션에 실패한 파트의 이름입니다.latest_fail_time(DateTime) — 가장 최근 파트 뮤테이션 실패가 발생한 날짜와 시간입니다.latest_fail_reason(String) — 가장 최근 파트 뮤테이션 실패를 발생시킨 예외 메시지입니다.
뮤테이션 모니터링
system.mutations 테이블의 진행 상황을 추적하려면 다음 쿼리를 사용하십시오:
참고: system.* 테이블에 대한 읽기 권한이 필요합니다.
Cloud 사용
ClickHouse Cloud에서는 각 노드의 system.mutations 테이블에 클러스터 전체의 모든 뮤테이션이 포함되어 있으므로 clusterAllReplicas를 사용할 필요가 없습니다.
함께 보기
- Mutations
- MergeTree 테이블 엔진
- ReplicatedMergeTree 계열