什么是 AWS IoT Analytics? - AWS IoT Analytics

AWS IoT Analytics 不再向新客户提供。的现有客户 AWS IoT Analytics 可以继续照常使用该服务。了解更多

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 AWS IoT Analytics?

AWS IoT Analytics 自动执行分析来自 IoT 设备的数据所需的步骤。AWS IoT Analytics 对 IoT 数据进行筛选、转换和丰富,然后再将其存储在时间序列数据存储中以供分析。您可以将服务设置为只从您的设备中收集所需数据,应用数学转换来处理数据,并使用设备特定的元数据 (例如设备类型和位置) 来丰富数据,然后再存储这些数据。接下来,您可使用内置的 SQL 查询引擎通过运行查询来分析数据,也可执行更复杂的分析和机器学习。AWS IoT Analytics 通过与 Jupyter Notebook 集成,实现高级数据探索。AWS IoT Analytics 还通过与 Amazon QuickSight 集成,实现数据可视化。可以在以下区域中使用 Amazon QuickSight。

传统分析和商业智能工具设计用于处理结构化数据。原始 IoT 数据通常来自记录结构化程度较低的数据(如温度、动作或声音)的设备。因而来自这些设备的数据可能具有大量空白、损坏的消息和错误的读数,必须先清除这些,才能进行分析。另外,IoT 数据通常仅在来自外部来源的其他数据中才有意义。通过 AWS IoT Analytics,您可以解决这些问题,收集大量设备数据,以及处理和存储消息。然后,您可以对数据进行查询和分析。AWS IoT Analytics 包括适用于常见 IoT 使用案例的预构建模型,因此您可以回答一些问题,如哪些设备即将出现故障或哪些客户有放弃其可穿戴设备的风险。

如何使用 AWS IoT Analytics

下图概述了如何使用 AWS IoT Analytics。

AWS IoT Analytics 使用方式概述

主要特征

收集
  • 与 AWS IoT Core 集成 – AWS IoT Analytics 与 AWS IoT Core 完全集成,因此可接收连接设备的消息流。

  • 使用批处理 API 从任何源添加数据 – AWS IoT Analytics 可以通过 HTTP 从任意源接收数据。这意味着连接到 Internet 的任意设备或服务可以将数据发送到 AWS IoT Analytics。有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 BatchPutMessage

  • 仅收集要存储和分析的数据–您可以使用 AWS IoT Analytics 控制台将 AWS IoT Analytics 配置为通过 MQTT 主题筛选条件,以各种格式和频率从设备接收消息。AWS IoT Analytics 验证数据是否在您定义的特定参数范围内,并创建通道。然后,服务将通道路由到适当的管道来对消息进行处理、转换和丰富。

过程
  • 清理和筛选 – 使用 AWS IoT Analytics,您定义可在 AWS IoT Analytics 检测到缺少的数据时触发的 AWS Lambda 函数,因此可以运行代码来估算并填补空白。您还可以定义最大值和最小值筛选条件和百分位数阈值来删除数据中的异常值。

  • 转换 – AWS IoT Analytics 可以使用您定义的数学或条件逻辑来转换消息,以便您可以执行常见计算,例如摄氏温度到华氏温度的换算。

  • 丰富 – AWS IoT Analytics 可以使用外部数据源 (如天气预报) 来丰富数据,然后将数据路由到 AWS IoT Analytics 数据存储。

存储
  • 时间序列数据存储 - AWS IoT Analytics 将设备数据存储在优化的时间序列数据存储中,以更快地进行检索和分析。您还可以管理访问权限,实施数据保留策略以及将数据导出到外部访问点。

  • 存储处理的数据和原始数据 - AWS IoT Analytics 存储处理的数据,并且还会自动存储提取的原始数据,以便您以后对其进行处理。

