教程:使用 Azure AI 服务进行异常情况检测
本教程介绍如何使用 Azure AI 服务在 Azure Synapse Analytics 中轻松扩充数据。 你将使用 Azure AI 异常检测器查找异常情况。 Azure Synapse 中的用户可以直接选择某一个表进行扩充,以检测异常。
本教程涉及:
- 获取包含时序数据的 Spark 表数据集的步骤。
- 在 Azure Synapse 中使用向导体验,通过使用异常检测器来扩充数据。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
先决条件
- Azure Synapse Analytics 工作区,其中 Azure Data Lake Storage Gen2 存储帐户配置为默认存储。 你需要成为所使用的 Data Lake Storage Gen2 文件系统的存储 Blob 数据参与者。
- Azure Synapse Analytics 工作区中的 Spark 池。 有关详细信息,请参阅在 Azure Synapse 中创建 Spark 池。
- 完成在 Azure Synapse 中配置 Azure AI 服务教程中的预配置步骤。
登录到 Azure 门户
登录到 Azure 门户。
创建 Spark 表
本教程需要一个 Spark 表。
创建 PySpark 笔记本并运行以下代码。
from pyspark.sql.functions import lit
df = spark.createDataFrame([
("1972-01-01T00:00:00Z", 826.0),
("1972-02-01T00:00:00Z", 799.0),
("1972-03-01T00:00:00Z", 890.0),
("1972-04-01T00:00:00Z", 900.0),
("1972-05-01T00:00:00Z", 766.0),
("1972-06-01T00:00:00Z", 805.0),
("1972-07-01T00:00:00Z", 821.0),
("1972-08-01T00:00:00Z", 20000.0),
("1972-09-01T00:00:00Z", 883.0),
("1972-10-01T00:00:00Z", 898.0),
("1972-11-01T00:00:00Z", 957.0),
("1972-12-01T00:00:00Z", 924.0),
("1973-01-01T00:00:00Z", 881.0),
("1973-02-01T00:00:00Z", 837.0),
("1973-03-01T00:00:00Z", 9000.0)
], ["timestamp", "value"]).withColumn("group", lit("series1"))
df.write.mode("overwrite").saveAsTable("anomaly_detector_testing_data")
现在,默认的 Spark 数据库中应显示名为 anomaly_detector_testing_data 的 Spark 表。
打开 Azure AI 服务向导
右键单击在上一步中创建的 Spark 表。 选择“机器学习”>“使用新模型进行预测”打开向导。
此时会显示配置面板,你需要选择一个预训练模型。 选择“异常检测器”。
配置异常检测器
提供以下详细信息以配置异常检测器:
Azure 认知服务链接服务:作为先决条件步骤的一部分,你已创建了一个指向你的 Azure AI 服务的链接服务。 请在这里选择该服务。
粒度:采样数据的速率。 选择“每月一次”。
时间戳列:表示时序的列。 选择“时间戳(字符串)”。
时序值列:表示“时间戳”列所指定时间所对应序列值的列。 选择“值(double)”。
分组列:对系列进行分组的列。 也就是说,在此列中具有相同值的所有行应形成一个时序。 选择“组(字符串)”。
完成后,选择“打开笔记本”。 这将生成包含 PySpark 代码的笔记本,该笔记本使用 Azure AI 服务检测异常情况。
运行笔记本
你刚才打开的笔记本使用 SynapseML 库连接到 Azure AI 服务。 你提供的 Azure AI 服务链接服务可以让你在体验中安全地引用你的 Azure AI 服务,不会泄露任何秘密。
现在,可以运行所有单元格以执行异常情况检测。 选择“全部运行”。 详细了解 Azure AI 服务中的异常检测器。