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

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

处理数据导出

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

配置 Amazon Athena

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

(选项 1)使用 CloudFormation 模板:要查找 CloudFormation 模板和设置带数据导出功能的 Athena 的说明,请参阅云智能仪表板框架中的数据导出

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

我们还建议将 Glue 与 Amazon Glue 爬虫一起使用,将您的数据加载到 Athena 中。

使用 Glue 爬虫为 Athena 搭建表和分区 Amazon
  1. 使用以下数据导出交付选项创建 CUR 2.0 或碳排放的导出:

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

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

  2. 在 Athena 中,使用带有 Trino SQL 的笔记本编辑器,然后选择 “创建” 来创建带有 “Glue crawler”Amazon 的表。使用 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)后,您可以对其进行处理以获得成本和使用情况见解。 Amazon Well-Architected Labs 提供了一个可用于处理 CUR 的 CUR 查询库。有关更多信息,请参阅 Amazon CUR 查询库

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

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

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

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

要获取每个付款人账户_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;

要获取每个付款人账户编号和每个产品代码的碳排放总量,请执行以下操作:

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;

要获取每个付款人账户编号和每个区域代码的碳排放总量,请执行以下操作:

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;