Skip to main content

설명

이 테이블에는 MergeTree 테이블의 뮤테이션과 해당 진행 상태에 관한 정보가 포함되어 있습니다. 각 뮤테이션 명령은 하나의 행으로 표시됩니다.

컬럼:

  • database (String) — 뮤테이션이 적용된 데이터베이스의 이름입니다.
  • table (String) — 뮤테이션이 적용된 테이블의 이름입니다.
  • mutation_id (String) — 뮤테이션의 ID입니다. 복제된 테이블에서는 이 ID가 ClickHouse Keeper의 <table_path_in_clickhouse_keeper>/mutations/ 디렉터리에 있는 znode 이름에 해당합니다. 복제되지 않은 테이블에서는 테이블 데이터 디렉터리의 파일 이름에 해당합니다.
  • command (String) — 뮤테이션 명령 문자열입니다(ALTER TABLE [db.]table 뒤에 오는 쿼리 부분).
  • create_time (DateTime) — 뮤테이션 명령이 실행을 위해 제출된 날짜와 시간입니다.
  • block_numbers.partition_id (Array(String)) — 복제된 테이블의 뮤테이션에서는 배열에 파티션 ID가 포함됩니다(파티션당 레코드 1개). 복제되지 않은 테이블의 뮤테이션에서는 배열이 비어 있습니다.
  • block_numbers.number (Array(Int64)) — 복제된 테이블의 뮤테이션에서는 배열에 각 파티션당 레코드 1개가 포함되며, 각 레코드에는 뮤테이션이 획득한 블록 번호가 들어 있습니다. 해당 파티션에서는 이 번호보다 작은 번호의 블록을 포함하는 파트만 뮤테이션됩니다. 복제되지 않은 테이블에서는 모든 파티션의 블록 번호가 하나의 시퀀스를 이룹니다. 따라서 복제되지 않은 테이블의 뮤테이션에서는 이 컬럼에 뮤테이션이 획득한 단일 블록 번호를 포함하는 레코드 1개가 들어 있습니다.
  • parts_in_progress_names (Array(String)) — 현재 뮤테이션 중인 데이터 파트 이름의 배열입니다.
  • parts_to_do_names (Array(String)) — 뮤테이션을 완료하려면 뮤테이션해야 하는 데이터 파트 이름의 배열입니다.
  • parts_to_do (Int64) — 뮤테이션을 완료하려면 뮤테이션해야 하는 데이터 파트 수입니다. 참고: parts_to_do = 0이더라도, 뮤테이션해야 하는 새 데이터 파트를 생성하는 장기 실행 INSERT로 인해 복제된 테이블의 뮤테이션이 아직 완료되지 않았을 수 있습니다.
  • parts_postpone_reasons (Map(String, String)) — 파트 이름을 연기 사유에 매핑한 맵입니다.
  • is_done (UInt8) — 뮤테이션 완료 여부를 나타내는 플래그입니다. 가능한 값: 뮤테이션이 완료된 경우 1, 아직 진행 중인 경우 0입니다.
  • is_killed (UInt8) — 뮤테이션이 중지되었는지 나타냅니다. ClickHouse Cloud에서만 사용할 수 있습니다. 참고: is_killed=1이라고 해서 반드시 뮤테이션이 완전히 종료된 것은 아닙니다. 뮤테이션은 장기간 is_killed=1 및 is_done=0 상태로 유지될 수 있습니다. 다른 장기 실행 뮤테이션이 중지된 뮤테이션을 차단하는 경우 이러한 상황이 발생할 수 있습니다. 이는 정상적인 상황입니다.
  • latest_failed_part (String) — 뮤테이션하지 못한 가장 최근 파트의 이름입니다.
  • latest_fail_time (DateTime) — 가장 최근 파트 뮤테이션 실패가 발생한 날짜와 시간입니다.
  • latest_fail_reason (String) — 가장 최근 파트 뮤테이션 실패를 일으킨 예외 메시지입니다.
  • latest_fail_error_code_name (String) — 가장 최근 파트 뮤테이션 실패를 일으킨 예외의 오류 코드입니다.
  • 파트 이름이 parts_postpone_reasons에 없고 아직 뮤테이션되지 않았다면, 해당 파트는 아직 뮤테이션 대상으로 예약되지 않은 것입니다.
  • 파트 이름 all_parts는 아직 뮤테이션되지 않은 모든 파트를 나타냅니다.
  • is_killed (UInt8) — 뮤테이션이 중지되었는지 여부를 나타냅니다. ClickHouse Cloud에서만 사용할 수 있습니다.
is_killed=1이라고 해서 뮤테이션이 반드시 완전히 종료된 것은 아닙니다. 뮤테이션은 장기간 is_killed=1is_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는 필요하지 않습니다.

관련 항목

마지막 수정일 2026년 8월 14일