导出您的碳足迹
您可以将碳足迹数据导出到 BigQuery 以执行数据分析或创建自定义信息中心和报告。
碳足迹导出功能捕获的是与所选结算帐号使用涵盖的 Google Cloud 服务相关的温室气体排放估算值。
配置导出后,您需要为用于存储和查询导出数据的 BigQuery 资源付费。
准备工作
如需创建碳足迹导出,我们建议您拥有以下 IAM 角色:
- 对要导出到的 Google Cloud 项目的 Project Owner 或 Project Editor。
- 对要导出碳足迹的结算帐号的 Carbon Footprint Viewer 或 Billing Account Viewer。
更确切地说,您必须对 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 月的历史数据。
控制台
请按照以下步骤启动导出:
- 转到碳足迹
- 从结算帐号菜单中选择要导出的 Cloud Billing 帐号。
- 点击导出以启用 BigQuery Data Transfer Service 并打开 BigQuery Data Transfer Service 页面。
- 在 BigQuery Data Transfer Service 页面上:
- 确保来源设置为“Google Cloud 碳足迹导出”。
- 在转移配置名称中,输入显示名。
- 如果要创建新的 BigQuery 数据集来托管导出的表,请在目标位置中,点击数据集 ID 字段,然后选择创建新数据集;或者,选择现有的 BigQuery 数据集。
- 在数据源详细信息中,确认要导出的 Cloud Billing 帐号 ID。(可选)添加其他帐号 ID,并采用英文逗号分隔的列表形式。所有结算帐号 ID 都应采用
XXXXXX-XXXXXX-XXXXXX
格式。
- 点击保存。
- 在访问权限请求窗口中,点击允许。
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 月的历史数据,请按照以下步骤安排数据回填。
控制台
按照以下步骤安排数据回填:
- 转到您刚刚创建的转移作业的详细信息。
- 点击 Schedule Backfill。
- 选择针对某一日期范围内运行。
- 选择 2021 年 2 月 15 日作为开始日期,选择当天作为结束日期。请注意,2021 年 2 月 15 日的导出数据包含 2021 年 1 月的数据,因此是可请求的最早月份。
- 点击确定以请求回填数据。
系统将为所选范围创建数据回填,并将历史月度数据导出到目标数据集。
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 文件。
- 转到 BigQuery
- 在探索器面板中,展开项目和数据集,然后选择包含导出的碳足迹数据的表。
- 点击查询。
- 输入查询以返回您要导出的数据。 有关示例,请参阅下文。
- 查询运行后,在查询结果下,点击保存结果。
- 选择所需的格式,然后点击保存。
通过以下查询,您可以保存导出表的全部内容:
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