分析
  • 运行临时 SQL 查询 - AWS IoT Analytics 提供了 SQL 查询引擎,因此您可以运行临时查询并快速获得结果。通过使用该服务,您可以使用标准 SQL 查询从数据存储中提取数据以回答一些问题,如互联车队的平均行驶距离,或者在晚上 7 点以后将智能建筑中的多少个门锁上。这些查询可重复使用,即使互连设备、队列大小和分析要求发生了更改也是如此。

  • 时间序列分析 - AWS IoT Analytics 支持时间序列分析,因此您可以分析设备随时间推移的性能并了解设备的使用方式和使用地点,持续监控设备数据来预测维护问题,以及监控传感器来预测环境条件并相应地作出反应。

  • 用于复杂分析和机器学习的托管笔记本 - AWS IoT Analytics 支持托管在 Jupyter Notebook 中的笔记本,用于统计分析和机器学习。该服务包括一组笔记本模板,其中包含 AWS 编写的机器学习模型和可视化效果。您可以通过模板开始使用与以下内容相关的 IoT 使用案例:设备故障分析、预测事件 (如可能表示客户将放弃产品的低使用率) 或者按客户使用水平 (如大量用户、周末用户) 或设备运行状况细分设备。在创作笔记本之后,可将其容器化并按指定计划执行它。有关更多信息,请参阅自动化工作流

  • 预测 - 您可以通过称为逻辑回归的方法进行统计分类。您还可以使用长短期记忆 (LSTM),这是一种强大的神经网络技术,用于预测随时间变化的过程的输出或状态。预构建的笔记本模板还支持用于设备细分的 K-means 集群算法,它将您的设备划分为类似设备组。这些模板通常用于剖析设备运行状况和设备状态,如巧克力工厂中的 HVAC 装置的运行状况或风力涡轮机叶片的磨损状态。同样,这些笔记本模板也可以容器化并按计划执行。

构建和可视化
  • QuickSight 集成 - AWS IoT Analytics 提供了与 Amazon QuickSight 的连接器,因此可以在 QuickSight 控制面板中可视化您的数据集。

  • 控制台集成 - 您还可以在 AWS IoT Analytics 控制台上的嵌入式 Jupyter Notebook 中可视化结果或临时分析。

AWS IoT Analytics 组件和概念

渠道

通道收集来自 MQTT 主题的数据,并在将数据发布到管道之前将原始未处理消息归档。您也可以使用 BatchPutMessage API 直接将消息发送到通道。未处理的消息存储在您或 AWS IoT Analytics 管理的 Amazon Simple Storage Service (Amazon S3)存储桶中。

管道运输

管道使用来自通道的消息,并允许您在将消息存储在数据存储之前处理消息。名为活动管道活动)的处理步骤对您的消息执行转换,例如,删除、重命名或添加消息属性,根据属性值筛选消息,为消息调用 Lambda 函数以进行高级处理,或执行数学转换以规范化设备数据。

数据存储

管道将它们处理过的消息存储在数据存储中。数据存储不是数据库,但它是一个可扩展且可查询的消息存储库。对于来自不同设备或位置的消息,您可以有多个数据存储,或者根据您的管道配置和要求,通过消息属性进行筛选。与未处理的通道消息一样,数据存储的处理消息存储在您或 AWS IoT Analytics 管理的 Amazon S3 存储桶。

数据集

您可通过创建数据集从数据存储中检索数据。通过 AWS IoT Analytics,您可以创建 SQL 数据集或容器数据集。

在拥有数据集之后,您可以通过使用 Amazon QuickSight 进行集成来探索数据并获得见解。您也可以通过与 Jupyter Notebook 的集成来执行更高级的分析函数。Jupyter Notebook 提供强大的数据科学工具,可以执行机器学习和一系列统计分析。有关更多信息,请参阅笔记本模板

您可以将数据集内容发送到 Amazon S3 存储桶,从而允许与现有数据湖集成在一起,或者从内部应用程序和可视化工具中进行访问。您还可以将数据集内容作为输入发送到 AWS IoT Events,该服务允许您监控设备或进程故障或操作更改,并在发生此类事件时触发其他操作。

SQL 数据集

SQL 数据集类似于 SQL 数据库的具体化视图。您可以通过应用 SQL 操作来创建 SQL 数据集。SQL 数据集可以通过指定触发器,按定期计划自动生成。

容器数据集

通过容器数据集,您可以自动运行分析工具和生成结果。有关更多信息,请参阅自动化工作流。它将作为输入的 SQL 数据集、Docker 容器及分析工具和所需库文件、输入和输出变量以及可选的调度触发器组合到一起。输入和输出变量告知可执行映像获取数据和存储结果的位置。触发器可以在 SQL 数据集完成创建其内容时或者按照时间调度表达式来运行分析。容器数据集自动运行,生成并随后保存分析工具的结果。

触发器

您可以通过指定触发器来自动创建数据集。触发器可以是时间间隔(例如,每隔两小时创建该数据集)或在创建另一个数据集的内容时(例如,在 myOtherDataset 完成创建其内容时创建该数据集)。或者,您可以使用 CreateDatasetContent API 手动生成数据集内容。

