Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API обнаружения аномалий с помощью машинного обучения

API предварительного просмотра каналов данных

Новая справка по API

Для получения самых свежих данных об API обратитесь к API обнаружения аномалий с помощью машинного обучения.

Предварительно просматривает канал данных.

Запрос

GET _ml/datafeeds/<datafeed_id>/_preview

POST _ml/datafeeds/<datafeed_id>/_preview

GET _ml/datafeeds/_preview

POST _ml/datafeeds/_preview

Предварительные условия

Требуются следующие привилегии:

  • cluster: manage_ml (роль machine_learning_admin предоставляет эту привилегию)
  • конфигурация индекса источника в канале данных: read.

Описание

API предварительного просмотра каналов данных возвращает первую "страницу" результатов поиска из канала данных. Вы можете предварительно просмотреть существующий канал данных или предоставить сведения о конфигурации канала данных и задачи обнаружения аномалий в API. Предварительный просмотр показывает структуру данных, которая будет передана в движок обнаружения аномалий.

При включенных функциях безопасности Elasticsearch запрос канала данных предварительно просматривается с использованием учетных данных пользователя, вызывающего API предварительного просмотра канала данных. При запуске канала данных запрос выполняется с использованием ролей последнего пользователя, который создал или обновил его. Если эти наборы ролей различаются, предварительный просмотр может не точно отражать результаты, которые вернёт канал данных при запуске. Чтобы избежать таких проблем, тот же пользователь, который создаёт или обновляет канал данных, должен предварительно просмотреть его, чтобы убедиться, что он возвращает ожидаемые данные. В качестве альтернативы используйте заголовки вторичной авторизации, чтобы предоставить учетные данные.

Параметры пути

<datafeed_id>

(Необязательно, строка) Численная строка, которая однозначно идентифицирует канал данных. Этот идентификатор может содержать строчные буквенно-цифровые символы (a-z и 0-9), дефисы и нижние подчёркивания. Он должен начинаться и заканчиваться буквенно-цифровыми символами.

Если вы предоставляете <datafeed_id> в качестве параметра пути, вы не можете предоставлять сведения о конфигурации канала данных или задачи обнаружения аномалий в теле запроса.

Параметры запроса

end

(Необязательно, строка) Время, до которого должен завершиться предварительный просмотр канала данных. Предварительный просмотр может не достигать конца указанного значения, так как возвращается только первая страница результатов. Время можно указать, используя один из следующих форматов:

  • Формат ISO 8601 с миллисекундами, например 2017-01-22T06:00:00.000Z
  • Формат ISO 8601 без миллисекунд, например 2017-01-22T06:00:00+00:00
  • Миллисекунды с начала эпохи, например 1485061200000

Аргументы даты и времени, использующие любой из форматов ISO 8601, должны иметь обозначение часового пояса, где Z принимается в качестве сокращения для UTC.

Если ожидается URL-адрес (например, в браузерах), +, используемый в обозначениях часового пояса, должен быть закодирован как %2B.

Это значение является исключительным.

start
(Необязательно, строка) Время, с которого должен начаться предварительный просмотр канала данных, которое можно указать, используя те же форматы, что и параметр end. Это значение является включительным.

Если вы не предоставляете ни параметр start, ни параметр end, предварительный просмотр канала данных будет осуществлять поиск в течение всего времени данных, но исключит данные в пределах cold или frozen уровней данных.

Тело запроса

datafeed_config
(Необязательно, объект) Определение канала данных для предварительного просмотра. Для допустимых определений см. API создания каналов данных.
job_config
(Необязательно, объект) Сведения о конфигурации задачи обнаружения аномалий, связанной с каналом данных. Если объект datafeed_config не содержит job_id, который ссылается на существующую задачу обнаружения аномалий, вы должны предоставить этот объект job_config. Если вы включаете как объект job_id, так и объект job_config, используется последняя информация. Вы не можете указать объект job_config, если не предоставите также объект datafeed_config. Для допустимых определений см. API создания задач обнаружения аномалий.

Примеры

Это пример предоставления идентификатора существующего канала данных:

resp = client.ml.preview_datafeed(
    datafeed_id="datafeed-high_sum_total_sales",
)
print(resp)
response = client.ml.preview_datafeed(
  datafeed_id: 'datafeed-high_sum_total_sales'
)
puts response
const response = await client.ml.previewDatafeed({
  datafeed_id: "datafeed-high_sum_total_sales",
});
console.log(response);
GET _ml/datafeeds/datafeed-high_sum_total_sales/_preview

Возвращаемые данные в этом примере:

[
  {
    "order_date" : 1574294659000,
    "category.keyword" : "Men's Clothing",
    "customer_full_name.keyword" : "Sultan Al Benson",
    "taxful_total_price" : 35.96875
  },
  {
    "order_date" : 1574294918000,
    "category.keyword" : [
      "Women's Accessories",
      "Women's Clothing"
    ],
    "customer_full_name.keyword" : "Pia Webb",
    "taxful_total_price" : 83.0
  },
  {
    "order_date" : 1574295782000,
    "category.keyword" : [
      "Women's Accessories",
      "Women's Shoes"
    ],
    "customer_full_name.keyword" : "Brigitte Graham",
    "taxful_total_price" : 72.0
  }
]

