瞭解 BigQuery 中的 Cloud Billing 資料表

本文提供參考資訊,說明匯出至 BigQuery 各資料表的 Cloud Billing 資料架構。

帳單資料表

啟用 Cloud Billing 匯出至 BigQuery 後不久,系統就會在 BigQuery 資料集中自動建立帳單資料表。

  • FOCUS 用量費用表 (預覽版) – Google 提供名為 gcp_billing_immutable_<BILLING_ACCOUNT_ID>_<Location> 的不可變更 BigQuery 資料集, 以及名為 gcp_billing_export_focus_<BILLING_ACCOUNT_ID> 的 FOCUS 資料表。
  • 標準用量費用表:在 BigQuery 資料集中,這個資料表名為 gcp_billing_export_v1_<BILLING_ACCOUNT_ID>。
  • 使用費用詳細資料表:包含標準使用費用表的所有資料欄位,以及提供資源層級費用資料的額外欄位,例如產生服務用量的虛擬機器或 SSD。在 BigQuery 資料集中,這個資料表名為 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>。
  • 定價資料表:在 BigQuery 資料集中,這個資料表名稱為 cloud_pricing_export。
  • 承諾使用折扣 (CUD) 中繼資料 (預先發布版) – 這包括 CUD 中繼資料,例如帳單帳戶 ID、產品 ID、計費模式 ID、承諾金額單位和值等。在 BigQuery 資料集中,這個資料表名稱為 cud_subscriptions_export。

資料載入頻率

匯出 FOCUS、標準和詳細使用費

  • 首次啟用「FOCUS」、「標準」或「詳細使用費用」匯出至 BigQuery 功能時,可能需要等待數小時,才能開始在 BigQuery 資料集中看到Google Cloud 費用資料。資料會依時間順序匯出。如果設定匯出資料時包含當月和上個月的追溯資料,匯出的資料最多可能需要五天,才能完全與目前的用量資料同步。
  • Google Cloud 服務會按照不同間隔,將用量和費用資料回報給 Cloud Billing 程序。
  • Cloud Billing 會定期將用量和費用資料匯出至 BigQuery 資料集 (匯出至 BigQuery 的作業不保證傳送或延遲)。
  • 由於用量回報頻率因 Google Cloud 服務而異,因此您可能無法立即查看所有 Google Cloud 最近使用的服務的 Cloud Billing 用量和費用資料。

定價和 CUD 中繼資料匯出

  • 首次啟用定價資料匯出至 BigQuery 功能時,您可能需要等待最多 48 小時,才會開始看到 Google Cloud 定價資料。
  • 啟用價格匯出功能後,系統每天會將適用於 Cloud Billing 帳戶的價格資料匯出至 BigQuery。

資料可用性

  • 如果客戶首次啟用 FOCUS、標準或詳細使用費用資料匯出功能:

    • 如果您將 BigQuery 資料集設定為使用多區域位置 (歐盟或美國),系統會從上個月初開始,追溯匯出 Cloud Billing 資料。舉例來說,如果您在 9 月 23 日啟用「FOCUS 使用費用」、「標準使用費用」或「詳細使用費用」資料匯出功能,匯出作業就會包含 8 月 1 日起的資料。

      我們會依時間順序匯出資料,一次匯出一天,因此系統會先填入上個月第一天的資料。初始回填匯出資料時,系統可能需要最多五天才能完成回溯 Cloud Billing 資料的匯出作業,因此您可能要過一段時間,才能看到最新的使用資料。

    • 如果您將 BigQuery 資料集設定為使用支援的區域位置,系統就會從您啟用 Cloud Billing 匯出功能當天起,提供 FOCUS 使用費用、標準使用費用或詳細使用費用資料。也就是說,系統 Google Cloud 不會溯及過往的帳單資料,因此您不會看到啟用匯出功能之前的 Cloud Billing 資料。

    • 如果客戶啟用、停用,然後重新啟用「FOCUS 使用費用」、「標準使用費用」或「詳細使用費用」資料匯出功能,則在明確停用匯出功能的期間,可能無法取得 Cloud Billing 資料。

  • 如果您啟用定價資料匯出功能,BigQuery 資料集只會反映您首次啟用定價匯出功能當日起的 Cloud Billing 資料。系統不會溯及過往的 Cloud Billing 定價資料,因此您不會看到啟用匯出功能之前的定價資料。

  • BigQuery 資料集中的資料會反映資源在記錄用量時的狀態。如果您變更資源 (例如為專案新增標籤,或變更專案的階層 (這會變更 project.ancestors)),這些變更只會顯示在日後匯出的用量資料中。先前匯出的記錄不會變更。

  • 如果您刪除任何匯出的資料 (例如 BigQuery 匯出記錄),系統將無法補回已刪除的記錄。

  • 如果您編輯匯出設定,更新儲存匯出帳單資料的專案或資料集,系統不會自動將先前資料集的資料補充至新資料集;新的 BigQuery 資料集只會反映您變更匯出設定當日起的 Cloud Billing 資料。如要納入完整的帳單資料匯出記錄,您必須手動將新資料集與先前的資料集合併。詳情請參閱「加入作業」。

  • BigQuery 載入作業符合 ACID 標準,因此在資料載入 BigQuery Cloud Billing 匯出資料集時,如果您查詢該資料集,不會遇到部分載入的資料。

  • 請參閱其他限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素,例如已啟用客戶自行管理的加密金鑰 (CMEK) 的資料集。

限制

將 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 匯出作業。如果在一小時內新增或移除標記,或是資源存在時間不到一小時,可能不會顯示在匯出內容中。

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