ES|QL 任务管理编辑

您可以使用 任务管理 API 列出正在运行的 ES|QL 查询。

response = client.tasks.list(
  pretty: true,
  detailed: true,
  group_by: 'parents',
  human: true,
  actions: '*data/read/esql'
)
puts response
GET /_tasks?pretty&detailed&group_by=parents&human&actions=*data/read/esql

它将返回一个类似于以下内容的状态列表。

{
  "node" : "2j8UKw1bRO283PMwDugNNg",
  "id" : 5326,
  "type" : "transport",
  "action" : "indices:data/read/esql",
  "description" : "FROM test | STATS MAX(d) by a, b",  
  "start_time" : "2023-07-31T15:46:32.328Z",
  "start_time_in_millis" : 1690818392328,
  "running_time" : "41.7ms",                           
  "running_time_in_nanos" : 41770830,
  "cancellable" : true,
  "cancelled" : false,
  "headers" : { }
}

用户提交的查询。

查询运行的时间。

您可以使用它来查找长时间运行的查询,并在需要时使用 任务取消 API 取消它们。

response = client.tasks.cancel(
  task_id: '2j8UKw1bRO283PMwDugNNg:5326'
)
puts response
POST _tasks/2j8UKw1bRO283PMwDugNNg:5326/_cancel

查询停止可能需要几秒钟。