You need to enable JavaScript to run this app.
导航
终止语句(KILL)
最近更新时间:2025.05.16 16:11:40首次发布时间:2025.05.16 16:11:40
我的收藏
有用
有用
无用
无用

当前 ByteHouse 支持终止查询(kill query)。

KILL QUERY

Kill query 语句将强制终止当前正在运行的查询。

注意事项

如果您仅具有只读权限(SELECT、SHOW、GET)则仅能终止您创建的查询。您可通过 ByteHouse 控制台 > 权限管理 > 用户 > 数据权限查看拥有的数据权限。如需获取更高数据管理权限,请联系管理员配置,详情请参见数据权限管理

语法

KILL QUERY
  WHERE <where expression to SELECT FROM system.processes query>  
  [SYNC|ASYNC|TEST]  
  [FORMAT format]

具体参数说明如下:

参数

是否必填

说明

WHERE <where expression to SELECT FROM system.processes query>

使用 where 表达式定义需要终止的查询的条件。该示例表示从system.processes 表中选择满足条件的查询,并将其终止。您可将 system.processes 替换为您的数据表名称。

[SYNC

ASYNC

TEST]

  • ASYNC:默认使用异步强制终止,异步终止将强制执行,不会确认当前查询是否已停止(stop)。
  • SYNC:同步查询会等待所有查询停止后再终止查询,并显示进程信息。SYNC 返回的信息将展示在 kill_status 列,包含以下类型:
    • finished – 查询已成功终止。
    • waiting – 已发送终止信号,等待查询结束。
    • 其他值解释了查询无法终止的原因。
  • TEST:TEST 仅测试用户的权限,并列出待终止操作。

[FORMAT format]

可选值,定义命令执行结果的输出格式,默认输出格式为 TabSeperateed。支持的常见格式包括 TabSeperated、CSV、Pretty、JSON、JSONEachRow、XML 等。

示例

示例 1:强制终止某个特定的查询

  1. 获取尚未完成的查询语句列表,示例 SQL 命令将根据 SQL 查询时长降序输出列表。

    • 从单个 ByteHouse 节点获取查询语句列表:

      SELECT  
        initial_query_id,  
        query_id,  
        formatReadableTimeDelta(elapsed) AS time_delta,  
        query,  
        *  
        FROM system.processes  
        WHERE query ILIKE 'SELECT%'  
        ORDER BY time_delta DESC;
      
    • 从 ByteHouse 集群获取查询语句列表:

      SELECT  
        initial_query_id,  
        query_id,  
        formatReadableTimeDelta(elapsed) AS time_delta,  
        query,  
        *  
        FROM clusterAllReplicas(default, system.processes)  
        WHERE query ILIKE 'SELECT%'  
        ORDER BY time_delta DESC;
      
  2. 终止查询。

    KILL QUERY WHERE initial_query_id='2-857d-4a57-9ee0-327da5d60a90'
    

示例 2:同步终止某个用户运行的所有查询

  1. 获取尚未完成的查询语句列表,示例 SQL 命令将根据 SQL 查询时长降序输出列表。

    • 从单个 ByteHouse 节点获取查询语句列表:

      SELECT  
        initial_query_id,  
        query_id,  
        formatReadableTimeDelta(elapsed) AS time_delta,  
        query,  
        *  
        FROM system.processes  
        WHERE query ILIKE 'SELECT%'  
        ORDER BY time_delta DESC;
      
    • 从 ByteHouse 集群获取查询语句列表:

      SELECT  
        initial_query_id,  
        query_id,  
        formatReadableTimeDelta(elapsed) AS time_delta,  
        query,  
        *  
        FROM clusterAllReplicas(default, system.processes)  
        WHERE query ILIKE 'SELECT%'  
        ORDER BY time_delta DESC;
      
  2. 终止查询。

    KILL QUERY WHERE user='username' SYNC