导出您的碳足迹

您可以将碳足迹数据导出到 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. 点击导出以启用 BigQuery Data Transfer Service 并打开 BigQuery Data Transfer Service 页面。
  4. 在 BigQuery Data Transfer Service 页面上:
    1. 确保来源设置为“Google Cloud 碳足迹导出”。
    2. 转移配置名称中,输入显示名。
    3. 如果要创建新的 BigQuery 数据集来托管导出的表,请在目标位置中,点击数据集 ID 字段,然后选择创建新数据集;或者,选择现有的 BigQuery 数据集。
    4. 数据源详细信息中,确认要导出的 Cloud Billing 帐号 ID。(可选)添加其他帐号 ID,并采用英文逗号分隔的列表形式。所有结算帐号 ID 都应采用 XXXXXX-XXXXXX-XXXXXX 格式。
  5. 点击保存
  6. 在访问权限请求窗口中,点击允许

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 是转移作业配置的显示名。例如:“公司碳报告”。
  • DATASET 是要用作导出的目标数据集的 google_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

后续步骤