8

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

4

2 回答 2

8

我通常跑步

SELECT query_id, query FROM system.processes;

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

KILL QUERY WHERE query_id = '<id>';

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

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

于 2018-10-18T12:29:29.773 回答
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

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

您可以覆盖配置文件中的选项(默认情况下禁用)以摆脱将其放置在请求参数中。

于 2016-11-11T23:26:19.453 回答