Skip to content

使用 Azure AI Anomaly Detector 实现 Java 时间序列异常检测

解决复杂数据的监控痛点:通过 Azure AI Anomaly Detector Java SDK,开发者可以快速实现对单变量或多变量时间序列数据的异常点检测与趋势变化点分析。

为什么需要这个技能

在处理系统监控指标、金融交易数据或工业传感器数值时,手动设定静态阈值往往无法应对动态波动的基准线。

Azure AI Anomaly Detector 提供了基于机器学习的模型,能够自动学习数据的季节性和趋势,从而识别出真正的“异常”。对于 Java 开发者来说,使用官方 SDK 可以避免直接调用 REST API 的复杂性,通过强类型客户端快速实现从批量分析到实时流式检测的完整链路。

适用场景

  • 基础设施监控:检测 CPU、内存或网络流量的突发异常。
  • 业务指标分析:识别订单量、用户活跃度等关键指标的非正常波动。
  • 工业预测性维护:通过多变量分析(如温度、压力、振动)检测设备故障前兆。
  • 趋势切换点检测:识别数据分布发生根本性改变的“变化点”(Change Point)。

核心工作流

1. 环境配置与客户端初始化

首先在 pom.xml 中引入依赖:

xml
<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-ai-anomalydetector</artifactId>
  <version>3.0.0-beta.6</version>
</dependency>

通过环境变量配置 Endpoint 和 Key,并根据需求构建单变量(Univariate)或多变量(Multivariate)客户端:

java
MultivariateClient multivariateClient = new AnomalyDetectorClientBuilder()
    .credential(new AzureKeyCredential(key))
    .endpoint(endpoint)
    .buildMultivariateClient();

UnivariateClient univariateClient = new AnomalyDetectorClientBuilder()
    .credential(new AzureKeyCredential(key))
    .endpoint(endpoint)
    .buildUnivariateClient();

2. 实现单变量检测(Univariate)

  • 批量检测:分析一段完整的历史序列,识别所有异常点。
  • 流式检测:仅分析最新一个数据点,适用于实时告警。
  • 变化点检测:识别趋势发生显著转移的时间点。

3. 实现多变量检测(Multivariate)

多变量检测适用于 300 个以内相关信号的分析,流程为:

  • 模型训练:将数据存储在 Blob Storage 中,调用 trainMultivariateModel 训练 Graph Attention Network 模型。
  • 推理分析:使用训练好的 modelId 进行批量或单点推理。
  • 根因分析:通过 AnomalyContributor 查看哪些变量对本次异常的贡献度最高。

下载和安装

下载 azure-ai-anomalydetector-java 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