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

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

入门 Amazon IoT Analytics (控制台)

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

注意
  • 如果您在以下教程中输入大写字符,则 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. 选择下一步

  4. Amazon IoT Analytics 将未经处理的原始物联网设备数据存储在亚马逊简单存储服务 (Amazon S3) 存储桶中。您可以选择自己的 Amazon S3 存储桶,您可以访问和管理该存储桶, Amazon IoT Analytics 也可以为您管理 Amazon S3 存储桶。

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

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

    3. 选择下一步

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

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

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

    3. 选择下一步

  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. 选择 下一步

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

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

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

    3. 选择 下一步

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

    选择下一步

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

    选择 下一步

  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 数据集,以发现有关您的物联网设备的有用见解。

创建数据集

注意

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

您现在具有一个通道以将原始消息数据路由到管道,该管道将数据存储在数据存储以对其进行查询。要查询数据,您需要创建一个数据集。数据集包含用于查询数据存储的 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

      有关中支持的 SQL 功能的更多信息 Amazon IoT Analytics,请参见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. 选择 发布

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

查看 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 笔记本的 HTML 部分嵌入到数据集内容页面上。有关更多信息,请参阅 使用控制台可视化 Amazon IoT Analytics 数据

探索您的数据

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

Amazon Simple Storage Service

您可以将数据集内容发送到 Amazon 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 Events 输入 whatwho,并创建一个 Amazon IoT Events 检测器模型,该模型在事件中使用这些输入字段来触发操作或设置内部变量。

Jupyter Notebook

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

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

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

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

    2. 创建笔记本实例。

  2. 前往 I AM 控制台并修改 SageMaker角色:

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

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

    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 均值和主成分分析法 (PCA) 分析,从智能家居使用数据中发现不同客户群。

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

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