带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(4)

简介: 带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(4)


《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.16. Machine learning ——3.5.16.3.Anomaly detection(3) https://developer.aliyun.com/article/1227221


6. job 类型简介

 

single metric job、Multi metric job、population job 是 Kibana抽象出来的几种常用类型,并非机器学习 job 分出来的类型,从 API 就可以清晰的看到,并没有 type 字段区分 job 类型,是通过配置参数的方式调整成用户预期的分析 job。

 

主要用途:

 

l Single metric:对一个索引字段进行数据分析。

l Multi metric:对多个索引字段分别进行数据分析,可根据字段分组切片。

l Population:群体分析,用于检测行为不同于指定群体中的其他实体的对象。

l Advanced:高级用法,对一个或多个索引字段执行数据分析,可包含多个检测器,且能通过JSON 编辑没有在 Kibana 中可视化的配置。


7. 使用 API 创建 Multi metric job

 

通过 API 创建 Multi metric job,指定 jobId、bucket_span、detectors、time_field、

by_field_name、influencers。


PUT _ml/anomaly_detectors/second_detector
{
  "description": "multi metric detector",
  "analysis_config": {
    "bucket_span": "15m",
    "detectors": [
      {
        "detector_description": "Sum of volume",
        "function": "sum",
        "field_name": "volume",
        "by_field_name":"label.keyword"
      },
      {
        "detector_description": "max of volume",
        "function": "max",
        "field_name": "volume",
        "by_field_name":"label.keyword"
      },
      {
        "detector_description": "max of high",
        "function": "max",
        "field_name": "high",
        "by_field_name":"label.keyword"
      }
    ],
    "influencers":["label.keyword","symbol"]
  },
  "data_description": {
    "time_field": "date",
    "time_format": "epoch_ms"
  }
  }

可以发现和 single metric job 十分类似,只是 Multi metric job 使用了多个 detectors,对多个字段进行检测,并且按照 label.keyword 字段进行拆分,在该 job 中添加了 label.keyword 、symbol 这两个影响者。

 

同样的,需要为该 job 创建一个 datafeed,保证 job 出于 open 状态,并开启 datafeed 的 task。


# 创建datafeed,通过job_id绑定机器学习job
PUT _ml/datafeeds/second-datafeed
{
  "job_id": "second_detector",
  "indexes": [
    "zmc-test1"
  ],
  "scroll_size": 1000
}
# 开启datafeed,将数据传输给job(需要保证job是open状态)
POST _ml/datafeeds/second-datafeed/_start?start=1970-01-02T10:00:00Z&end=2021-09-10T00:00:00Z

8. 使用 API 创建 population job

 

通过 API 创建 population job,可以看到与上述2种 job 的创建所使用的参数基本非常类似。over_field_name 表示以 label 字段的数据为总体的基准,对 field_name 指定的 change 字段进行分析。

 

这里还补充了一些可选参数,model_memory_limit 指定了该 job 的内存限制, model_snapshot_retention_days 指定了 snapshot 的保存时间,allow_lazy_open 指定了内存不足的情况下 job 是否可以 open(默认 false,不允许 open,如果为 true 则表示允许 open,等待内存充足的时候再执行),results_index_name 指定了 job 结果存入的索引的后缀名。


PUT _ml/anomaly_detectors/population_v2_detector
{
  "description": "population detector",
  "analysis_config": {
    "bucket_span": "15m",
    "detectors": [
      {
        "detector_description": "mean(change) over \"label.keyword\",这是一个群体分析j
        ob",
        "function": "mean",
        "field_name": "change",
        "over_field_name": "label.keyword",
        "detector_index": 0
      }
    ],
    "influencers": [
      "label.keyword"
    ]
  },
  "analysis_limits": {
    "model_memory_limit": "1024mb",
    "categorization_examples_limit": 4
  },
  "data_description": {
    "time_field": "date",
    "time_format": "epoch_ms"
  },
  "model_snapshot_retention_days": 1,
  "results_index_name": "shared",
  "allow_lazy_open": false
}

 为 population_v2_detector 这个 job 绑定一个 datafeed,该 datafeed 可以获取 zmc-test1 索引中的所有数据,可以通过 query 语句进行调整。

