將 Cloud Billing 資料匯出至 BigQuery

利用 Cloud Billing 將資料匯出至 BigQuery,您全天都能將詳細的 Google Cloud 帳單資料 (例如用量、預估費用和定價資料) 自動匯出至 BigQuery 資料集。接著,您就能在 BigQuery 中存取 Cloud Billing 資料來執行詳細的分析。您也可以使用這種匯出方法,將資料匯出至 JSON 檔案。

時機非常重要。如要取得更完整的Google Cloud 帳單資料以供分析,建議您在建立 Cloud Billing 帳戶時,一併啟用 Cloud Billing 資料匯出至 BigQuery 的功能。

請參閱限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素。

後續步驟

無論您經營的是數十億美元的企業業務,還是管理小型家庭預算,有效管理及回報成本都是財務管理的重要環節。如要根據資料做出Google Cloud 成本和用量決策,首先要收集相關資料,

請參閱本節中的指南,瞭解如何執行下列工作:

設定將 Cloud Billing 資料匯出至 BigQuery

如要開始收集 Cloud Billing 資料,您必須針對所需的每種帳單匯出類型,啟用將 Cloud Billing 資料匯出至 BigQuery 的功能。

您可以啟用下列類型的 Cloud Billing 資料匯出功能:

匯出類型 說明
採用 FOCUS 格式呈現使用費 (預先發布版)

FOCUS 使用費用匯出功能會將詳細使用費用資料,以 FinOps 開放成本與使用規格 (FOCUS) 標準正規化,並匯出至無法變更的 BigQuery 資料集。FOCUS 是一項開放規格,為技術帳單資料產生器定義明確的規定,確保產生一致的成本和用量資料集。FOCUS 匯出資料中的欄位通常會對應至 詳細用量費用匯出資料中的欄位。

瞭解如何 啟用 FOCUS 使用費帳單匯出功能。

標準使用費用

標準使用費用資料匯出包含標準 Cloud Billing 帳戶費用使用資訊,例如帳戶 ID、月結單日期、服務、SKU、專案、標籤、位置、費用、用量、抵免額、調整項和幣別。

使用標準用量費用匯出功能,分析費用資料的廣泛趨勢。

瞭解如何 啟用標準用量費用帳單匯出功能。

使用費用詳細資料

詳細用量費用資料匯出功能會提供 Cloud Billing 帳戶的詳細費用用量資訊。詳細匯出結構定義包含標準使用費用資料中的所有內容,以及資源層級費用資料,例如產生服務用量的虛擬機器或 SSD。

使用詳細用量費用匯出功能,分析資源層級的費用,並找出可能增加費用的特定資源。

詳細匯出內容包含 多項服務的精細費用資訊。如要查看 GKE 相關資訊,您也必須 在詳細匯出中啟用費用分配功能。 如需更多建議和限制,請參閱 詳細用量費用資料的結構定義。

瞭解如何 啟用詳細用量費用帳單匯出功能。

價格資料

價格資料匯出包含 Cloud Billing 帳戶價格資訊,例如帳單帳戶 ID、服務、SKU、產品、地理位置中繼資料、價格單位、幣別、匯總和層級。

瞭解如何 啟用定價匯出功能。

您也可以透過下列方式取得 Cloud Billing 帳戶的價格資料:

匯出承諾使用折扣 (預先發布版) 對於購買 CUD 的客戶, 「已承諾用量折扣 (CUD) 中繼資料匯出」功能會每天將 CUD 中繼資料匯出至 BigQuery 表格,您可以將這些資料與其他帳單資料匯出內容合併,以便更妥善地管理及回報 CUD。CUD 中繼資料包含帳單帳戶 ID、產品 ID、 計費模式 ID、承諾金額單位和值等資訊。
(僅限經銷商) 重新結算資料匯出

只有經銷商可以 匯出重新結算資料,其中包含所有經銷商帳單帳戶的詳細 Cloud Billing 帳戶費用用量資訊,並附上合作夥伴專屬屬性。

