向作业 API 发送数据

编辑

在 7.11.0 中已弃用。

直接向异常检测作业发送数据已弃用,在未来的主要版本中,将需要一个数据馈送

将数据发送到异常检测作业以进行分析。

请求

编辑

POST _ml/anomaly_detectors/<job_id>/_data

先决条件

编辑

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

描述

编辑

作业必须处于 open 状态才能接收和处理数据。

发送到作业的数据必须使用 JSON 格式。可以发送多个 JSON 文档,彼此相邻且之间没有分隔符,或者以空格分隔。换行符分隔的 JSON (NDJSON) 是一种可能的空格分隔格式,对于这种情况,Content-Type 标头应设置为 application/x-ndjson

上传大小限制为 Elasticsearch HTTP 接收缓冲区大小(默认 100 Mb)。如果数据较大,请将其拆分为多个块,并按时间顺序依次上传每个块。在实时运行时,通常建议执行多次小型上传,而不是排队数据以上传较大的文件。

上传数据时,请检查作业数据计数以了解进度。以下文档将不会被处理

  • 未按时间顺序排列且在延迟窗口之外的文档
  • 具有无效时间戳的记录

对于每个作业,一次只能从单个连接接受数据。目前无法使用通配符或逗号分隔列表将数据发布到多个作业。

路径参数

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

查询参数

编辑
reset_start
(可选,字符串)指定存储桶重置范围的开始时间。
reset_end
(可选,字符串)指定存储桶重置范围的结束时间。

请求正文

编辑

一个或多个包含要分析数据的 JSON 文档的序列。文档之间只允许使用空格字符。

示例

编辑

以下示例将来自 it_ops_new_kpi.json 文件的数据发布到 it_ops_new_kpi 作业

$ curl -s -H "Content-type: application/json"
-X POST http:\/\/localhost:9200/_ml/anomaly_detectors/it_ops_new_kpi/_data
--data-binary @it_ops_new_kpi.json

发送数据时,您会收到有关作业操作进度的信息。例如

{
	"job_id":"it_ops_new_kpi",
	"processed_record_count":21435,
	"processed_field_count":64305,
	"input_bytes":2589063,
	"input_field_count":85740,
	"invalid_date_count":0,
	"missing_field_count":0,
	"out_of_order_timestamp_count":0,
	"empty_bucket_count":16,
	"sparse_bucket_count":0,
	"bucket_count":2165,
	"earliest_record_timestamp":1454020569000,
	"latest_record_timestamp":1455318669000,
	"last_data_time":1491952300658,
	"latest_empty_bucket_timestamp":1454541600000,
	"input_record_count":21435
}

有关这些属性的更多信息,请参阅响应正文