有没有办法在ClickHouse中终止一个空闲查询?我有一个OPTIMIZE查询,它永远不会完成(因为它正在针对一个ReplicatedMergeTree表运行),导致我需要删除的表被阻塞。
我通常跑步
SELECT query_id, query FROM system.processes;
查找正在运行的查询。从列表中找到我想要终止的查询的query_id
,然后执行相应操作。
KILL QUERY WHERE query_id = '<id>';
更多信息可以在KILL QUERY文档中找到。
要终止Mutation,可以使用类似的KILL MUTATION
命令。
是的,有一个replace_running_query选项。
简而言之,您可以向HTTP请求添加query_id
参数,例如:
http://localhost:8123/?query=SELECT * FROM system.numbers LIMIT 100000000& replace_running_query=1&query_id=example
然后进行第二个HTTP请求,使用相同的query_id
:
http://localhost:8123/?query=SELECT 1&replace_running_query=1&query_id=example
服务器将取消第一个查询并运行第二个查询。
您可以在配置文件中覆盖此选项(默认情况下禁用),以摆脱将其放置在请求参数中。
replace_running_query
。顺便说一下,我不是系统管理员,因此无法修改配置或打开8123端口。我请求系统管理员重新启动受影响的节点,这解决了问题(但并不理想)。 - DamnWidget