刷新作业 API

编辑

强制作业处理任何缓冲的数据。

请求

编辑

POST _ml/anomaly_detectors/<job_id>/_flush

先决条件

编辑

需要 manage_ml 集群特权。此特权包含在 machine_learning_admin 内置角色中。

描述

编辑

仅当使用 发布数据 API 发送数据进行分析时,刷新作业 API 才适用。根据缓冲区的内容,它可能会额外计算新的结果。

刷新和关闭操作类似,但是如果您希望发送更多数据进行分析,则刷新效率更高。刷新时,作业保持打开状态,可用于继续分析数据。关闭操作还会将模型状态修剪并持久化到磁盘,并且必须再次打开作业才能分析进一步的数据。

路径参数

编辑
<job_id>
(必需,字符串)异常检测作业的标识符。

查询参数

编辑
advance_time
(字符串)可选。指定前进到特定的时间值。将生成结果,并更新指定时间间隔内的数据模型。
calc_interim
(布尔值)可选。如果为 true,则计算最近的存储桶或延迟期内所有存储桶的临时结果。
end
(字符串)可选。与 calc_interimstart 结合使用时,指定要计算临时结果的存储桶范围。
skip_time
(字符串)可选。指定跳过到特定的时间值。不会生成结果,也不会更新指定时间间隔内的数据模型。
start
(字符串)可选。与 calc_interim 结合使用时,指定要计算临时结果的存储桶范围。

请求体

编辑

您还可以在请求体中指定查询参数(例如 advance_timecalc_interim)。

示例

编辑
resp = client.ml.flush_job(
    job_id="low_request_rate",
    calc_interim=True,
)
print(resp)
const response = await client.ml.flushJob({
  job_id: "low_request_rate",
  calc_interim: true,
});
console.log(response);
POST _ml/anomaly_detectors/low_request_rate/_flush
{
  "calc_interim": true
}

当操作成功时,您会收到以下结果

{
  "flushed": true,
  "last_finalized_bucket_end": 1455234900000
}

last_finalized_bucket_end 提供处理的最后一个存储桶结束的 Unix 纪元时间戳(以毫秒为单位)。

如果要将作业刷新到特定的时间戳,可以使用 advance_timeskip_time 参数。例如,要前进到 2018 年 1 月 1 日格林威治标准时间上午 11 点

resp = client.ml.flush_job(
    job_id="total-requests",
    advance_time="1514804400000",
)
print(resp)
const response = await client.ml.flushJob({
  job_id: "total-requests",
  advance_time: 1514804400000,
});
console.log(response);
POST _ml/anomaly_detectors/total-requests/_flush
{
  "advance_time": "1514804400000"
}

当操作成功时,您会收到以下结果

{
  "flushed": true,
  "last_finalized_bucket_end": 1514804400000
}