刷新作业 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 提供已处理的最后一个桶的结束时间戳(以毫秒为单位,自纪元以来的时间)。

如果要将作业刷新到特定时间戳,可以使用 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
}