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 准备数据”的屏幕截图。
    提示

    也可以从导航窗格中选择 通道

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

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

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

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

    3. 选择 Next(下一步)。

  4. Amazon IoT Analytics 将未处理的原始 IoT 设备数据存储在 Amazon Simple Storage Service (Amazon S3) 存储桶中。您可以选择自己的 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. (可选)对于 标签,选择添加新标签将一个或多个自定义标签(键值对)添加到数据存储中。标签有助于标识您为 Amazon IoT Analytics 创建的资源。

    3. 选择 Next(下一步)。

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

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

    2. 对于配置要保留已处理数据的时间,选择无限期

    3. 选择 Next(下一步)。

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

    选择 Next(下一步)。

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

    选择 Next(下一步)。

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

  8. 确认您的新数据存储显示在数据存储页面上。

创建管道

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

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

执行以下步骤创建管道。

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

    提示

    也可以从导航窗格中选择 管道

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

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

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

    2. 选择管道的源,这是管道将从中读取消息的 Amazon IoT Analytics 通道。

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

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

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

    6. 对所需数量的属性重复上一步操作,然后选择下一步

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

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

  5. 确认您的新管道显示在管道页面上。

注意

创建 Amazon IoT Analytics 资源是为了执行以下操作:

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

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

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

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

创建数据集

注意

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

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

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

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

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

    1. 输入数据集的名称。

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

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

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

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

      SELECT * FROM my_data_store LIMIT 5

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

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

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

      • 您必须小心地将 SQL 查询限制为合理的大小以免长时间运行,因为 Athena 限制了运行的最大查询数。因此,必须小心地将 SQL 查询限制为合理的大小。

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

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

    此时无需配置数据选择筛选条件。在配置数据选择筛选条件页面上,选择下一步

  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 BatchPutMessage API 操作。

在以下步骤中,您将从 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. 在导航窗格中,选择通道,然后选择您此前创建的通道名称。

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

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

监控管道活动
  1. 在导航窗格中,选择管道,然后选择先前所创建管道的名称。

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

访问查询结果

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

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

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

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

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

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

    注意

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

探索您的数据

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

Amazon Simple Storage Service

您可以将数据集内容发送到 Amazon S3 存储桶,从而允许与现有数据湖集成在一起,或者从内部应用程序和可视化工具中进行访问。请参阅 CreateDataset 操作中的字段 contentDeliveryRules::destination::s3DestinationConfiguration

Amazon IoT Events

您可以将数据集内容作为输入发送到 Amazon IoT Events,您可以使用该服务监控设备或进程故障或操作更改,并在发生此类事件时发起其他操作。

为此,请使用 CreateDataset 操作创建数据集,并在字段 contentDeliveryRules :: destination :: iotEventsDestinationConfiguration :: inputName 中指定 Amazon IoT Events 输入。您还必须指定角色的 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" }

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

Jupyter Notebook

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

Amazon IoT Analytics 使用 Amazon SageMaker 笔记本实例来托管其 Jupyter Notebook。在创建笔记本实例之前,您必须在 Amazon IoT Analytics 和 Amazon SageMaker 之间建立关系:

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

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

    2. 创建笔记本实例。

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

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

    2. 选择添加内联策略,对于服务,选择 iotAnalytics。选择 选择操作,然后在搜索框中键入 GetDatasetContent并选择它。请选择查看策略

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

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

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

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

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

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

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

笔记本模板

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

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

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

  • 太阳能电池板输出预测 – 应用分段、季节性、线性时间序列模型来预测太阳能电池板的输出。

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

  • 智能家居客户细分 – 应用 K 均值和主成分分析法 (PCA) 分析,从智能家居使用数据中发现不同客户群。

  • 智能城市拥堵预测 – 应用 LSTM 预测城市主干道的利用率。

  • 智能城市空气质量预测 – 应用 LSTM 预测城市中心区的颗粒物污染情况。