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

Dam*_*get 4 clickhouse

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

sim*_*Pod 6

我通常跑

SELECT query_id, query FROM system.processes;
Run Code Online (Sandbox Code Playgroud)

查找正在运行的查询。从该列表中,我找到query_id了我想杀死然后执行的查询

KILL QUERY WHERE query_id = '<id>';
Run Code Online (Sandbox Code Playgroud)

更多信息可以在关于 KILL QUERY 的文档中找到

要杀死 Mutation,有类似的KILL MUTATION.


Igo*_*ist 5

是的,有一个replace_running_query选项。

简而言之,您可以query_id在HTTP请求中添加一个参数,如下所示:

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

服务器将取消第一个查询,然后运行第二个查询。

您可以在配置文件中覆盖该选项(默认情况下处于禁用状态),以免将其放置在请求参数中。