Docker 容器

您可以创建自己的 Docker 容器以打包您的分析工具,或使用 SageMaker 提供的选项。有关更多信息,请参阅Docker 容器。您可以创建自己的 Docker 容器以打包您的分析工具,或使用 SageMaker 提供的选项。您可以将容器存储在您指定的 Amazon ECR 注册表中,以便可以将其安装在所需的平台上。Docker 容器能够运行您通过 Matlab、Octave、Wise.io、SPSS、R、Fortran、Python、Scala、Java、C++ 等准备的自定义分析代码。有关更多信息,请参阅容器化笔记本

增量时段

增量时段是一系列用户定义的不重叠且连续的时间间隔。通过使用增量时段,您可以使用在上次分析后到达数据存储的新数据创建数据集内容,并对新数据执行分析。您可在数据集 queryActionfilters 部分中,通过设置 deltaTime 来创建增量时段。有关更多信息,请参阅 CreateDataset API。通常,您还希望设置时间间隔触发器以自动创建数据集内容 (triggers:schedule:expression)。基本上,这使您可以筛选在特定时间窗口中到达的消息,这样来自以前时间窗口的消息中包含的数据不会重复计数。有关更多信息,请参阅示例 6 - 创建具有增量时段的 SQL 数据集 (CLI)

访问 AWS IoT Analytics

作为 AWS IoT 的一部分,AWS IoT Analytics 提供以下界面以允许您的设备生成数据,并允许您的应用程序与它们生成的数据进行交互:

AWS Command Line Interface (AWS CLI)

在 Windows、OS X 和 Linux 上运行适用于 AWS IoT Analytics 的命令。您可以使用这些命令创建并管理事物、证书、规则和策略。要开始使用,请参阅 AWS Command Line Interface 用户指南。有关 AWS IoT 命令的更多信息,请参阅 AWS Command Line Interface 参考中的 iot

重要

使用 aws iotanalytics 命令与 AWS IoT Analytics 交互。使用 aws iot 命令与 IoT 系统的其他部分交互。

AWS IoT API

使用 HTTP 或 HTTPS 请求构建您的 IoT 应用程序。您可以使用这些 API 操作创建和管理事物、证书、规则及策略。有关更多信息,请参阅《 AWS IoTAPI 参考》中的操作

AWS 软件开发工具包

使用语言特定 API 构建您的AWS IoT Analytics 应用程序。这些 SDK 中封装了 HTTP 和 HTTPS API,并且您可以用任何受支持的语言进行编程。有关更多信息,请参阅 AWS 软件开发工具包和工具

AWS IoT Device SDK

构建在您的设备上运行的应用程序,以便向 AWS IoT Analytics 发送消息。有关更多信息,请参阅 AWS IoT 软件开发工具包

AWS IoT Analytics 控制台

您可以通过构建组件在 AWS IoT Analytics 控制台中可视化结果。

使用案例

预测性维护

AWS IoT Analytics 提供模板来构建预测性维护模型并将其应用于您的设备。例如,您可以使用 AWS IoT Analytics 预测互联货车上的加热和冷却系统何时可能发生故障,从而重新安排车辆路线以防止货物损坏。或者,汽车制造商可以检测哪些客户的刹车片已磨损并通知他们维修车辆。

主动补充供应品

使用 AWS IoT Analytics,可以构建可实时监控库存的 IoT 应用程序。例如,食品和饮料公司可以分析食品自动售货机中的数据并在供应不足时主动再订购商品。

过程效率评分

使用 AWS IoT Analytics,可以构建不断监控不同过程的效率并采取操作来改进过程的 IoT 应用程序。例如,矿业公司可以通过最大化每次行程的装载量来提高其运矿卡车的效率。使用 AWS IoT Analytics,公司可以确定位置或卡车随时间推移的最高效装载量,然后实时比较与目标装载量的任何偏差,并更好地规划装载指南以提高效率。

智能农业

AWS IoT Analytics 可以使用 AWS IoT 注册表数据或公共数据源来通过上下文元数据丰富 IoT 设备数据,以便您的分析可以包括时间、位置、温度、海拔及其他环境条件。通过该分析,您可以编写模型来输出建议设备在现场执行的操作。例如,要确定何时浇水,灌溉系统可使用降雨量数据来丰富湿度传感器数据,从而更高效地使用水资源。