Отправка данных в 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.
Размеры загрузок ограничены размером буфера приема HTTP Elasticsearch (по умолчанию 100 Мб). Если ваши данные больше, разбейте их на несколько фрагментов и загружайте каждый из них по отдельности в хронологическом порядке. При работе в режиме реального времени рекомендуется выполнять множество небольших загрузок вместо очереди больших файлов для загрузки.
При загрузке данных проверяйте счётчики данных задания для отслеживания прогресса. Не будут обрабатываться следующие документы:
- Документы, не упорядоченные хронологически и выходящие за пределы окна задержки
- Записи с некорректным временным отметкой
Для каждого задания данные могут приниматься только с одного подключения за раз. В настоящее время невозможно отправить данные в несколько заданий с использованием подстановочных знаков или списка, разделённого запятыми.
Параметры пути
-
<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
} Дополнительную информацию об этих свойствах см. в тела ответа.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/ml-post-data.html