匯出碳足跡資料
您可以將碳足跡資料匯出至 BigQuery,以便執行資料分析,或建立自訂資訊主頁和報表。
碳足跡匯出資料會擷取所選帳單帳戶因使用列入計算的服務 Google Cloud 而預估產生的溫室氣體排放量。
設定匯出作業後,系統會針對用於儲存及查詢匯出資料的 BigQuery 資源收費。
事前準備
如要建立碳足跡匯出作業,建議您擁有下列 IAM 角色:
- 專案擁有者或專案編輯者 在要匯出的 Google Cloud 專案中。
- 要匯出碳排放量資料的帳單帳戶,必須具備「碳排放量檢視者」或「帳單帳戶檢視者」角色。
具體來說,您必須具備 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 資料移轉服務 API 定義連入規則。
輸入政策規則:
- 在「來源」部分將來源設為「允許所有來源」。
- 授予身分「
els-da-carbon@gcp-carbon-footprint-exports.iam.gserviceaccount.com
」權限。
設定將碳排放量資料匯出至 BigQuery
碳足跡資料會透過 BigQuery 資料移轉服務匯出。資料移轉作業會在您選擇的 BigQuery 資料集中,建立名為 carbon_footprint
的每月分區資料表。
碳足跡報表會在次月 15 日匯出上個月的資料。舉例來說,2022 年 9 月的碳排放量資料會在 2022 年 10 月 15 日匯出。
建立碳足跡轉移設定後,系統會在每個月的 15 號自動匯出未來的碳報告。您也可以執行回填作業,要求系統提供 2021 年 1 月至今的歷來資料。
主控台
如要啟動匯出程序,請按照下列步驟操作:
- 前往碳足跡頁面
- 從「帳單帳戶」選單中,選取要匯出的 Cloud Billing 帳戶。
- 按一下「匯出」,啟用 BigQuery 資料移轉服務並開啟 BigQuery 資料移轉服務頁面。
- 在 BigQuery 資料移轉服務頁面中:
- 確認「來源」已設為「碳足跡匯出」Google Cloud 。
- 在「Transfer config name」(轉移設定名稱) 中,輸入顯示名稱。
- 在「目的地設定」中,按一下「資料集 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 是上一步驟中建立的轉移作業 ID。
例如:
projects/0000000000000/locations/us/transferConfigs/00000000-0000-0000-0000-000000000000
。
資料匯出後,您可以使用 BigQuery 查看及查詢資料。進一步瞭解資料結構定義。
如要與貴機構的其他使用者共用匯出資料,請在先前選取的專案中,授予他們 BigQuery 使用者 IAM 角色。或者,您也可以使用 BigQuery 資料檢視者身分與存取權管理 (IAM) 角色,在資料集或資料表層級授予精細的存取權。
管理碳足跡匯出作業
您可以透過 BigQuery 資料移轉服務管理碳足跡匯出作業。進一步瞭解如何處理轉移作業。
匯出為 Google 試算表或 CSV
設定將碳足跡資料匯出至 BigQuery,並完成排定的匯出作業後,您就可以將資料從 BigQuery 匯出至 Google 試算表或 CSV 檔案。
- 前往 BigQuery
- 在「Explorer」面板中,展開專案和資料集,然後選取包含匯出碳足跡資料的資料表。
- 點選「查詢」。
- 輸入查詢,傳回要匯出的資料。 請參閱下方的範例。
- 查詢執行完畢後,請在「查詢結果」下方按一下「儲存結果」。
- 選取所需格式,然後按一下「儲存」。
您可以使用下列查詢儲存匯出資料表的完整內容:
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