Skip to main content

Descrição

A tabela contém informações sobre mutações de tabelas MergeTree e o andamento delas. Cada comando de mutação é representado por uma única linha.

Colunas:

  • database (String) — O nome do banco de dados ao qual a mutação foi aplicada.
  • table (String) — O nome da tabela à qual a mutação foi aplicada.
  • mutation_id (String) — O ID da mutação. Para tabelas replicadas, esses IDs correspondem aos nomes de znodes no diretório <table_path_in_clickhouse_keeper>/mutations/ do ClickHouse Keeper. Para tabelas não replicadas, os IDs correspondem aos nomes de arquivos no diretório de dados da tabela.
  • command (String) — A string de comando da mutação (a parte da consulta após ALTER TABLE [db.]table).
  • create_time (DateTime) — A data e a hora em que o comando de mutação foi enviado para execução.
  • block_numbers.partition_id (Array(String)) — Para mutações de tabelas replicadas, o array contém os IDs das partições’ (um registro para cada partição). Para mutações de tabelas não replicadas, o array fica vazio.
  • block_numbers.number (Array(Int64)) — Para mutações de tabelas replicadas, o array contém um registro para cada partição com o número do bloco adquirido pela mutação. Na partição, somente as partes que contêm blocos com números menores que esse serão mutadas. Em tabelas não replicadas, os números dos blocos em todas as partições formam uma única sequência. Isso significa que, para mutações de tabelas não replicadas, a coluna conterá um registro com um único número de bloco adquirido pela mutação.
  • parts_in_progress_names (Array(String)) — Um array com os nomes das partes de dados que estão sendo mutadas no momento.
  • parts_to_do_names (Array(String)) — Um array com os nomes das partes de dados que precisam ser mutadas para que a mutação seja concluída.
  • parts_to_do (Int64) — O número de partes de dados que precisam ser mutadas para que a mutação seja concluída. Observação: mesmo que parts_to_do = 0, uma mutação de tabela replicada pode ainda não ter sido concluída devido a um INSERT de longa duração que está criando uma nova parte de dados que precisará ser mutada.
  • parts_postpone_reasons (Map(String, String)) — Um map que associa nomes de partes aos motivos pelos quais foram adiadas.
  • is_done (UInt8) — O sinalizador que indica se a mutação foi concluída. Valores possíveis: 1 se a mutação foi concluída; 0 se a mutação ainda está em andamento.
  • is_killed (UInt8) — Indica se uma mutação foi interrompida. Disponível apenas no ClickHouse Cloud. Observação: is_killed=1 não significa necessariamente que a mutação tenha sido totalmente finalizada. É possível que uma mutação permaneça por um período prolongado em um estado em que is_killed=1 e is_done=0. Isso pode ocorrer se outra mutação de longa duração estiver bloqueando a mutação interrompida. Essa é uma situação normal.
  • latest_failed_part (String) — O nome da parte mais recente que não pôde ser mutada.
  • latest_fail_time (DateTime) — A data e a hora da falha mais recente ao mutar uma parte.
  • latest_fail_reason (String) — A mensagem de exceção que causou a falha mais recente ao mutar uma parte.
  • latest_fail_error_code_name (String) — O código de erro da exceção que causou a falha mais recente ao mutar uma parte.
  • Se o nome de uma parte não estiver em parts_postpone_reasons e ela ainda não tiver sido mutada, isso significa que a parte ainda não foi agendada para mutação.
  • O nome da parte all_parts representa todas as partes que ainda não foram mutadas.
  • is_killed (UInt8) — Indica se uma mutação foi interrompida. Disponível apenas no ClickHouse Cloud.
is_killed=1 não significa necessariamente que a mutação tenha sido completamente finalizada. É possível que uma mutação permaneça por um período prolongado em um estado em que is_killed=1 e is_done=0. Isso pode acontecer se outra mutação de longa duração estiver bloqueando a mutação interrompida. Essa é uma situação normal.
  • is_done (UInt8) — O sinalizador que indica se a mutação foi concluída ou não. Valores possíveis:
    • 1 se a mutação foi concluída,
    • 0 se a mutação ainda está em andamento.
Mesmo se parts_to_do = 0, é possível que uma mutação em uma tabela replicada ainda não tenha sido concluída devido a uma consulta INSERT de longa duração, que criará uma nova parte de dados que precisará ser alterada.
Se houve problemas ao alterar algumas partes de dados, as colunas a seguir contêm informações adicionais:
  • latest_failed_part (String) — O nome da parte mais recente que não pôde ser alterada.
  • latest_fail_time (DateTime) — A data e a hora da falha mais recente ao alterar uma parte.
  • latest_fail_reason (String) — A mensagem de exceção que causou a falha mais recente ao alterar uma parte.

Monitorando mutações

Para acompanhar o progresso na tabela system.mutations, use a seguinte consulta:
Observação: isso exige permissões de leitura nas tabelas system.*.
Uso no CloudNo ClickHouse Cloud, a tabela system.mutations em cada nó contém todas as mutações do cluster, e não há necessidade de clusterAllReplicas.

Veja também

Última modificação em 14 de agosto de 2026