使用重新結算資料匯出功能,管理 Google Cloud 客戶的帳單作業。進一步瞭解 重新定價設定,這項功能可產生向終端客戶收取的費用。

使用 BigQuery 儲存及分析帳單用量和費用資料時,會產生 BigQuery 用量費用。詳情請參閱「BigQuery 使用費用」一文。

請參閱限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素。

瞭解 Cloud Billing 資料表

啟用 Cloud Billing 資料匯出至 BigQuery 的功能後,系統會在 BigQuery 資料集中自動建立 Cloud Billing 資料表。

如要瞭解匯出內容的資料結構定義,請參閱參考資訊,瞭解匯出至 BigQuery 資料集各個資料表的 Cloud Billing 資料內容。

尋找 Cloud Billing 資料的查詢範例

針對不同類型的匯出帳單資料,我們提供查詢範例。

採用 FOCUS 格式的使用費

如要查詢 FOCUS 帳單資料,請參閱 FinOps 基礎網站提供的 FOCUS 查詢範例。

標準使用費用、詳細使用費用和定價匯出

如需使用 SQL 查詢 Cloud Billing 資料 (標準使用費用、詳細使用費用和定價匯出) 的提示和指引,請參閱查詢範例。

在範例查詢頁面中,您會看到各種 SQL 範例,包括:

BigQuery 使用費用

使用 BigQuery 儲存及分析帳單用量和費用資料時,會產生 BigQuery 用量費用。BigQuery 的主要費用是儲存空間 (用於儲存 BigQuery 中的資料) 和運算資源 (用於查詢處理)。

BigQuery 費用取決於您儲存及查詢的資料量。一般來說,儲存空間費用低於查詢費用。

如要進一步瞭解 BigQuery 費用,請參閱「估算及控管 BigQuery 費用」。

儲存費用

儲存費用包括將資料載入 BigQuery 的費用,並取決於您的儲存空間帳單模型。

  • 將資料載入指定資料集是免費的,這項操作會利用 BigQuery 的共用資源集區,分批載入資料。
  • 許多分區資料表作業都是免費的,包括將資料載入分區、複製分區,以及從分區匯出資料。雖然這些作業免費,但仍須遵守 BigQuery 的配額和限制。
  • FOCUS 匯出資料是不可變更的匯出資料,使用 Google 付費的連結資料集。最近兩年的 FOCUS 使用費資料不會產生儲存空間費用,除非您將 FOCUS 資料複製並儲存至您擁有的長期儲存空間資料表。

如要進一步瞭解如何盡可能降低 BigQuery 儲存空間費用,請參閱「控管儲存空間費用」。您也可以將儲存空間調整至最佳狀態,藉此提高查詢效能。

查詢費用

分析資料時,系統會針對每次執行查詢時讀取的所有資料收費。執行查詢可能會導致費用暴增。

如要進一步瞭解在 BigQuery 中執行查詢時,如何運用最佳做法盡可能提高成本效益,請參閱「最佳化查詢運算」。

如需詳細價格,請參閱「BigQuery 定價」。

限制

將 Cloud Billing 資料匯出至 BigQuery 時,須遵守下列限制。

Cloud Billing 資料匯出的資料表結構

任何 Cloud Billing 資料匯出的資料表結構定義都可能變更。

如果資料表結構定義變更 (例如為 Cloud Billing 資料匯出新增 BigQuery 資料表結構定義的欄位),任何直接參照匯出資料欄的查詢都可能會失敗。為解決這個問題,建議您建立 BigQuery 檢視區塊,查詢匯出的資料表,並以偏好的結構呈現資訊。

接著,您可以調整提供報表和資訊主頁資料的查詢,從檢視畫面而非匯出的表格中擷取資料。使用檢視區塊,即可將查詢和資訊主頁中使用的資料結構標準化。

您建立的檢視區塊應將資料正規化,讓所有相關資料表向查詢呈現相同的結構定義。這樣一來,您就不會受到日後結構定義變更的影響,並可在資料結構定義變更時,修改檢視畫面的基礎查詢。

FOCUS 匯出和資料保留

