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

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

处理数据导出

在以下部分中,您将找到有关处理数据导出的信息。

配置 Amazon Athena

与成本和使用情况报告(CUR)不一样,Data Exports 无法提供 SQL 文件来设置 Athena 以查询导出。您需要为 Data Exports 使用 CloudFormation 模板(参见选项 1),或手动配置 Athena(参见选项 2)。

(选项 1)使用 CloudFormation 模板:要找到 CloudFormation 模板和用于设置带 Data Exports 功能的 Athena 的说明,请参阅 Cloud Intelligence Dashboards Framework 中的 Data Exports

(选项 2)使用 Amazon Glue 爬网程序为 Athena 构建表和分区:在为 Athena 创建 CUR 或碳排放数据导出时,我们建议使用 Apache Parquet 文件格式;这种格式提供更好的压缩和列式存储,这有助于实现更小和更便宜的 Athena 查询。需要使用覆盖传送首选项,以便每个月度分区始终仅包含每个文件的一个副本,并且当您使用 Amazon Athena 执行查询时,不会出现重复的行项目。

我们还建议将 Amazon Glue 与 Glue 爬网程序结合使用,将您的数据加载到 Athena。

使用 Amazon Glue 爬网程序为 Athena 构建表和分区
  1. 使用以下数据导出传送选项,创建 CUR 2.0 或碳排放的导出:

    • 压缩类型和文件格式:Parquet - Parquet

    • 文件版本控制:覆盖现有数据导出文件

  2. 在 Athena 中,使用带有 Trino SQL 的笔记本编辑器,然后选择创建,通过“Amazon Glue 爬网程序”来创建表。使用 Glue 爬网程序工作流,将 Glue 爬网程序指向 s3://<bucket-name>/<prefix>/<export-name>/data 文件夹,在其中运行,以便将指定导出的所有已传送分区自动加载到 Athena。

  3. Glue 爬网程序完成后,可以使用 Athena 对 Glue 爬网程序创建的表编写查询。

配置 Amazon Redshift

Amazon Redshift 是一种云数据仓库,可以通过预置容量或无服务器模式进行访问。Amazon Redshift 提供快速的查询性能,用于处理 Data Exports 中的数据。

目前,Data Exports 不像成本和使用情况报告 (CUR) 那样提供 SQL 文件来设置 Redshift 以查询导出。但是,您仍然可以手动设置 Redshift 来查询导出。我们建议您使用适用于 Redshift 的 gzip/csv 压缩和文件格式。

有关设置 Redshift 的信息,请参阅《Amazon Redshift 入门指南》。

将 CUR 2.0 导出数据加载到 Amazon Athena 或 Amazon Redshift 等数据分析工具后,您即可对其进行处理,以获得成本和使用情况详情。AmazonWell-Architected Labs 提供了一个可用于处理 CUR 的 CUR 查询库。有关更多信息,请参阅 Amazon CUR 查询库

请注意以下两条有关 SQL 查询的信息:

  • Well-Architected Labs SQL 查询不适用于数据导出查询字段,因为 Data Exports 不支持聚合以及这些查询中使用的一些其他 SQL 语法。

  • 仅当您尚未使用默认名称重命名列时,Well-Architected Labs SQL 查询才有效。根据查询的不同,您可能需要使用点运算符将某些 product 列作为单独的列进行查询。有关更多信息,请参阅数据查询 – SQL 查询和表配置

用于处理碳排放数据导出的推荐 SQL 查询

要根据 payer_account_id 获取碳排放总量,请执行以下操作:

SELECT payer_account_id, SUM(total_mbm_emissions_value) AS total_emissions FROM "ccft-data-exports"."ccft-data-exports-data" -- change to your table name GROUP BY payer_account_id ORDER BY total_emissions DESC;

要根据 payer_account_id 和 product_code 获取碳排放总量,请执行以下操作:

SELECT payer_account_id, product_code, SUM(total_mbm_emissions_value) AS total_emissions FROM "ccft-data-exports"."ccft-data-exports-data"-- change to your table name GROUP BY payer_account_id, product_code ORDER BY total_emissions DESC;

要根据 payer_account_id 和 region_code 获取碳排放总量,请执行以下操作:

SELECT payer_account_id, region_code, SUM(total_mbm_emissions_value) AS total_emissions FROM "ccft-data-exports"."ccft-data-exports-data" -- change to your table name GROUP BY payer_account_id, region_code ORDER BY total_emissions DESC;