导出您的碳足迹
您可以将碳足迹数据导出到 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