本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Athena 分析导出的数据
在 Amazon S3 中保存资产属性数据后,您可以使用多种 Amazon 服务来生成报告或分析和查询您的数据:
-
使用 Amazon Athena 对您的数据运行 SQL 查询。
-
使用 Amazon EMR 执行大数据分析。
-
使用亚马逊 OpenSearch 服务搜索和分析您的数据。
您可以在 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 爬虫
-
导航到 Amazon Glue 控制台
。 -
在导航窗格中,选择 爬网程序。
-
选择 添加爬网程序。
-
在 添加爬网程序 页面上,执行以下操作:
-
输入爬网程序的名称(例如,
IoTSiteWiseDataCrawler
),然后选择 下一步。 -
对于 爬网程序源类型,选择 数据存储,然后选择 下一步。
-
在 添加数据存储 页面上,执行以下操作:
-
对于 选择数据存储,请选择 S3。
-
在 包括路径 中,输入
s3://
以将资产数据存储桶添加为数据存储。将DOC-EXAMPLE-BUCKET1
DOC-EXAMPLE-BUCKET1
替换为您在创建堆栈时选择的存储桶名称。 -
选择下一步。
-
-
在 添加另一个数据存储 页面上,选择 否,然后选择 下一步。
-
在选择 IAM 角色页面上,执行以下操作:
-
要创建允许 Amazon Glue 访问 S3 存储桶的新服务角色,请选择创建 IAM 角色。
-
输入角色名称的后缀,例如
IoTSiteWiseDataCrawler
。 -
选择下一步。
-
-
对于 频率,选择 每小时,然后选择 下一步。爬网程序每次运行时都会使用新数据更新表,因此您可以选择适合您使用案例的任何频率。
-
在 配置爬网程序的输出 页面上,执行以下操作:
-
选择 “添加数据库”,为您的资产数据创建 Amazon Glue 数据库。
-
输入数据库的名称,例如
iot_sitewise_asset_database
。 -
选择 创建。
-
选择下一步。
-
-
检查爬网程序详细信息,然后选择 完成。
-
默认情况下,新爬网程序不会立即运行。您必须手动运行它,或等待它按照配置的时间表运行。
运行爬网程序
-
在 爬网程序 页面上,选中新爬网程序的复选框,然后选择 运行爬网程序。
-
等到爬网程序完成并且状态为 就绪。
运行爬网程序可能需要几分钟时间,并且其状态会自动更新。
-
在导航窗格中,选择表。
您应该看到两个新表:asset_metadata 和 asset_property_updates。
使用 Athena 查询数据
Athena 会在中自动发现您的资产数据表。 Amazon Glue Data Catalog要对这些表的交集执行查询,您可以创建一个视图,即逻辑数据表。有关更多信息,请参阅 Amazon Athena 用户指南中的使用视图。
创建结合了资产属性数据和元数据的视图后,您可以运行查询,输出附加了资产和属性名称的属性值。有关更多信息,请参阅 Amazon Athena 用户指南中的使用 Amazon Athena 运行 SQL 查询。
使用 Athena 查询资产数据
-
导航到 Athena 控制台
。 如果出现 入门 页面,请选择 开始”。
-
如果您是第一次使用 Athena,请完成以下步骤来配置 S3 存储桶以获得查询结果。Athena 将您的查询结果保存在此存储桶中。
重要
使用与资产数据存储桶不同的存储桶,以便您之前创建的爬网程序不会抓取查询结果。我们建议您创建仅用于 Athena 查询结果的存储桶。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的如何创建 S3 存储桶?
-
选择 设置。
-
在查询结果位置中,输入 Athena 查询结果的 S3 存储桶。存储桶必须以
/
结尾。 -
选择保存。
-
-
左侧面板包含要查询的数据源。执行以下操作:
-
对于数据源,AwsDataCatalog请选择使用 Amazon Glue Data Catalog。
-
对于数据库,选择您使用 Crawler 创建 Amazon Glue 的数据库。
您应该看到两个表:asset_metadata 和 asset_property_updates。
-
-
要根据资产属性数据和元数据的组合创建视图,请输入以下查询,然后选择 运行查询。
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 相关的资产属性数据和元数据表以创建视图。您可以多次运行此查询,如果视图已存在,它将替换现有视图。
-
选择 + 图标以添加新查询。
-
要查看资产数据示例,请输入以下查询,然后选择 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 个数据点,先显示最近的条目。
您的查询输出可能与以下结果类似。
现在,您可以运行对您的 Amazon IoT SiteWise 应用程序有用的查询。有关更多信息,请参阅 Amazon Athena 用户指南中的 Amazon Athena SQL参考。