# 创建datafeed
PUT _ml/datafeeds/population-v2-datafeed
{
  "job_id": "population_v2_detector",
  "indexes": [
    "zmc-test1"
  ],
  "scroll_size": 1000,
  "query": {
    "bool": {
      "must": [
        {
          "match_all": {}
        }
      ]
    }
    },
  "chunking_config": {
    "mode": "auto"
  },
  "delayed_data_check_config": {
    "enabled": true
  }
}
# 开启datafeed任务,将数据传输到job
POST _ml/datafeeds/population-v2-datafeed/_start?start=1970-01-02T10:00:00Z&end=2021-09-10T00:00:00Z

9. 使用 Kibana 创建 Multi metric job、population job

 

1大多步骤与 single metric job 创建方式一致,不再赘述。

2Multi metric job,指标属性选取演示。


image.png


还可以在后续步骤中选择 label 字段进行切片,分组后逐一分析。

 

3population job,指标属性选取演示。

image.png

10. 查看机器学习分析结果

 

该过程即查询 .ml-anomalies-shared 索引中的数据,ES 提供了语义更加清晰的 API。

 

1按照 bucket 返回异常检测 job 的结果。


GET _ml/anomaly_detectors/first_detectors/results/buckets
{
  "anomaly_score": 80,
  "start": "1547078400000"
}

2可以通过 Kibana 的可视化页面查看结果和预测。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
存储 监控 安全
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
Apache Doris 助力奇安信建设全新日志存储分析平台,提升系统安全性与快速响应能力!
744 0
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
|
Java 开发工具
SpringBoot2.x基础篇:配置文件的加载顺序以及优先级覆盖
`SpringBoot`约定了配置文件,默认为`application.properties`,通过该文件可以修改很多默认的配置,当然我们还可以在该配置文件内添加自定义的配置,该文件通过`key=value`的形式进行配置。
|
机器学习/深度学习 物联网 大数据
|
机器学习/深度学习 存储 运维
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(1)
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(1)
316 0
|
机器学习/深度学习 运维 安全
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(2)
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(2)
216 0
|
机器学习/深度学习 运维 API
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(3)
带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(3)
253 0
|
网络协议 Oracle Java
SpringBoot2.x系列教程30--H2内存数据库使用教程详解
前言 我们在开发或学习时,有时候我们想编写一个数据库操作的小demo,但又不想利用MySQL、Oracle等数据库进行建库建表操作,因为我只想写个小案例,感觉没必要弄个很大很麻烦的数据库。而且这个案例中的数据用完之后就不再需要了,所以也不需要进行数据的持久化。那有没有什么办法可以满足我们的这个需求呢? 既然你提了需求,那么 壹哥 就想办法满足你的需求,今天壹哥给大家介绍一个可以不进行持久化操作,用起来也没有那么麻烦的数据库,就是H2内存数据库! H2是一款内存数据库,适合我们在开发阶段、学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求。接下来就跟着我来学习一下这个
1351 0
|
SQL 存储 数据库
零距离接触阿里云时序时空数据库TSDB
最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空数据库(面向智联网领域),在即将过去的2018年,我们对TSDB进行了多次的系统架构改进,引入了倒排索引、无限时间线支持、时序数据高压缩比算法、内存缓存、数据预处理、分布式并行聚合、GPU加速等多项核心技术,并且引入了新的计算引擎层和分布式SQL层,使得引擎核心能力有了质的提升,也基本上统一了集团内部的监控存储业务。
12994 0
|
Java 测试技术 数据库
Spring Boot多数据源配置与使用
Spring Boot多数据源配置与使用
1111 0
|
18天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34835 46
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)

热门文章

最新文章

下一篇
开通oss服务