(控制台)开始使用Amazon IoT Analytics(控制台) - Amazon IoT Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

(控制台)开始使用Amazon IoT Analytics(控制台)

使用本教程创建所需的Amazon IoT Analytics资源(也称为组件),以发现有关 IoT 设备数据的有用见解。

注意
  • 如果您在以下教程中输入大写字符,则Amazon IoT Analytics会自动将其更改为小写字符。

  • 该Amazon IoT Analytics控制台具有一键入门功能,可创建频道、管道、数据存储和数据集。登录到Amazon IoT Analytics控制台时可以找到此功能。

    • 本教程将指导您完成创建Amazon IoT Analytics资源的每个步骤。

按照以下说明创建Amazon IoT Analytics频道、管道、数据存储和数据集。本教程还向您展示了如何使用Amazon IoT Core控制台发送将要引入的消息Amazon IoT Analytics。

登录到 Amazon IoT Analytics 控制台

首先,您必须拥有Amazon账户。如果你已经有Amazon账户,请导航到 https://console.aws.amazon.com/iotanalytics/

如果您还没有Amazon账户,请按照以下步骤创建。

创建 Amazon 账户
  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

    当您注册 Amazon Web Services 账户 时,系统将会创建一个 Amazon Web Services 账户根用户。根用户有权访问该账户中的所有 Amazon Web Services和资源。作为安全最佳实践,请 为管理用户分配管理访问权限,并且只使用根用户执行 需要根用户访问权限的任务

  3. 登录Amazon Web Services Management Console并导航到 https://console.aws.amazon.com/iotanalytics/

创建通道

通道收集和存档原始、未处理和非结构化的 IoT 设备数据。按照以下步骤创建频道。

创建通道
  1. https://console.aws.amazon.com/iotanalytics/准备数据Amazon IoT Analytics部分中,选择查看频道

    
      “准备数据时使用Amazon IoT Analytics” 的屏幕截图。
    提示

    您也可以从导航窗格中选择 Channels (通道)。

  2. Channels (通道) 页面上,选择 Create channel (创建通道)。

  3. 指定频道详细信息页面上,输入有关您的频道的详细信息。

    1. 输入唯一且易于识别的频道名称。

    2. (可选)对于 Tags(标签),将一个或多个自定义标签(键值对)添加到您的频道中。标签可帮助您标识您创建的资源Amazon IoT Analytics。

    3. 选择 Next(下一步)

  4. Amazon IoT Analytics将未处理的原始 IoT 设备数据存储在 Amazon Simple Storage (Amazon Simple Storage) 存储桶中 您可以选择自己的 Amazon S3 存储桶,您可以访问和管理,Amazon IoT Analytics也可以为您管理 Amazon S3 存储桶。

    1. 在本教程中,对于存储类型,选择服务管理存储

    2. 对于选择存储原始数据的时间,选择 “无限期”。

    3. 选择 Next(下一步)

  5. 配置源页面上,输入Amazon IoT Analytics要从中收集消息数据的信息Amazon IoT Core。

    1. 输入Amazon IoT Core主题筛选器,例如update/environment/dht1。在本教程的稍后部分,您将使用此主题过滤器向您的频道发送消息数据。

    2. IAM 角色区域中,选择新建。在创建新角色窗口中,输入角色的名称,然后选择创建角色。这将自动创建一个附加了相应策略的角色。

    3. 选择 Next(下一步)

  6. 查看您的选择,然后选择创建频道

  7. 确认您的新频道出现在频道页面上。

创建数据存储

数据存储接收并存储您的消息数据。数据存储不是数据库。相反,数据存储是 Amazon S3 存储桶中的可扩展和可查询的存储库。您可以使用多个数据存储来存储来自不同设备或位置的消息。或者,您可以根据管道配置和要求筛选消息数据。

按照以下步骤创建数据存储。

创建数据存储
  1. https://console.aws.amazon.com/iotanalytics/准备数据Amazon IoT Analytics部分中,选择查看数据存储

  2. 数据存储页面上,选择创建数据存储

  3. 指定数据存储详细信息页面上,输入有关数据存储的基本信息。

    1. 对于数据存储 ID,输入唯一的数据存储 ID。您在创建此 ID 后无法更改它。

    2. (可选)对于 Tags添加新标签),将一个或多个自定义标签(键值对)添加到数据存储中。标签可帮助您标识您创建的资源Amazon IoT Analytics。

    3. 选择 Next(下一步)

  4. 配置存储类型页面上,指定如何存储数据。

    1. 对于存储类型,选择服务管理存储

    2. 配置要将已处理的数据保留多长时间,请选择 “无限期”。

    3. 选择 Next(下一步)

  5. Amazon IoT Analytics数据存储支持 JSON 和 Parquet 文件格式。对于您的数据存储数据格式,请选择 JSON 或 Parque t。有关Amazon IoT Analytics支持的文件类型的更多信息,请参阅文件格式

    选择 Next(下一步)

  6. (可选)Amazon IoT Analytics支持数据存储中的自定义分区,因此您可以查询已修剪的数据以缩短延迟。有关支持的自定义分区的更多信息,请参阅自定义分区

    选择 Next(下一步)

  7. 查看您的选择,然后选择创建数据存储

  8. 验证您的新数据存储是否出现在数据存储页面上。

