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.
  • finish_time (DateTime) — A data e a hora em que a mutação foi concluída. Zero se a mutação ainda não foi concluída ou se o horário de sua conclusão for desconhecido. Para tabelas não replicadas, o valor é rastreado na memória e é redefinido quando a tabela é recarregada (por exemplo, na reinicialização do servidor). Para tabelas replicadas, o valor é por réplica; após uma reinicialização, o horário de conclusão da mutação concluída mais recentemente é restaurado do Keeper, enquanto mutações concluídas mais antigas informam zero.
  • 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 alteradas. 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 alteradas no momento.
  • parts_to_do_names (Array(String)) — Um array com os nomes das partes de dados que precisam ser alteradas para que a mutação seja concluída.
  • parts_to_do (Int64) — O número de partes de dados que precisam ser alteradas 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 alterada.
  • 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 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.
  • latest_fail_error_code_name (String) — O código de erro da exceção que causou a falha mais recente ao alterar uma parte.
  • Se o nome de uma parte não estiver em parts_postpone_reasons e ela ainda não tiver sido alterada, 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 alteradas.
  • 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 foi completamente finalizada. É possível que uma mutação permaneça em um estado em que is_killed=1 e is_done=0 por um período prolongado. 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 26 de agosto de 2026