什么是 Amazon IoT Analytics? - Amazon IoT Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

什么是 Amazon IoT Analytics?

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

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

如何使用 Amazon IoT Analytics

下图显示了如何使用。Amazon IoT Analytics.


    概述了如何使用Amazon IoT Analytics

主要功能

收集
  • 与 集成Amazon IoT Core—Amazon IoT Analytics与完全集成Amazon IoT Core因此它可以在流入时从连接设备接收消息。

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

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

过程
  • 清洁和过滤Amazon IoT Analytics让您定义Amazon Lambda在以下情况下触发的函数Amazon IoT Analytics检测缺少的数据,因此您可以运行代码来估算并填补空白。您还可以定义最大值和最小值筛选条件以及百分位数阈值以删除数据中的异常值。

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

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

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

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

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

  • 时间序列分析 —Amazon IoT Analytics支持时间序列分析,因此您可以分析设备随时间推移的性能并了解如何以及在哪里使用它们,持续监控设备数据来预测维护问题,以及监控传感器来预测环境条件并相应地作出反应。

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

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

构建并可视化
  • 亚马逊 QuickSight 集成 —Amazon IoT Analytics提供亚马逊的连接器 QuickSight 这样你就可以在 QuickSight 控制面板。

  • 控制台集成 — 您还可以在中的嵌入式 Jupyter 笔记本中可视化结果或临时分析。Amazon IoT Analytics'控制台。

Amazon IoT Analytics组件和概念

通道

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

管道

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

数据存储

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

数据集

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

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

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

SQL 数据集

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

容器数据集

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

触发器

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

Docker 容器

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

增量时段

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

访问 Amazon IoT Analytics

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

Amazon Command Line Interface (Amazon CLI)

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

重要

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

Amazon IoT API

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

Amazon 软件开发工具包

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

Amazon IoT Device SDK

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

Amazon IoT Analytics 控制台

您可以构建组件以在Amazon IoT Analytics控制台.

使用案例

预测性维护

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

主动补充物资

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

流程效率评分

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

智能农业

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