创建管道

必须创建管道才能将通道连接到数据存储。基本管道仅指定收集数据的通道并标识消息发送到的数据存储。有关更多信息,请参阅管道活动

在本教程中,您将创建一个仅将通道连接到数据存储的管道。稍后,您可以添加管道活动来处理这些数据。

按照以下步骤创建管道。

创建管道
  1. https://console.aws.amazon.com/iotanalytics/准备数据Amazon IoT Analytics部分中,选择查看管道

    提示

    您也可以从导航窗格中选择 Piles(管道)。

  2. 管道页面上,选择创建管道

  3. 输入有关您的管道的详细信息。

    1. 设置管道 ID 和源中,输入管道名称。

    2. 选择您的管道的来源,您的管道将从该Amazon IoT Analytics频道读取消息。

    3. 指定管道的输出,即存储已处理消息数据的数据存储。

    4. (可选)对于 Tags(标签),将一个或多个自定义标签(键值对)添加到管道中。

    5. 推断消息属性页面上,输入属性名称和示例值,从列表中选择数据类型,然后选择添加属性

    6. 根据需要重复上一步获取任意数量的属性,然后选择 “下一步”。

    7. 你现在不会添加任何管道活动。在 “丰富、转换和筛选消息” 页面上,选择 “下一步”。

  4. 查看您的选择,然后选择创建管道

  5. 验证您的新管道是否显示在 “管道” 页面上。

注意

您创建Amazon IoT Analytics资源是为了让它们可以执行以下操作:

  • 使用通道收集未经处理的原始 IoT 设备消息数据。

  • 将您的 IoT 设备消息数据存储在数据存储中。

  • 使用管道清理、筛选、转换和丰富您的数据。

接下来,您将创建Amazon IoT Analytics SQL 数据集以发现有关您的 IoT 设备的有用见解。

创建数据集

注意

数据集通常是数据集合,这些数据可能以表格形式组织,也可能不以表格形式组织。相比之下,通过对数据存储中的数据应用 SQL 查询来Amazon IoT Analytics创建数据集。

现在,您有了一个通道,可以将原始消息数据路由到管道,该管道将数据存储在可以查询的数据存储中。要查询数据,您需要创建一个数据集。数据集包含用于查询数据存储的 SQL 语句和表达式,以及在您指定的日期和时间重复查询的可选计划。您可以使用类似于 Amazon CloudWatch 计划表达式的表达式来创建可选计划。

创建数据集
  1. https://console.aws.amazon.com/iotanalytics/左侧导航窗格中,选择数据集

  2. 创建数据集页面上,选择创建 SQL

  3. 指定数据集详细信息页面上,指定数据集的详细信息。

    1. 输入数据集的名称。

    2. 对于数据存储源,选择用于标识您之前创建的数据存储的唯一 ID。

    3. (可选)对于 Tags(标签),将一个或多个自定义标签(键值对)添加到数据集中。

  4. 使用 SQL 表达式查询您的数据和回答分析问题。您的查询结果存储在此数据集中。

    1. 作者查询字段中,输入使用通配符显示最多五行数据的 SQL 查询。

      SELECT * FROM my_data_store LIMIT 5

      有关中支持的 SQL 功能的更多信息Amazon IoT Analytics,请参阅中的 SQL 表达式Amazon IoT Analytics

    2. 您可以选择测试查询来验证您的输入是否正确,并在查询后的表格中显示结果。

      注意
      • 在本教程中,此时您的数据存储库可能为空。在空数据存储上运行 SQL 查询不会返回结果,因此您可能只能看见__dt

      • 必须小心地将 SQL 查询限制在合理的大小,这样它就不会长时间运行,因为 Athena 限制了正在运行的查询的最大数量。因此,必须小心地将 SQL 查询限制为合理的大小。

        我们建议在测试期间在查询中使用LIMIT子句。测试成功后,您可以删除此子句。

  5. (可选)当您使用指定时间范围内的数据创建数据集内容时,某些数据可能无法及时到达以进行处理。要允许延迟,可以指定偏移量或增量。有关更多信息,请参阅通过亚马逊 CloudWatch 活动获取延迟数据通知

    此时您不会配置数据选择筛选器。在配置数据选择筛选器页面上,选择下一步

  6. (可选)您可以安排此查询定期运行以刷新数据集。可以随时创建和编辑数据集计划。

    此时您不会计划重复运行查询,因此在 “设置查询时间表” 页面上,选择 “下一步”。

  7. Amazon IoT Analytics将创建此数据集内容的版本并存储您在指定时段内的分析结果。我们建议 90 天,但您可以选择设置自定义保留政策。您也可以限制数据集内容的存储版本数量。

    您可以将默认数据集保留期设置为 “无限期”,并禁用版本控制。在配置分析结果页面上,选择下一步

  8. (可选)您可以将数据集结果的交付规则配置到特定目的地,例如Amazon IoT Events。

    您不会在本教程的其他地方提供结果,因此在配置数据集内容交付规则页面上,选择下一步

  9. 查看您的选择,然后选择创建数据集

  10. 验证您的新数据集是否显示在 “数据集” 页面上。