Следующий пример предоставляет сведения о конфигурации канала данных и задачи обнаружения аномалий в API:

resp = client.ml.preview_datafeed(
    datafeed_config={
        "indices": [
            "kibana_sample_data_ecommerce"
        ],
        "query": {
            "bool": {
                "filter": [
                    {
                        "term": {
                            "_index": "kibana_sample_data_ecommerce"
                        }
                    }
                ]
            }
        },
        "scroll_size": 1000
    },
    job_config={
        "description": "Find customers spending an unusually high amount in an hour",
        "analysis_config": {
            "bucket_span": "1h",
            "detectors": [
                {
                    "detector_description": "High total sales",
                    "function": "high_sum",
                    "field_name": "taxful_total_price",
                    "over_field_name": "customer_full_name.keyword"
                }
            ],
            "influencers": [
                "customer_full_name.keyword",
                "category.keyword"
            ]
        },
        "analysis_limits": {
            "model_memory_limit": "10mb"
        },
        "data_description": {
            "time_field": "order_date",
            "time_format": "epoch_ms"
        }
    },
)
print(resp)
response = client.ml.preview_datafeed(
  body: {
    datafeed_config: {
      indices: [
        'kibana_sample_data_ecommerce'
      ],
      query: {
        bool: {
          filter: [
            {
              term: {
                _index: 'kibana_sample_data_ecommerce'
              }
            }
          ]
        }
      },
      scroll_size: 1000
    },
    job_config: {
      description: 'Find customers spending an unusually high amount in an hour',
      analysis_config: {
        bucket_span: '1h',
        detectors: [
          {
            detector_description: 'High total sales',
            function: 'high_sum',
            field_name: 'taxful_total_price',
            over_field_name: 'customer_full_name.keyword'
          }
        ],
        influencers: [
          'customer_full_name.keyword',
          'category.keyword'
        ]
      },
      analysis_limits: {
        model_memory_limit: '10mb'
      },
      data_description: {
        time_field: 'order_date',
        time_format: 'epoch_ms'
      }
    }
  }
)
puts response
const response = await client.ml.previewDatafeed({
  datafeed_config: {
    indices: ["kibana_sample_data_ecommerce"],
    query: {
      bool: {
        filter: [
          {
            term: {
              _index: "kibana_sample_data_ecommerce",
            },
          },
        ],
      },
    },
    scroll_size: 1000,
  },
  job_config: {
    description: "Find customers spending an unusually high amount in an hour",
    analysis_config: {
      bucket_span: "1h",
      detectors: [
        {
          detector_description: "High total sales",
          function: "high_sum",
          field_name: "taxful_total_price",
          over_field_name: "customer_full_name.keyword",
        },
      ],
      influencers: ["customer_full_name.keyword", "category.keyword"],
    },
    analysis_limits: {
      model_memory_limit: "10mb",
    },
    data_description: {
      time_field: "order_date",
      time_format: "epoch_ms",
    },
  },
});
console.log(response);
POST _ml/datafeeds/_preview
{
  "datafeed_config": {
    "indices" : [
      "kibana_sample_data_ecommerce"
    ],
    "query" : {
      "bool" : {
        "filter" : [
          {
            "term" : {
              "_index" : "kibana_sample_data_ecommerce"
            }
          }
        ]
      }
    },
    "scroll_size" : 1000
  },
  "job_config": {
    "description" : "Find customers spending an unusually high amount in an hour",
    "analysis_config" : {
      "bucket_span" : "1h",
      "detectors" : [
        {
          "detector_description" : "High total sales",
          "function" : "high_sum",
          "field_name" : "taxful_total_price",
          "over_field_name" : "customer_full_name.keyword"
        }
      ],
      "influencers" : [
        "customer_full_name.keyword",
        "category.keyword"
      ]
    },
    "analysis_limits" : {
      "model_memory_limit" : "10mb"
    },
    "data_description" : {
      "time_field" : "order_date",
      "time_format" : "epoch_ms"
    }
  }
}

Возвращаемые данные в этом примере:

[
  {
    "order_date" : 1574294659000,
    "category.keyword" : "Men's Clothing",
    "customer_full_name.keyword" : "Sultan Al Benson",
    "taxful_total_price" : 35.96875
  },
  {
    "order_date" : 1574294918000,
    "category.keyword" : [
      "Women's Accessories",
      "Women's Clothing"
    ],
    "customer_full_name.keyword" : "Pia Webb",
    "taxful_total_price" : 83.0
  },
  {
    "order_date" : 1574295782000,
    "category.keyword" : [
      "Women's Accessories",
      "Women's Shoes"
    ],
    "customer_full_name.keyword" : "Brigitte Graham",
    "taxful_total_price" : 72.0
  }
]

© 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/8.17/ml-preview-datafeed.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API