匯出碳足跡資料

您可以將碳足跡資料匯出至 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. 按一下「資料匯出」,開啟側邊面板來設定匯出作業。
  4. 選取要匯出碳足跡資料的專案,然後按一下「建立匯出作業」
  5. 在 BigQuery 資料移轉服務頁面中:
    1. 確認「來源」已設為「碳足跡匯出」Google Cloud 。
    2. 在「Transfer config name」(轉移設定名稱) 中,輸入顯示名稱。
    3. 在「目的地設定」中,按一下「資料集 ID」欄位,然後選取「建立新的資料集」,建立新的 BigQuery 資料集來存放匯出的資料表;或者選取現有的 BigQuery 資料集。
    4. 在「資料來源詳細資料」中,確認要匯出的 Cloud Billing 帳戶 ID。視需要以半形逗號分隔清單的形式,新增其他帳戶 ID。所有帳單帳戶 ID 的格式都應為 XXXXXX-XXXXXX-XXXXXX
  6. 按一下 [儲存]
  7. 在存取權要求視窗中,按一下「允許」

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

後續步驟