导出您的碳足迹
您可以将碳足迹数据导出到 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 碳足迹导出”。
- 在转移配置名称中,输入显示名称。
- 在目标设置中,点击数据集 ID 字段,然后选择创建新数据集(如果您想创建新的 BigQuery 数据集来托管导出的表);或者选择现有 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