mutations
该表包含有关 mutations 的信息 MergeTree 表格及其进度。 每个 mutation 命令都由一行表示。
列:
database
(String) — 应用 mutation 的数据库的名称。table
(String) — 应用 mutation 的表的名称。mutation_id
(String) — mutation 的 ID。 对于复制表,这些 ID 对应于 ClickHouse Keeper 中<table_path_in_clickhouse_keeper>/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 获取的块编号。 只有包含小于此编号的块的部分将在分区中被 mutation。在非复制表中,所有分区中的块编号形成一个单一序列。 这意味着对于非复制表的 mutation,该列将包含一个具有 mutation 获取的单个块编号的记录。
parts_to_do_names
(Array(String)) — 需要为 mutation 完成而 mutation 的数据部分名称的数组。parts_to_do
(Int64) — 需要为 mutation 完成而 mutation 的数据部分的数量。is_done
(UInt8) — mutation 是否完成的标志。 可能的值1
如果 mutation 已完成,0
如果 mutation 仍在进行中。
即使 parts_to_do = 0
,复制表的 mutation 也可能尚未完成,因为存在长时间运行的 INSERT
查询,该查询将创建需要 mutation 的新数据部分。
如果在 mutation 一些数据部分时出现问题,以下列将包含其他信息
latest_failed_part
(String) — 无法 mutation 的最新部分的名称。latest_fail_time
(DateTime) — 最新部分 mutation 失败的日期和时间。latest_fail_reason
(String) — 导致最新部分 mutation 失败的异常消息。
监控 mutation
要跟踪 system.mutations 表的进度,请使用以下查询 - 这需要对 system.* 表的读取权限
SELECT * FROM clusterAllReplicas('cluster_name', 'db', system.mutations)
WHERE is_done=0 AND table='tmp';
将 table='tmp'
中的 tmp
替换为要检查 mutation 的表的名称。
另请参阅