使用 Amazon Athena 分析导出的数据 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon Athena 分析导出的数据

在 Amazon S3 中保存资产属性数据后,您可以使用多种 Amazon 服务来生成报告或分析和查询您的数据:

您可以在 Amazon S3 中找到可以与您的数据交互的其他 Amazon 服务,这些服务列在 “分析” 下Amazon Web Services Management Console

注意

堆栈会创建一个 Amazon Glue 数据库来格式化资产属性数据。您无法查询此数据库中的资产数据。按照本节中的步骤创建可以查询 Amazon Glue 的数据库。

在本教程中,您将学习如何配置使用 Amazon Athena 的先决条件,以及如何使用 Athena 对导出的资产数据运行 SQL 查询。 Amazon IoT SiteWise 要使用 Athena 查询数据,必须先使用您的资产数据填充 Amazon Glue Data Catalog 到。数据目录包含数据库和表格,Athena 可以访问数据目录中的数据。您可以创建一个 Amazon Glue Crawler,使用导出的资产数据定期更新数据目录。

配置爬网程序以填充 Amazon Glue Data Catalog

Amazon Glue 抓取工具会抓取数据存储以填充中的表。 Amazon Glue Data Catalog在此过程中,您将为包含导出资产数据的 S3 存储桶创建并运行 Amazon Glue 爬虫。爬网程序会创建一个用于资产属性更新的表和一个用于资产元数据的表。然后,您可以使用 Athena 对这些表执行 SQL 查询。有关更多信息,请参阅 Amazon Glue 开发人员指南中的填充 Amazon Glue Data Catalog定义爬网程序

创建 Amazon Glue 爬虫
  1. 导航到 Amazon Glue 控制台

  2. 在导航窗格中,选择 爬网程序

  3. 选择 添加爬网程序

  4. 添加爬网程序 页面上,执行以下操作:

    1. 输入爬网程序的名称(例如,IoTSiteWiseDataCrawler),然后选择 下一步

    2. 对于 爬网程序源类型,选择 数据存储,然后选择 下一步

    3. 添加数据存储 页面上,执行以下操作:

      1. 对于 选择数据存储,请选择 S3

      2. 包括路径 中,输入 s3://DOC-EXAMPLE-BUCKET1 以将资产数据存储桶添加为数据存储。将 DOC-EXAMPLE-BUCKET1 替换为您在创建堆栈时选择的存储桶名称。

      3. 选择下一步

        
                      Amazon Glue Crawler “添加数据存储” 屏幕截图。
    4. 添加另一个数据存储 页面上,选择 ,然后选择 下一步

    5. 选择 IAM 角色页面上,执行以下操作:

      1. 要创建允许 Amazon Glue 访问 S3 存储桶的新服务角色,请选择创建 IAM 角色

      2. 输入角色名称的后缀,例如 IoTSiteWiseDataCrawler

      3. 选择下一步

    6. 对于 频率,选择 每小时,然后选择 下一步。爬网程序每次运行时都会使用新数据更新表,因此您可以选择适合您使用案例的任何频率。

    7. 配置爬网程序的输出 页面上,执行以下操作:

      1. 选择 “添加数据库”,为您的资产数据创建 Amazon Glue 数据库。

      2. 输入数据库的名称,例如 iot_sitewise_asset_database

      3. 选择 创建

      4. 选择下一步

    8. 检查爬网程序详细信息,然后选择 完成

      
                  Amazon Glue 爬虫 “查看爬虫详情” 屏幕截图。

默认情况下,新爬网程序不会立即运行。您必须手动运行它,或等待它按照配置的时间表运行。

运行爬网程序
  1. 爬网程序 页面上,选中新爬网程序的复选框,然后选择 运行爬网程序

    
              Amazon Glue “Crawlers” 屏幕截图,突出显示了 “Run Crawler”。
  2. 等到爬网程序完成并且状态为 就绪

    运行爬网程序可能需要几分钟时间,并且其状态会自动更新。

  3. 在导航窗格中,选择

    您应该看到两个新表:asset_metadataasset_property_updates

使用 Athena 查询数据

Athena 会在中自动发现您的资产数据表。 Amazon Glue Data Catalog要对这些表的交集执行查询,您可以创建一个视图,即逻辑数据表。有关更多信息,请参阅 Amazon Athena 用户指南中的使用视图

创建结合了资产属性数据和元数据的视图后,您可以运行查询,输出附加了资产和属性名称的属性值。有关更多信息,请参阅 Amazon Athena 用户指南中的使用 Amazon Athena 运行 SQL 查询

使用 Athena 查询资产数据
  1. 导航到 Athena 控制台

    如果出现 入门 页面,请选择 开始”。

  2. 如果您是第一次使用 Athena,请完成以下步骤来配置 S3 存储桶以获得查询结果。Athena 将您的查询结果保存在此存储桶中。

    重要

    使用与资产数据存储桶不同的存储桶,以便您之前创建的爬网程序不会抓取查询结果。我们建议您创建仅用于 Athena 查询结果的存储桶。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的如何创建 S3 存储桶?

    1. 选择 设置

    2. 查询结果位置中,输入 Athena 查询结果的 S3 存储桶。存储桶必须以 / 结尾。

      
                  Athena“设置”屏幕截图,突出显示“查询结果位置”。
    3. 选择保存

  3. 左侧面板包含要查询的数据源。执行以下操作:

    1. 对于数据源AwsDataCatalog请选择使用 Amazon Glue Data Catalog。

    2. 对于数据库,选择您使用 Crawler 创建 Amazon Glue 的数据库。

      
                  Athena“查询编辑器”屏幕截图,突出显示“数据库”。

    您应该看到两个表:asset_metadataasset_property_updates

  4. 要根据资产属性数据和元数据的组合创建视图,请输入以下查询,然后选择 运行查询

    CREATE OR REPLACE VIEW iot_sitewise_asset_data AS SELECT "from_unixtime"("time_in_seconds" + ("offset_in_nanos" / 1000000000)) "timestamp", "metadata"."asset_name", "metadata"."asset_property_name", "data"."asset_property_value", "metadata"."asset_property_unit", "metadata"."asset_property_alias" FROM ( "iot_sitewise_asset_database".asset_property_updates data INNER JOIN "iot_sitewise_asset_database".asset_metadata metadata ON ( ("data"."asset_id" = "metadata"."asset_id") AND ("data"."asset_property_id" = "metadata"."asset_property_id") ) );

    此查询连接与资产 ID 和属性 ID 相关的资产属性数据和元数据表以创建视图。您可以多次运行此查询,如果视图已存在,它将替换现有视图。

  5. 选择 + 图标以添加新查询。

  6. 要查看资产数据示例,请输入以下查询,然后选择 Run query (运行查询)。将时间戳替换为存储桶包含数据的时间间隔。

    SELECT * FROM "iot_sitewise_asset_database"."iot_sitewise_asset_data" WHERE "timestamp" BETWEEN TIMESTAMP '2020-05-14 12:00:00.000' AND TIMESTAMP '2020-05-14 13:00:00.000' ORDER BY "timestamp" DESC LIMIT 50;

    此查询在两个时间戳之间输出多达 50 个数据点,先显示最近的条目。

    您的查询输出可能与以下结果类似。

    
              Athena“查询编辑器”屏幕截图,突出显示“运行查询”。

现在,您可以运行对您的 Amazon IoT SiteWise 应用程序有用的查询。有关更多信息,请参阅 Amazon Athena 用户指南中的 Amazon Athena SQL参考