You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

客户端终止后,ClickHouse长时间运行的更新(含列类型修改)任务会如何?

ClickHouse客户端终止后长时任务的执行状态

一、客户端意外终止时,长时间更新任务的执行逻辑

  • ClickHouse的更新类任务(比如ALTER TABLE ... UPDATE)提交到服务端后,会脱离客户端连接独立运行。哪怕客户端意外终止,服务端会继续执行该任务,直到完成或者遇到无法恢复的错误。
  • 你可以通过查询system.processes系统表查看正在执行的任务;任务结束后,system.query_log里会留存执行结果和状态。

二、JDBC客户端JVM终止后,列类型修改任务的状态

  • 列类型修改(ALTER TABLE ... MODIFY COLUMN)属于重型DDL操作,需要全量迁移数据转换类型,这类操作同样由服务端异步处理。只要JDBC客户端的请求已经被服务端接收并启动任务,就算客户端JVM进程终止,服务端也会继续完成整个数据转换和结构更新流程。
  • 如果任务执行中出现故障(比如磁盘空间不足),ClickHouse会自动回滚,表结构恢复到修改前的状态;如果顺利完成,表结构会更新为新类型,数据也完成转换。
  • 要查看这类任务的状态,可以查询system.mutations系统表:
    SELECT * FROM system.mutations WHERE table = 'your_table_name'
    
    其中is_done字段标识任务是否完成,latest_failed_reason会记录失败原因(如果有)。

ClickHouse官方文档明确说明:所有DDL和长时运行的更新任务均由服务端异步管理,客户端连接的断开不会影响任务的执行生命周期,任务的启动、执行、终止/回滚全由服务端控制。

内容的提问来源于stack exchange,提问作者thewolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:43:24