导出您的碳足迹

您可以将碳足迹数据导出到 BigQuery,以执行数据分析或创建自定义信息中心和报告。

碳足迹导出会捕获 所选结算账号使用 涵盖的 Google Cloud 服务 相关的预估温室气体排放量。

配置导出后,您需要为用于存储和查询导出数据的 BigQuery资源付费。

准备工作

如需创建碳足迹导出,我们建议您拥有以下 IAM 角色:

更准确地说,您必须对 项目 Google Cloud 拥有以下 IAM 权限:

  • resourcemanager.projects.update
  • serviceusage.services.enable
  • bigquery.transfers.update

并且对结算账号拥有以下 IAM 权限:

  • billing.accounts.getCarbonInformation

如果使用 VPC Service Controls

如果您的组织使用 VPC Service Controls,则需要为 BigQuery API 和 BigQuery Data Transfer Service API 定义入站规则。

对于您的入站政策规则:

  • 在“来源”部分中,将来源设置为“允许所有来源”。
  • 向身份 els-da-carbon@gcp-carbon-footprint-exports.iam.gserviceaccount.com 授予权限。

将碳足迹导出配置到 BigQuery

碳足迹数据通过 BigQuery Data Transfer Service导出。 数据转移会在您选择的 BigQuery 数据集中创建一个 名为 carbon_footprint的按月分区表。

碳足迹导出会在每个月 15 日导出上个月的数据。例如,2022 年 9 月的碳数据将于 2022 年 10 月 15 日导出。

创建碳足迹转移配置后,系统会在每个月 15 日自动导出未来的碳报告。您还可以运行回填,以请求 2021 年 1 月之前的历史数据。

控制台

如需启动导出,请按以下步骤操作:

  1. 前往碳足迹
  2. 结算账号 菜单中选择要从中导出的 Cloud Billing 帐号。
  3. 点击数据导出 ,打开用于配置导出的侧边栏。
  4. 为碳足迹数据导出选择一个项目,然后点击创建导出
  5. 在 BigQuery Data Transfer Service 页面上:
    1. 确保来源 设置为 "Google Cloud 碳足迹 导出"。
    2. 转移配置名称 中,输入显示名。
    3. 目标设置 中,点击数据集 ID 字段,然后 选择创建新数据集 (如果您想创建新的 BigQuery 数据集来托管导出的表),或者 选择现有的 BigQuery 数据集。
    4. 数据源详细信息中,确认要 导出的 Cloud Billing 帐号 ID。(可选)以英文逗号分隔的列表形式添加其他账号 ID。所有结算账号 ID 的格式都应为 XXXXXX-XXXXXX-XXXXXX
  6. 点击保存
  7. 在访问权限请求窗口中,点击允许

bq

使用 bq mk --transfer_config 命令 启动导出:

bq mk \
--transfer_config \
--target_dataset=DATASET \
--display_name=NAME \
--params='{"billing_accounts":"BILLING_ACCOUNT_IDS"}' \
--data_source='61cede5a-0000-2440-ad42-883d24f8f7b8'

其中:

  • DATASET 是转移配置的目标数据集。
  • NAME 是转移配置的显示名。 例如:“公司碳报告”。
  • BILLING_ACCOUNT_IDS 是您的结算账号 ID 或以逗号分隔的结算账号 ID 列表。例如: XXXXXX-XXXXXX-XXXXXX,XXXXXX-XXXXXX-XXXXXX

Terraform

使用 bigquery_data_transfer_config Terraform 资源 创建导出:

resource "google_bigquery_data_transfer_config" "RESOURCE_NAME" {
  display_name           = "NAME"
  data_source_id         = "61cede5a-0000-2440-ad42-883d24f8f7b8"
  destination_dataset_id = google_bigquery_dataset.DATASET.dataset_id
  params = {
    billing_accounts     = "BILLING_ACCOUNT_IDS"
  }
}