通过以下方式发送消息数据Amazon IoT

如果您有一个将数据路由到管道的通道,该管道将数据存储在可以查询的数据存储中,那么您就可以向其中发送IoT 设备数据了Amazon IoT Analytics。您可以使用以下选项Amazon IoT Analytics将数据发送到:

  • 使用Amazon IoT消息代理。

  • 使用Amazon IoT Analytics BatchPutMessageAPI 操作。

在以下步骤中,您将从Amazon IoT Core控制台中的Amazon IoT消息代理发送消息数据,Amazon IoT Analytics以便接收这些数据。

注意

在为消息创建主题名称时,请注意以下几点:

  • 主题名称不区分大小写。命名exampleEXAMPLE位于相同负载中的字段被视为重复字段。

  • 主题名称不能以$角色开头。以开头的主题$是保留主题,只能由使用Amazon IoT。

  • 不要在您的主题名称中包含个人身份信息,因为这些信息可能出现在未加密的通信和报告中。

  • Amazon IoT Core无法在Amazon账户或Amazon区域之间发送消息。

使用以下方式发送消息数据Amazon IoT
  1. 登录到 Amazon IoT 控制台

  2. 在导航窗格中,选择 “测试”,然后选择 MQTT 测试客户端

  3. MQTT 测试客户端页面上,选择发布到主题

  4. 主题名称中,输入一个与您在创建频道时输入的主题过滤器相匹配的名称。此示例使用 update/environment/dht1

  5. 对于消息负载,输入以下 JSON 内容。

    { "thingid": "dht1", "temperature": 26, "humidity": 29, "datetime": "2018-01-26T07:06:01" }
  6. (可选)选择 “添加配置” 以获取其他消息协议选项。

  7. 选择 Publish

    这会发布一条由您的频道捕获的消息。然后,您的管道将消息路由到您的数据存储。

检查Amazon IoT消息的进度

您可以按照以下步骤检查是否正在将消息收录到您的频道中。

检查Amazon IoT消息的进度
  1. 登录 https://console.aws.amazon.com/iotanalytics/

  2. 在导航窗格中,选择 Channes (通),然后选择您之前创建的频道名称。

  3. 频道的详细信息页面上,向下滚动到 “监控” 部分,然后调整显示的时间范围(1 h 3h 12h 1d 3d 1w)。选择诸如 1w 之类的值来查看上周的数据。

您可以使用类似的功能来监视管道活动运行时和流水线详细信息页面上的错误。在本教程中,您没有将活动指定为管道的一部分,因此您不应看到任何运行时错误。

监视管道活动
  1. 在导航窗格中,选择 Piples(管道),然后选择您之前创建的管道的名称。

  2. 管道的详细信息页面上,向下滚动到监控部分,然后通过选择一个时间范围指标(1 h 3h 12h 1d 3d 1w)来调整显示的时间范围。

访问查询结果

数据集内容是包含查询结果的文件,采用 CSV 格式。

  1. https://console.aws.amazon.com/iotanalytics/ 的左侧导航窗格中,选择 Datases (数据集)。

  2. 数据集页面上,选择您之前创建的数据集的名称。

  3. 在数据集信息页面的右上角,选择 Run(立即运行)。

  4. 要检查数据集是否准备就绪,请在数据集下方查看一条类似于 “您已成功开始查询数据集” 的消息。数据集内容选项卡包含查询结果并显示成功

  5. 要预览成功查询的结果,请在数据集内容选项卡上选择查询名称。要查看或保存包含查询结果的 CSV 文件,请选择下载

    注意

    Amazon IoT Analytics可以将 Jupyter 笔记本的 HTML 部分嵌入到数据集内容页面上。有关更多信息,请参阅可视化Amazon IoT Analytics使用控制台进行数据

