停止数据源 API

编辑

停止一个或多个数据源。

请求

编辑

POST _ml/datafeeds/<feed_id>/_stop

POST _ml/datafeeds/<feed_id>,<feed_id>/_stop

POST _ml/datafeeds/_all/_stop

先决条件

编辑

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

描述

编辑

已停止的数据源将停止从 Elasticsearch 检索数据。数据源在其生命周期中可以启动和停止多次。

路径参数

编辑
<feed_id>
(必需,字符串) 数据源的标识符。 您可以通过使用逗号分隔的数据源列表或通配符表达式,在单个 API 请求中停止多个数据源。 您可以使用 _all 或指定 * 作为标识符来关闭所有数据源。

查询参数

编辑
allow_no_match

(可选,布尔值) 指定当请求时应该执行的操作

  • 包含通配符表达式并且没有匹配的数据源。
  • 包含 _all 字符串或没有标识符并且没有匹配项。
  • 包含通配符表达式并且只有部分匹配项。

默认值为 true,当没有匹配项时返回一个空的 datafeeds 数组,当有部分匹配项时返回结果的子集。 如果此参数为 false,则当没有匹配项或只有部分匹配项时,请求将返回 404 状态代码。

force
(可选,布尔值) 如果为 true,则强制停止数据源。
timeout
(可选,时间) 指定等待数据源停止的时间量。 默认值为 20 秒。

请求体

编辑

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

响应代码

编辑
404 (缺少资源)
如果 allow_no_matchfalse,则此代码表示没有与请求匹配的资源,或者请求只有部分匹配项。

示例

编辑
resp = client.ml.stop_datafeed(
    datafeed_id="datafeed-low_request_rate",
    timeout="30s",
)
print(resp)
response = client.ml.stop_datafeed(
  datafeed_id: 'datafeed-low_request_rate',
  body: {
    timeout: '30s'
  }
)
puts response
const response = await client.ml.stopDatafeed({
  datafeed_id: "datafeed-low_request_rate",
  timeout: "30s",
});
console.log(response);
POST _ml/datafeeds/datafeed-low_request_rate/_stop
{
  "timeout": "30s"
}

当数据源停止时,您会收到以下结果

{
  "stopped": true
}