启动数据源 API

编辑

启动一个或多个数据源。

请求

编辑

POST _ml/datafeeds/<feed_id>/_start

先决条件

编辑
  • 在启动数据源之前,必须打开异常检测作业。否则,会发生错误。
  • 需要 manage_ml 集群权限。此权限包含在 machine_learning_admin 内置角色中。

描述

编辑

必须启动数据源才能从 Elasticsearch 检索数据。数据源在其生命周期中可以启动和停止多次。

如果重新启动已停止的数据源,默认情况下,它会继续处理停止后的下一毫秒的输入数据。如果在停止和启动之间为该精确毫秒索引了新数据,则将忽略该数据。

当启用 Elasticsearch 安全功能时,您的数据源会记住上次创建或更新它的用户在创建/更新时拥有的角色,并使用相同的角色运行查询。如果在创建或更新数据源时提供了辅助授权标头,则会改用这些凭据。

路径参数

编辑
<feed_id>
(必需,字符串)唯一标识数据源的数字字符串。此标识符可以包含小写字母数字字符(a-z 和 0-9)、连字符和下划线。它必须以字母数字字符开头和结尾。

查询参数

编辑
end

(可选,字符串)数据源应结束的时间,可以使用以下格式之一指定

  • 带毫秒的 ISO 8601 格式,例如 2017-01-22T06:00:00.000Z
  • 不带毫秒的 ISO 8601 格式,例如 2017-01-22T06:00:00+00:00
  • 自 epoch 以来的毫秒数,例如 1485061200000

使用任一 ISO 8601 格式的日期时间参数必须具有时区指示符,其中 Z 被接受为 UTC 时间的缩写。

当期望 URL 时(例如,在浏览器中),时区指示符中使用的 + 必须编码为 %2B

此值是排他的。如果未指定结束时间,则数据源将连续运行。

start

(可选,字符串)数据源应开始的时间,可以使用与 end 参数相同的格式指定。此值是包含的。

如果未指定开始时间,并且数据源与新的异常检测作业相关联,则分析将从最早可用数据的时间开始。

如果重新启动已停止的数据源并指定早于最新处理记录的时间戳的 start 值,则数据源将从最新处理记录的时间戳后 1 毫秒继续。

timeout
(可选,时间)指定等待数据源启动的时间量。默认值为 20 秒。

请求体

编辑

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

响应体

编辑
node
(字符串)数据源启动所在的节点的 ID。如果允许数据源延迟打开且尚未分配给节点,则此值为空字符串。
started
(布尔值)对于成功响应,此值始终为 true。如果失败,则会返回异常。

示例

编辑
resp = client.ml.start_datafeed(
    datafeed_id="datafeed-low_request_rate",
    start="2019-04-07T18:22:16Z",
)
print(resp)
const response = await client.ml.startDatafeed({
  datafeed_id: "datafeed-low_request_rate",
  start: "2019-04-07T18:22:16Z",
});
console.log(response);
POST _ml/datafeeds/datafeed-low_request_rate/_start
{
  "start": "2019-04-07T18:22:16Z"
}

当数据源启动时,您会收到以下结果

{
  "started" : true,
  "node" : "node-1"
}