其中:

  • RESOURCE_NAME 是 Terraform 资源的名称。 例如:carbon_export
  • NAME 是转移配置的显示名。 例如:“公司碳报告”。
  • DATASETgoogle_bigquery_dataset Terraform 资源的名称,用作导出的目标数据集。

  • BILLING_ACCOUNT_IDS 是您的结算账号 ID 或以逗号分隔的结算账号 ID 列表。例如: XXXXXX-XXXXXX-XXXXXX,XXXXXX-XXXXXX-XXXXXX

转移配置现已创建完毕,并且会在未来每个月的 15 日导出数据。

转移配置不会 自动导出历史数据。如需请求 2021 年 1 月之前的历史数据,请按照以下步骤安排 数据回填

控制台

如需安排数据回填,请按以下步骤操作:

  1. 前往您刚刚创建的转移作业的详细信息。
  2. 点击 Schedule Backfill
  3. 选择在日期范围内运行
  4. 选择 2021 年 2 月 15 日作为开始日期 ,并选择今天的日期作为结束日期 。请注意,2021 年 2 月 15 日的导出包含 2021 年 1 月的数据,因此是可请求的最早月份。
  5. 点击确定 以请求数据回填。

系统将针对所选范围创建数据回填,并将历史月度数据导出到目标数据集。

bq

使用 bq mk --transfer_run 命令 创建回填:

bq mk \
--transfer_run \
--start_time=START_TIME \
--end_time=END_TIME \
CONFIG

其中:

  • START_TIME 是一个 时间戳 ,用于指定要回填的范围的开始时间。 例如:2021-02-15T00:00:00Z。 请注意,2021 年 2 月 15 日是您可以在此处指定的最早日期,因为它包含 2021 年 1 月的数据。
  • END_TIME 是一个 时间戳 ,用于指定要回填的范围的结束时间。 例如:2022-09-15T00:00:00Z。 您可以使用当前日期。
  • TRANSFER_CONFIG 是在上一步中创建的转移作业的标识符。例如:projects/0000000000000/locations/us/transferConfigs/00000000-0000-0000-0000-000000000000

导出数据后,您可以使用 BigQuery 来 查看和查询数据。 详细了解数据架构

您可以向组织中的其他人授予 之前选择的项目的 BigQuery User IAM 角色 ,以与他们共享导出的数据。或者,您可以使用 BigQuery Data Viewer IAM 角色在数据集或表级授予精细的 访问权限。

管理碳足迹导出

您可以点击数据导出 并打开侧边栏,查看所有现有的碳足迹导出。

然后,您可以点击 转移作业名称以访问 BigQuery Data Transfer Service ,或点击数据集名称以查看目标数据集,从而管理每个碳足迹导出。详细了解如何 处理转移作业

导出到 Google 表格或 CSV

将碳足迹导出配置到 BigQuery 且定期导出完成后,您可以将该数据从 BigQuery 导出到 Google 表格或 CSV。

  1. 转到 BigQuery
  2. 探索器 面板中,展开您的项目和数据集,然后选择包含导出的碳足迹数据的表。
  3. 点击查询
  4. 输入查询以返回要导出的数据。 有关示例,请参阅下文。
  5. 查询运行后,在查询结果下,点击保存结果
  6. 选择所需的格式,然后点击保存

借助以下查询,您可以保存导出表的全部内容:

SELECT
  usage_month,
  billing_account_id,
  project.number AS project_number,
  project.id AS project_id,
  service.id AS service_id,
  service.description AS service_description,
  location.location AS location,
  location.region AS region,
  carbon_model_version,
  carbon_footprint_kgCO2e.scope1 AS carbon_footprint_scope1,
  carbon_footprint_kgCO2e.scope2.location_based AS carbon_footprint_scope2_location_based,
  carbon_footprint_kgCO2e.scope3 AS carbon_footprint_scope3,
  carbon_footprint_total_kgCO2e.location_based AS carbon_footprint_total_location_based
FROM
  `PROJECT.DATASET.carbon_footprint`
ORDER BY
  usage_month DESC,
  carbon_footprint_total_location_based DESC

接下来怎么做?