searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Clickhouse Mutation操作简介

2024-08-29 02:13:43
15
0

Mutation简介

Clickhouse Mutation操作是通过ALTER TABLE命令执行的,它可以用于更新(UPDATE)或删除(DELETE)表中的数据。这种操作在某些情况下非常有用,但通常不推荐频繁使用,因为它可能对性能产生影响。

使用ALTER TABLE ... UPDATE命令可以更新表中的行:

ALTER TABLE viid_person ON CLUSTER vss_test UPDATE score = score + 5 WHERE id > 10;

这个操作是异步执行的,意味着它将在后台进行,可能不会立即在表中看到更新的效果。

使用ALTER TABLE ... DELETE命令可以删除表中的行:

ALTER TABLE table_name DELETE WHERE condition;

和更新操作一样,删除操作也是异步的。

监控Mutation进度

在ClickHouse中,监控Mutation操作的进度和状态可以通过系统表system.mutations来实现。这个表记录了MergeTree表的mutation操作及其执行状态的信息。

mutations表部分字段如下

  • database: 应用mutation的数据库名称。
  • table: 应用mutation的表名称。
  • mutation_id: mutation的ID,对于复制表,这些ID对应于ZooKeeper中相应目录下的znode名称;对于非复制表,ID对应表的数据目录中的文件名 。
  • command: mutation命令字符串,即ALTER TABLE [db.]table语句之后的部分。
  • create_time: mutation命令提交执行的日期和时间。
  • parts_to_do: 需要应用mutation的part的数量。
  • is_done: mutation是否完成的标志,1表示完成,0表示仍在进行中。

要跟踪正在进行的mutation操作,可以使用下面的语句:

SELECT * FROM system.mutations WHERE is_done = 0;

is_done=0表示所有尚未完成的mutation操作。

system.mutations表还包含以下列来提供额外信息:

  • latest_failed_part: 最近不能mutation的part的名称。
  • latest_fail_time: 最近的一个mutation失败的时间。
  • latest_fail_reason: 导致最近part的mutation失败的异常消息。

这些信息可以帮助定位mutation过程中出现的问题 。

system.mutations表中的记录不会立即删除,mutations保留的记录数通过参数finished_mutations_to_keep来设定,当mutations记录数超过设定值时,超出数量的记录会被删除。

 

 

0条评论
0 / 1000
李****萍
4文章数
0粉丝数
李****萍
4 文章 | 0 粉丝
原创

Clickhouse Mutation操作简介

2024-08-29 02:13:43
15
0

Mutation简介

Clickhouse Mutation操作是通过ALTER TABLE命令执行的,它可以用于更新(UPDATE)或删除(DELETE)表中的数据。这种操作在某些情况下非常有用,但通常不推荐频繁使用,因为它可能对性能产生影响。

使用ALTER TABLE ... UPDATE命令可以更新表中的行:

ALTER TABLE viid_person ON CLUSTER vss_test UPDATE score = score + 5 WHERE id > 10;

这个操作是异步执行的,意味着它将在后台进行,可能不会立即在表中看到更新的效果。

使用ALTER TABLE ... DELETE命令可以删除表中的行:

ALTER TABLE table_name DELETE WHERE condition;

和更新操作一样,删除操作也是异步的。

监控Mutation进度

在ClickHouse中,监控Mutation操作的进度和状态可以通过系统表system.mutations来实现。这个表记录了MergeTree表的mutation操作及其执行状态的信息。

mutations表部分字段如下

  • database: 应用mutation的数据库名称。
  • table: 应用mutation的表名称。
  • mutation_id: mutation的ID,对于复制表,这些ID对应于ZooKeeper中相应目录下的znode名称;对于非复制表,ID对应表的数据目录中的文件名 。
  • command: mutation命令字符串,即ALTER TABLE [db.]table语句之后的部分。
  • create_time: mutation命令提交执行的日期和时间。
  • parts_to_do: 需要应用mutation的part的数量。
  • is_done: mutation是否完成的标志,1表示完成,0表示仍在进行中。

要跟踪正在进行的mutation操作,可以使用下面的语句:

SELECT * FROM system.mutations WHERE is_done = 0;

is_done=0表示所有尚未完成的mutation操作。

system.mutations表还包含以下列来提供额外信息:

  • latest_failed_part: 最近不能mutation的part的名称。
  • latest_fail_time: 最近的一个mutation失败的时间。
  • latest_fail_reason: 导致最近part的mutation失败的异常消息。

这些信息可以帮助定位mutation过程中出现的问题 。

system.mutations表中的记录不会立即删除,mutations保留的记录数通过参数finished_mutations_to_keep来设定,当mutations记录数超过设定值时,超出数量的记录会被删除。

 

 

文章来自个人专栏
个人随笔
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0