匯出碳足跡資料

您可以將碳足跡資料匯出至 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 月至今的歷來資料。

主控台

如要啟動匯出程序,請按照下列步驟操作:

  1. 前往碳足跡頁面
  2. 從「帳單帳戶」選單中,選取要匯出的 Cloud Billing 帳戶。
  3. 按一下「匯出」,啟用 BigQuery 資料移轉服務並開啟 BigQuery 資料移轉服務頁面。
  4. 在 BigQuery 資料移轉服務頁面中:
    1. 確認「來源」已設為「碳足跡匯出」Google Cloud 。
    2. 在「Transfer config name」(轉移設定名稱) 中,輸入顯示名稱。
    3. 在「目的地設定」中,按一下「資料集 ID」欄位,然後選取「建立新的資料集」,建立新的 BigQuery 資料集來存放匯出的資料表;或者選取現有的 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 是上一步驟中建立的轉移作業 ID。 例如:projects/0000000000000/locations/us/transferConfigs/00000000-0000-0000-0000-000000000000

資料匯出後,您可以使用 BigQuery 查看及查詢資料。進一步瞭解資料結構定義

如要與貴機構的其他使用者共用匯出資料,請在先前選取的專案中,授予他們 BigQuery 使用者 IAM 角色。或者,您也可以使用 BigQuery 資料檢視者身分與存取權管理 (IAM) 角色,在資料集或資料表層級授予精細的存取權。

管理碳足跡匯出作業

您可以透過 BigQuery 資料移轉服務管理碳足跡匯出作業。進一步瞭解如何處理轉移作業

匯出為 Google 試算表或 CSV

設定將碳足跡資料匯出至 BigQuery,並完成排定的匯出作業後,您就可以將資料從 BigQuery 匯出至 Google 試算表或 CSV 檔案。

  1. 前往 BigQuery
  2. 在「Explorer」面板中,展開專案和資料集,然後選取包含匯出碳足跡資料的資料表。
  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

後續步驟