以 Google 提供的 FOCUS 格式匯出至 BigQuery 的帳單資料適用 2 年存留時間 (TTL) 政策,超過兩年的資料會自動從 BigQuery 資料集提供的 FOCUS 匯出資料表中刪除。如要保留 FOCUS 帳單資料記錄超過兩年,請將 FOCUS 資料複製到您擁有的長期儲存資料表。

BigQuery 資料集位置和資料可用性

可搭配 Cloud Billing 資料使用的 BigQuery 資料集位置:

BigQuery 資料集會設定為使用位置,可以是多區域位置 (歐盟或美國),也可以是區域位置。資料集位置是在建立時設定,資料集建立後,即無法變更位置。

Cloud Billing 資料匯出功能支援所有多區域位置 (歐盟或美國),但僅支援部分區域位置。設定 Cloud Billing 匯出設定時,如果建立或選取的資料集設定為使用不支援的地區位置,嘗試儲存匯出設定時,系統會顯示「Invalid dataset region」(資料集地區無效) 錯誤。

下表列出多區域位置和區域位置,這些位置支援用於包含 Cloud Billing 資料的 BigQuery 資料集。

美洲 亞太地區 歐洲 中東

多區域:美國

區域:

  • northamerica-northeast1 (蒙特婁)
  • southamerica-east1 (聖保羅)
  • us-central1 (愛荷華州)
  • us-east1 (南卡羅來納州)
  • us-east4 (北維吉尼亞州)
  • us-west1 (奧勒岡州)
  • us-west2 (洛杉磯)
  • us-west3 (鹽湖城)
  • us-west4 (拉斯維加斯)

區域:

  • asia-east1 (台灣)
  • asia-east2 (香港)
  • asia-northeast1 (東京)
  • asia-northeast2 (大阪)
  • asia-northeast3 (首爾)
  • asia-south1 (孟買)
  • asia-southeast1 (新加坡)
  • asia-southeast2 (雅加達)
  • australia-southeast1 (雪梨)

多區域:歐盟

區域:

  • europe-central2 (華沙)
  • europe-north1 (芬蘭)
  • europe-west1 (比利時)
  • europe-west2 (倫敦)
  • europe-west3 (法蘭克福)
  • europe-west4 (荷蘭)
  • europe-west6 (蘇黎世)

區域:

  • me-central1 (杜哈)
  • me-central2 (達曼)
  • me-west1 (特拉維夫)

地點和資料可用性:

  • 對於包含 FOCUS 使用費用資料、標準使用費用資料或詳細使用費用資料的 BigQuery 資料集,您在資料集上設定的位置類型會影響時間,也就是系統將 Google Cloud 帳單資料匯出至資料集的時間:

    • 如果將資料集設定為使用多區域位置 (歐盟或美國),資料集會納入 Google Cloud 從上個月初到首次啟用匯出功能期間產生的帳單資料,除非您重新啟用匯出功能。也就是說,系統會Google Cloud 溯及過往的帳單資料,加入當月和上個月的資料。初始回填匯出資料時,您可能需要等待最多五天,系統才會完成回溯 Cloud Billing 資料的匯出作業,之後您才能開始查看目前的用量資料。
    • 如果資料集設定為使用支援的區域位置,則FOCUS 使用費用資料、標準使用費用資料和詳細使用費用資料只會反映您啟用 Cloud Billing 匯出功能當日起的帳單資料。 Google Cloud 也就是說,系統 Google Cloud 不會溯及過往的帳單資料,因此您不會看到啟用匯出功能之前的 Cloud Billing 資料。

    • 詳情請參閱「資料可用性」。

  • 包含定價資料的 BigQuery 資料集只會收集您設定 Cloud Billing 匯出功能當日起的 Google Cloud 帳單資料。也就是說,Google Cloud 系統不會溯及過往的定價資料,因此您不會看到啟用匯出功能之前的 Cloud Billing 定價資料。詳情請參閱「資料可用性」。

停用、重新啟用或編輯匯出設定

