Skip to main content

system.mutations

该表包含关于MergeTree表的mutation及其进度信息 。每条mutation命令都用一行来表示。

该表具有以下列属性:

  • database (String) — 应用mutation的数据库名称。

  • table (String) — 应用mutation的表名称。

  • mutation_id (String) — mutation的ID。对于复制表,这些ID对应于ZooKeeper中<table_path_in_zookeeper>/mutations/目录下的znode名称。对于非复制表,ID对应表的数据目录中的文件名。

  • command (String) — mutation命令字符串(ALTER TABLE [db.]table语句之后的部分)。

  • create_time (Datetime) — mutation命令提交执行的日期和时间。

  • block_numbers.partition_id (Array(String)) — 对于复制表的mutation,该数组包含分区的ID(每个分区都有一条记录)。对于非复制表的mutation,该数组为空。

  • block_numbers.number (Array(Int64)) — 对于复制表的mutation,该数组包含每个分区的一条记录,以及通过mutation获取的块号。只有包含块号小于该数字的块的part才会在分区中应用mutation。

    在非复制表中,所有分区中的块号组成一个序列。这意味着对于非复制表的mutation,该列将包含一条记录,该记录具有通过mutation获得的单个块号。

  • parts_to_do_names (Array(String)) — 由需要应用mutation的part名称构成的数组。

  • parts_to_do (Int64) — 需要应用mutation的part的数量。

  • is_done (UInt8) — mutation是否完成的标志。其中:

    • 1,表示mutation已经完成。
    • 0,表示mutation仍在进行中。

!!! info "注意" 即使 parts_to_do = 0,由于长时间运行的INSERT查询将创建需要mutate的新part,也可能导致复制表mutation尚未完成。

如果某些parts在mutation时出现问题,以下列将包含附加信息:

  • latest_failed_part(String) — 最近不能mutation的part的名称。

  • latest_fail_time(Datetime) — 最近的一个mutation失败的时间。

  • latest_fail_reason(String) — 导致最近part的mutation失败的异常消息。

另请参阅

Original article