向作业 API 发送数据
编辑向作业 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 }
有关这些属性的更多信息,请参阅响应正文。