如果您停用、重新啟用或編輯匯出設定,更新匯出帳單資料的儲存專案或資料集,系統不會將先前匯出的帳單資料回填至新資料集。如要納入切換至其他專案或資料集前匯出的帳單資訊,請務必手動將新資料集與先前的資料集合併。詳情請參閱「加入作業」。

資料集加密

BigQuery 資料集會設定為使用靜態資料加密,方法是在建立資料集時設定加密金鑰選項,也就是 Google-owned and Google-managed encryption key或客戶自行管理的加密金鑰 (CMEK)。建立資料集後,您可以編輯加密設定。

如果您已啟用 Cloud Billing 資料匯出至 BigQuery 的功能,且資料集已設定為使用Google-managed encryption key,則可以更新資料集及其資料表,改用 CMEK。如要更新資料集及其資料表,請完成下列步驟:

  1. 設定資料集預設金鑰。 設定預設金鑰可確保資料集中建立的新資料表會自動受到 CMEK 保護。
  2. 使用 bq 指令列工具,在資料集中為每個現有資料表啟用 CMEK。變更資料集預設金鑰後,系統不會自動重新加密現有資料表。

瞭解如何為 BigQuery 資料表啟用 CMEK。

CMEK 組織政策

您可以透過 CMEK 機構政策,強制 BigQuery 資源 (包括帳單匯出) 使用 CMEK,或規定 CMEK 必須位於核准的專案中。不過,強制執行 CMEK 組織政策可能會產生下列預料之外的影響:

  • 匯出程序可能無法處理先前已有的資料集: 啟用新的機構政策限制後,系統不會將限制套用至現有資料集。也就是說,即使不再允許使用,您還是可以保留現有的資料集。不過,下次嘗試匯出至該資料集時,如果因為新實施的機構政策而無法建立新表格,匯出程序就會失敗。

    為避免發生這種情況,請在更新組織政策時,主動檢查現有的帳單匯出設定,並視需要更新資料集設定,確保符合 restrictNonCmekServices 和 restrictCmekCryptoKeyProjects 限制。

  • 機構政策執行不一致: 建立空白資料集時,系統不會強制執行機構政策。也就是說,您可以強制執行 restrictNonCmekServices 限制,要求 BigQuery 資源使用 CMEK 進行加密,但隨後仍可成功建立設定為使用 Google-owned and Google-managed encryption keys的 BigQuery 資料集。不過,由於機構政策不允許您在 BigQuery 強制執行 restrictNonCmekServices 限制時,建立未受 CMEK 保護的資料表,因此使用該資料集的帳單匯出作業會失敗。

    如要解決這個問題,請更新資料集加密設定,設定符合 restrictNonCmekServices 和 restrictCmekCryptoKeyProjects 限制的資料集預設金鑰。

資料列層級安全性

如要在包含匯出資料的資料表上使用 BigQuery 資料列層級安全性,您必須使用 BigQuery TRUE 篩選器,授予 Cloud Billing 匯出服務帳戶 billing-export-bigquery@system.gserviceaccount.com 完整存取資料表的權限。下列指令會授予 Cloud Billing 服務帳戶存取權:

CREATE ROW ACCESS POLICY cloud_billing_export_policy
ON `__project_id__.__dataset_id__.__table_id__`
GRANT TO ('serviceAccount:billing-export-bigquery@system.gserviceaccount.com')
FILTER USING (TRUE);

採用 FOCUS 格式或詳細的費用資料和 GKE

匯出 FOCUS 使用費用資料或使用費用詳細資料時,匯出內容會自動納入 Compute Engine 和其他服務的資源層級資訊。不過,如要查看 Google Kubernetes Engine (GKE) 資料,並在 FOCUS 或詳細資料匯出中查看 GKE 叢集費用明細,您也必須啟用 GKE 的費用分配功能。

資源層級標記

資源層級標記最多可能需要一小時,才會傳播至 BigQuery 匯出作業。如果在一小時內新增或移除標記,或是資源存在時間不到一小時,可能不會顯示在匯出內容中。

在標準使用費用匯出和詳細使用費用匯出中,有數個資源提供資源層級標記。