如何在ClickHouse中终止进程(查询)

时间:2016-11-11 11:25:07

标签: clickhouse

有没有办法杀死ClickHouse中的空闲查询?我有一个永远不会完成的OPTIMIZE查询(因为它针对ReplicatedMergeTree表运行)阻塞了我需要删除的表。

2 个答案:

答案 0 :(得分:5)

是的,有一个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

服务器将取消第一个查询并改为运行第二个查询。

您可以覆盖配置文件中的选项(默认情况下已禁用),以免将其置于请求参数中。

答案 1 :(得分:1)

我通常会跑步

SELECT query_id, query from system.processes;

查找正在运行的查询。从该列表中,我发现要杀死然后执行的查询query_id

KILL QUERY where query_id = '<id>';

更多信息可以在Documentation on KILL QUERY

中找到

要杀死变异,有类似的KILL MUTATION