了解您的数据

您可以通过多种方式存储、分析和可视化数据。

Amazon Simple Storage Service

您可以将数据集内容发送到 A mazon S3 存储桶,从而实现与现有数据湖的集成或从内部应用程序和可视化工具进行访问。查看CreateDataset操作contentDeliveryRules::destination::s3DestinationConfiguration中的字段。

Amazon IoT Events

您可以将数据集内容作为输入发送到Amazon IoT Events,该服务使您了解如何监控设备和进程中的更改,并在发生此类事件时启动其他措施。

为此,请使用CreateDataset操作创建数据集并在字段中指定Amazon IoT Events输入contentDeliveryRules :: destination :: iotEventsDestinationConfiguration :: inputName。您还必须指定角色roleArn的,该角色会授予运行Amazon IoT Analytics权限iotevents:BatchPutMessage。无论何时创建数据集内容,都会Amazon IoT Analytics将每个数据集内容条目作为消息发送到指定的Amazon IoT Events输入。例如,如果您的数据集包含以下内容。

"what","who","dt" "overflow","sensor01","2019-09-16 09:04:00.000" "overflow","sensor02","2019-09-16 09:07:00.000" "underflow","sensor01","2019-09-16 11:09:00.000" ...

然后Amazon IoT Analytics发送包含如下字段的消息。

{ "what": "overflow", "who": "sensor01", "dt": "2019-09-16 09:04:00.000" }
{ "what": "overflow", "who": "sensor02", "dt": "2019-09-16 09:07:00.000" }

您需要创建一个能识别您感兴趣的字段(,中的一个或多个dt)的Amazon IoT Eventswhat输入,并创建一个在事件中使用这些输入字段来触发操作或设置内部变量的Amazon IoT Events探测器模型。who

Jupyter Notebook

Jupyter Notebook 是一种开源解决方案,用于使用脚本语言进行临时数据探索和高级分析。您可以深入研究,应用更复杂的分析,并对IoT 设备数据使用机器学习方法,例如 k-means 聚类和回归模型进行预测。

Amazon IoT Analytics使用亚马逊 SageMaker 笔记本电脑实例托管其 Jupyter 笔记本电脑。在创建笔记本实例之前,您必须在Amazon IoT Analytics和亚马逊之间创建关系 SageMaker:

  1. 导航到SageMaker 控制台并创建笔记本实例:

    1. 填写详细信息,然后选择 Create a new role (创建新角色)。记录角色 ARN。

    2. 创建笔记本实例。

  2. 转到 I AM 控制台并修改 SageMaker角色:

    1. 打开角色。它应该具有一个托管策略。

    2. 选择 “添加内联策略”,然后为 “服务” 选择 IoTAnalytics。选择 “选择操作”,然后GetDatasetContent在搜索框中输入并选择它。请选择查看策略

    3. 查看策略的准确性,输入名称,然后选择创建策略

这为新创建的角色提供了从中读取数据集的权限Amazon IoT Analytics。

  1. 返回 https://console.aws.amazon.com/iotanalytics/,然后在左侧导航窗格中选择笔记本。在 “笔记本” 页面上,选择 “创建笔记本”。

  2. 选择模板页面上,选择 IoTA 空白模板

  3. 在 “设置笔记本” 页面上,输入笔记本的名称。在选择数据集源中,选择并选择您之前创建的数据集。在选择笔记本实例中,选择您在其中创建的笔记本实例 SageMaker。

  4. 查看您的选择后,选择 “创建笔记本”。

  5. 笔记本页面上,您的笔记本实例将在亚马逊 SageMaker控制台中打开。

笔记本模板

Amazon IoT Analytics笔记本模板包含Amazon创作的机器学习模型和可视化效果,可帮助您开始Amazon IoT Analytics使用用例。您可以使用这些笔记本模板了解更多信息,也可以重复使用它们以适应您的IoT 设备数据并立即带来价值。

您可以在Amazon IoT Analytics控制台中找到以下笔记本模板:

  • 检测情境异常 — 使用泊松指数加权移动平均线 (PEWMA) 模型在测得的风速中应用情境异常检测。

  • 太阳能电池板产量预测 — 应用分段、季节和线性时间序列模型来预测太阳能电池板的产量。

  • 喷气发动机的预测性维护 — 应用多变量长短期记忆 (LSTM) 神经网络和逻辑回归来预测喷气发动机故障。

  • 智能家居客户细分 — 应用k-means和主成分分析(PCA)分析来检测智能家居使用数据中的不同客户群。

  • 智能城市拥堵预测 — 应用LSTM预测城市高速公路的利用率。

  • 智慧城市空气质量预测 — 应用LSTM预测市中心的颗粒物污染。