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

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

使用 Amazon Athena 分析导出的数据

当您的资产属性数据位于 Amazon S3 中之后,您可以使用多个数据。Amazon用于生成报告或分析和查询数据的服务:

您可以找到其他Amazon可以与 Amazon S3 中数据交互的服务,请参阅。分析中的Amazon Web Services Management Console.

注意

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

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

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

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

创建 Amazon Glue 爬网程序
  1. 导航到 Amazon Glue 控制台

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

  3. 选择 Add crawler (添加爬网程序)

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

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

    2. 对于 Crawler source type (爬网程序源类型),选择 Data stores (数据存储),然后选择 Next (下一步)

    3. Add a data store (添加数据存储) 页面上,执行以下操作:

      1. 对于 Choose a data store (选择数据存储),请选择 S3

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

      3. 请选择 Next (下一步)

        
                      Amazon Glue爬网程序”添加数据存储“屏幕截图。
    4. Add another data store (添加另一个数据存储) 页面上,选择 No (否),然后选择 Next (下一步)

    5. 在存储库的选择 IAM 角色页面中,执行以下操作:

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

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

      3. 请选择 Next (下一步)

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

    7. Configure the crawler's output (配置爬网程序的输出) 页面上,执行以下操作:

      1. 选择 Add database (添加数据库) 为资产数据创建 Amazon Glue 数据库。

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

      3. 请选择创建

      4. 请选择 Next (下一步)

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

      
                  Amazon Glue爬网程序“Review crawler details (查看爬网程序详细信息)”屏幕截图。

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

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

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

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

  3. 在导航窗格中,选择

    您应该看到两个新表:asset_metadataasset_property_updates

使用 Athena 查询数据

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

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

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

    如果出现 Getting started (入门) 页面,请选择 Get Started (开始)”。

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

    重要

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

    1. 选择 Settings

    2. InQuery result location (查询结果位置)中,输入 S3 存储桶以获得 Athena 查询结果。存储桶必须以 / 结尾。

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

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

    1. 适用于数据源,选择AwsData目录要使用的Amazon Glue Data Catalog.

    2. 对于 Database (数据库),选择使用爬网程序创建的 Amazon Glue 数据库。

      
                  Athena “Query Editor (查询编辑器)” 屏幕截图,突出显示 “Data

    您应该看到两个表:asset_metadataasset_property_updates

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

    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 “Query Editor (查询编辑器)” 屏幕截图,突出显示 “Run

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