获取数据框分析作业 API

编辑

检索数据框分析作业的配置信息。

请求

编辑

GET _ml/data_frame/analytics/<data_frame_analytics_id>

GET _ml/data_frame/analytics/<data_frame_analytics_id>,<data_frame_analytics_id>

GET _ml/data_frame/analytics/

GET _ml/data_frame/analytics/_all

先决条件

编辑

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

描述

编辑

您可以通过使用逗号分隔的数据框分析作业列表或通配符表达式,在单个 API 请求中获取多个数据框分析作业的信息。

路径参数

编辑
<data_frame_analytics_id>

(可选,字符串)数据框分析作业的标识符。如果您未指定此选项,则 API 返回前一百个数据框分析作业的信息。

您可以通过使用 _all,指定 * 作为 <data_frame_analytics_id>,或省略 <data_frame_analytics_id> 来获取所有数据框分析作业的信息。

查询参数

编辑
allow_no_match

(可选,布尔值)指定当请求满足以下条件时该怎么做

  • 包含通配符表达式,但没有匹配的数据框分析作业。
  • 包含 _all 字符串或没有标识符,但没有匹配项。
  • 包含通配符表达式,但只有部分匹配项。

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

exclude_generated
(可选,布尔值)指示是否应从检索的配置中删除某些字段。这允许配置采用可接受的格式,以便检索并添加到另一个集群。默认为 false。
from
(可选,整数)跳过指定数量的数据框分析作业。默认值为 0
size
(可选,整数)指定要获取的最大数据框分析作业数。默认值为 100

响应主体

编辑
data_frame_analytics

(数组)数据框分析作业资源数组,按 id 值升序排序。

数据框分析作业资源的属性
analysis
(对象)对 source 执行的分析类型。
analyzed_fields

(对象)包含 includes 和/或 excludes 模式,用于选择哪些字段包含在分析中。

analyzed_fields 的属性
excludes
(可选,数组)一个字符串数组,定义从分析中排除的字段。
includes
(可选,数组)一个字符串数组,定义包含在分析中的字段。
authorization

(对象)作业用于运行其查询的安全权限。如果最近一次更新作业时禁用了 Elastic Stack 安全功能,则会省略此属性。

authorization 的属性
api_key

(对象)如果最近一次更新作业使用了 API 密钥,则其名称和标识符将列在响应中。

api_key 的属性
id
(字符串)API 密钥的标识符。
name
(字符串)API 密钥的名称。
roles
(字符串数组)如果最近一次更新作业使用了用户 ID,则更新时其角色将列在响应中。
service_account
(字符串)如果最近一次更新作业使用了服务帐户,则帐户名称将列在响应中。
dest

(字符串)分析的目标配置。

dest 的属性
index
(字符串)存储数据框分析作业结果的目标索引
results_field
(字符串)存储分析结果的字段名称。默认为 ml
id
(字符串)数据框分析作业的唯一标识符。
model_memory_limit
(字符串)为数据框分析作业设置的 model_memory_limit
source

(对象)如何获取分析数据的配置。它具有一个 index 参数,以及可选的 query_source

source 的属性
index
(数组)要在其上执行分析的索引或多个索引。它可以是单个索引或索引模式,以及索引或模式数组。
query
(对象)为数据框分析作业指定的查询。Elasticsearch 查询域特定语言 (DSL)。此值对应于 Elasticsearch 搜索 POST 主体中的 query 对象。默认情况下,此属性具有以下值:{"match_all": {}}
_source

(对象)包含指定的 includes 和/或 excludes 模式,用于选择哪些字段出现在目标中。被排除的字段不能包含在分析中。

_source 的属性
excludes
(数组)一个字符串数组,定义从目标中排除的字段。
includes
(数组)一个字符串数组,定义包含在目标中的字段。

响应代码

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

示例

编辑

以下示例获取 loganalytics 数据框分析作业的配置信息

resp = client.ml.get_data_frame_analytics(
    id="loganalytics",
)
print(resp)
response = client.ml.get_data_frame_analytics(
  id: 'loganalytics'
)
puts response
const response = await client.ml.getDataFrameAnalytics({
  id: "loganalytics",
});
console.log(response);
GET _ml/data_frame/analytics/loganalytics

API 返回以下结果

{
  "count" : 1,
  "data_frame_analytics" : [
    {
      "id" : "loganalytics",
      "create_time" : 1656364565517,
      "version" : "8.4.0",
      "authorization" : {
        "roles" : [
          "superuser"
        ]
      },
      "description" : "Outlier detection on log data",
      "source" : {
        "index" : [
          "logdata"
        ],
        "query" : {
          "match_all" : { }
        }
      },
      "dest" : {
        "index" : "logdata_out",
        "results_field" : "ml"
      },
      "analysis" : {
        "outlier_detection" : {
          "compute_feature_influence" : true,
          "outlier_fraction" : 0.05,
          "standardization_enabled" : true
        }
      },
      "model_memory_limit" : "1gb",
      "allow_lazy_start" : false,
      "max_num_threads" : 1
    }
  ]
}