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