本文將逐步說明如何設定將 Cloud Billing 資料匯出至 BigQuery。
如要將 Cloud Billing 資料匯出至 BigQuery,請按照下列步驟操作:
- 建立專案來儲存 Cloud Billing 資料,並為專案啟用計費功能 (如果尚未啟用)。
- 設定專案和 Cloud Billing 帳戶的權限。
- 啟用 BigQuery 資料移轉服務 API (匯出價格資料時必須啟用)。
- 建立 BigQuery 資料集來儲存資料。
- 啟用 Cloud Billing 費用資料和價格資料匯出功能,將資料寫入資料集。
這份文件將詳細說明每個步驟。
關於 Google Cloud 控制台
Google Cloud 控制台 (請參閱說明文件、開啟控制台) 是一個網頁版 UI,可用於佈建、設定、管理和監控使用Google Cloud 產品的系統。您可以使用 Google Cloud 控制台設定及管理 Google Cloud Cloud Billing 資源。
這項工作需要的權限
如要啟用及設定將 Google Cloud 帳單使用費用資料匯出至 BigQuery 資料集的功能,您必須具備下列權限:
- 如要使用 Cloud Billing,您必須在目標 Cloud Billing 帳戶中,具備「帳單帳戶費用管理員」或「帳單帳戶管理員」角色。
- 如要使用 BigQuery,您需要 Google Cloud 專案的 BigQuery 使用者角色,其中包含用於儲存 Cloud Billing 資料的 BigQuery 資料集。
如要啟用及設定匯出 Cloud Billing 價格資料,您必須具備下列權限:
- 如要使用 Cloud Billing,您必須在目標 Cloud Billing 帳戶中具備帳單帳戶管理員角色。
- 如要使用 BigQuery,您需要 Google Cloud 專案的 BigQuery 管理員角色,該專案包含用於儲存 Cloud Billing 價格資料的 BigQuery 資料集。
- 如要存取目標資料集所在的專案,您需要 Google Cloud 權限。
resourcemanager.projects.update
此權限包含在roles/editor
角色中。
您可能也需要其他專案權限。如果您是Google Cloud 機構的成員,則須具備該機構或資料夾的專案建立者角色,才能建立新的專案。如要建立新專案,您必須具備下列權限:
resourcemanager.organizations.get
resourcemanager.projects.create
如要進一步瞭解 Google Cloud 權限,請參閱:
啟用將 Cloud Billing 資料匯出至 BigQuery 的功能
完成本節中的五個步驟,即可啟用將 Cloud Billing 資料匯出至 BigQuery 的功能。
如要快速瞭解如何啟用帳單資料匯出功能,以及在 BigQuery 中執行 Cloud Billing 資料的範例查詢,請參閱這篇帳單資料匯出互動式教學課程。
如果您是經銷商,可以使用 Partner Sales Console,設定經銷商專屬的匯出作業,匯出 Channel Services 帳單資料。如要這麼做,請按照本頁面的步驟 1 到 4 建立專案和 BigQuery 資料集。然後參閱「將 Channel Services 資料匯出至 BigQuery」一文,完成步驟 5 並啟用匯出功能。
1. 選取或建立專案
匯出至 BigQuery 的 Cloud Billing 資料會存放在 BigQuery 資料集中。資料集包含在您指定的Google Cloud 專案中。
建議您建立及使用 Google Cloud 專案,保存 Cloud Billing 帳戶的所有 FinOps 和帳單管理必要元件,包括匯出的 Cloud Billing 資料。進一步瞭解使用以 FinOps 為重點的專案,對帳單管理用途有何好處。
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
進一步瞭解如何建立及管理專案。
2. 確認已啟用計費功能
請務必確認您選取用來存放資料集的 Google Cloud 專案 Google Cloud 已啟用帳單功能,且該專案連結至與您要匯出至 BigQuery 資料集的資料相同的 Cloud Billing 帳戶。
- 瞭解如何確認專案已啟用計費功能
- 瞭解如何查看與 Cloud Billing 帳戶連結的專案
3. 啟用 BigQuery 資料移轉服務 API
如果您打算將 Cloud Billing 定價資料匯出至 BigQuery,請啟用 BigQuery 資料移轉服務 API。如果您不打算匯出 Cloud Billing 定價資料,可以跳至 步驟 4。建立 BigQuery 資料集。
您應在用於存放 BigQuery 資料集的 Google Cloud 專案中啟用 BigQuery 資料移轉服務 API。如果您已按照專案部分的建議操作,這個專案就是您的 FinOps 或帳單管理 Google Cloud 專案。
如要啟用 BigQuery 資料移轉服務 API,請按照下列步驟操作:
登入 Google Cloud 控制台並前往 API 頁面。
選取頁面左上方的專案。您必須在用於存放 BigQuery 資料集的專案中,啟用 BigQuery 資料移轉服務 API。如果您已按照專案部分的建議操作,這個專案就是您的 FinOps 或帳單管理 Google Cloud 專案。
在「BigQuery Data Transfer Service API」頁面上,按一下「啟用」,在所選專案中啟用 API。
如要進一步瞭解如何啟用 API,請參閱服務使用情形說明文件。
4. 建立 BigQuery 資料集
啟用 Cloud Billing 資料匯出至 BigQuery 之前,您必須先建立至少一個 BigQuery 資料集,以便管理匯出的資料。您可以使用同一個資料集,包含標準使用費用資料、詳細使用費用資料和定價資料。
資料集包含在您指定的 Google Cloud 專案中。 資料集是頂層容器,可用於整理及控管資料表和檢視表的存取權。資料表或檢視表必須屬於資料集,因此您需要建立至少一個資料集,才能將資料載入 BigQuery。
如果您使用現有資料集,請查看限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素,例如無法將資料匯出至設為使用客戶管理金鑰加密的資料集,或是無法使用設為不支援區域位置的資料集。
如要建立 BigQuery 資料集,請按照下列步驟操作:
登入 Google Cloud 控制台,然後前往「BigQuery」BigQuery頁面。
在 Google Cloud 控制台頁面頂端的「project」(專案) 下拉式清單 (「My Project」您設定的專案,其中包含資料集。記下專案 ID,後續步驟會用到。
) 中,選取在「Explorer」面板的「pinned projects」(已釘選的專案) 區段中,按一下「
」「your-project-ID」,展開專案並查看現有資料集和已儲存的查詢。在專案 ID 旁邊,按一下「查看動作」選單 (
),然後按一下「建立資料集」。「建立資料集」面板隨即開啟。- 輸入資料集 ID。建議使用跨專案的 ID,例如
all_billing_data
,而非專案專屬 ID。 選取「資料位置」。資料位置會指定儲存資料的多地區或地區。這個資料集內的所有資料表都會儲存於這個位置。
建議選取多區域位置 (歐盟或美國)**。對於標準使用費用和使用費用詳細資料匯出作業,您選取的位置可能會影響上個月的資料是否會追溯新增至資料集。如要進一步瞭解資料集位置和資料可用性,請參閱限制。
Cloud Billing 匯出功能支援所有 多區域位置 (歐盟或美國)。不過,只有部分資料集區域位置支援將 Cloud Billing 資料匯出至 BigQuery。如要進一步瞭解資料集位置,請參閱限制。
建立資料集後,無法變更位置。 進一步瞭解地點。
確認已取消勾選「Enable table expiration」(啟用資料表到期時間) 選項。
如果啟用資料表到期時間並輸入天數,系統就會在資料表建立後經過指定天數時,自動刪除該資料集中的任何新資料表。
在「Advanced options」(進階選項) 區段中,選擇「Encryption」(加密) 設定。 預設選項為 Google-owned and Google-managed encryption key。
如要使用客戶自行管理的加密金鑰 (CMEK) 加密,請選取「客戶自行管理的加密金鑰 (CMEK)」,然後選擇加密金鑰。
如要儲存,請按一下「建立資料集」。
- 輸入資料集 ID。建議使用跨專案的 ID,例如
請參閱限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素。
如果您是經銷商*,可以重複使用剛建立的專案和資料集,啟用經銷商專用的 Channel Services 帳單資料匯出功能。
5. 啟用 Cloud Billing 匯出至 BigQuery 資料集的功能
您可以在 Google Cloud 控制台的 Cloud Billing 專區啟用 Cloud Billing 資料匯出功能。您可以啟用匯出下列類型的資料:
標準使用費用資料 - 包含標準 Cloud Billing 帳戶費用使用資訊,例如帳戶 ID、月結單日期、服務、SKU、專案、標籤、 位置、費用、用量、抵免額、調整項和幣別。
使用標準用量匯出功能,分析費用資料的廣泛趨勢。
詳細用量費用資料:包含詳細的 Cloud Billing 帳戶費用用量資訊。包含標準使用費用資料中的所有項目,以及資源層級的費用資料,例如產生服務用量的虛擬機器或 SSD。
您可以使用詳細資料匯出功能,分析資源層級的費用,並找出可能增加費用的特定資源。
詳細匯出內容會自動納入 Compute Engine 的資源層級資訊。如要在詳細資料匯出內容中查看 Google Kubernetes Engine (GKE) 叢集費用明細,您也必須啟用 GKE 費用分配功能。
定價資料 - 包含 Cloud Billing 帳戶定價資訊,例如帳戶 ID、服務、SKU、產品、地理位置中繼資料、定價單位、幣別、匯總和層級。
如要啟用將 Cloud Billing 用量費用或價格資料匯出至 BigQuery 的功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「帳單匯出」頁面。
在系統提示時選擇要匯出帳單資料的 Cloud Billing 帳戶。系統會開啟所選帳單帳戶的「匯出帳單」頁面。
在「BigQuery 匯出」分頁中,按一下要匯出各類型資料的「編輯設定」。每種資料類型都必須個別設定。
在「專案」清單中,選取您設定的專案,該專案包含 BigQuery 資料集。
您選取的專案會用於將匯出的 Cloud Billing 資料儲存在 BigQuery 資料集中。
匯出標準和詳細使用費用資料時,Cloud Billing 資料會包含所有 Google Cloud 由相同 Cloud Billing 帳戶支付費用的專案使用量和費用資料。
如要匯出定價資料,Cloud Billing 資料只會包含與所選資料集專案連結的 Cloud Billing 帳戶專屬定價資料。
從「資料集 ID」欄位中,選取您設定的資料集,其中會包含匯出的 Cloud Billing 資料。
將所有類型的 Cloud Billing 資料匯出至 BigQuery 時,適用下列事項:
- 如要將資料匯出至 BigQuery,必須使用 BigQuery API。如果所選專案未啟用 BigQuery API,系統會提示您啟用。按一下「啟用 BigQuery API」,啟用該 API。
- 如果所選專案不含任何 BigQuery 資料集,系統會提示您建立資料集。視需要按照這些步驟建立新資料集。
- 如果您使用現有資料集,請查看限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素,例如無法將資料匯出至設定為使用 CMEK 的資料集,或無法使用設定為不支援區域位置的資料集。
如要匯出定價資料,必須使用 BigQuery 資料移轉服務 API 將資料匯出至 BigQuery。如果所選專案未啟用 BigQuery Data Transfer Service API,系統會提示您啟用。如有需要,請按照這些步驟啟用 API。
按一下 [儲存]。
更新要匯出的 Cloud Billing 資料
啟用將 Cloud Billing 資料匯出至 BigQuery 的功能後,您就可以變更各種資料匯出設定,例如:
- 如要變更匯出帳單資料的儲存位置,請編輯匯出設定。
- 如要變更匯出的帳單資料類型,請停用或啟用不同類型。
更新帳單資料的儲存專案或資料集,或停用任何資料匯出作業前,請先參閱限制和資料可用性指南,瞭解這些更新對匯出至 BigQuery 的帳單資料有何影響。
停用特定類型的帳單資料匯出功能
如要停用將某類型的 Cloud Billing 資料匯出至 BigQuery 的功能,請按照下列步驟操作:
- 視情況選取「停用標準匯出功能」、「停用詳細匯出功能」或「停用定價匯出功能」。
- 選取「確認」即可儲存所選項目。
啟用某種帳單資料匯出功能
如要重新啟用已停用的 Cloud Billing 資料匯出至 BigQuery 功能,請參閱「啟用將 Cloud Billing 資料匯出至 BigQuery 的功能」。
變更帳單資料匯出作業的專案或資料集
如要更新儲存匯出帳單資料的專案或資料集,請按照下列步驟操作:
- 找出要更新的匯出作業,然後選取「編輯設定」。
- 在「編輯設定」頁面中,選擇其他專案或資料集。
- 選取「儲存」即可確認更新。
關於資料集權限
將 Cloud Billing 資料匯出至 BigQuery 後,系統會透過服務帳戶管理資料集權限。
在您設定好將 Cloud Billing 資料匯出至 BigQuery 後,Google 會自動新增服務帳戶並指派為所選資料集的擁有者。服務帳戶如下所示:
- 標準和詳細使用費用資料集:
billing-export-bigquery@system.gserviceaccount.com
- 價格資料集:
cloud-account-pricing@cloud-account-pricing.iam.gserviceaccount.com
這些服務帳戶由 Google 擁有及管理,並會提供必要權限,以便在離線程序中建立資料表並寫入 Cloud Billing 記錄。
請參閱限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素。
帳單資料表
啟用 Cloud Billing 匯出至 BigQuery 功能後不久,系統就會在 BigQuery 資料集中自動建立帳單資料表。如要進一步瞭解這些 BigQuery 資料表和資料表結構定義,請參閱「瞭解 BigQuery 中自動建立的資料表」。
資料載入頻率
- 首次啟用「標準」或「詳細使用費用」匯出至 BigQuery 功能時,可能需要幾小時,您才會開始看到Google Cloud 費用資料傳播至 BigQuery 資料集。系統會按照時間先後順序匯出資料,如果匯出設定包含當月和上個月的追溯資料,匯出資料最多可能需要五天,才能完全與目前的用量資料同步。
- 首次啟用「價格」匯出至 BigQuery 功能後,您可能要等候最多 48 小時,才會開始看到 Google Cloud 價格資料。
限制
將 Cloud Billing 資料匯出至 BigQuery 時,會受到下列限制。
任何 Cloud Billing 資料匯出的資料表結構定義都可能變更
如果資料表結構定義變更 (例如為 Cloud Billing 資料匯出新增 BigQuery 資料表結構定義的欄位),直接參照匯出資料欄的任何查詢可能會失敗。為解決這個問題,建議您建立 BigQuery 檢視區塊,查詢匯出的資料表,並以偏好的結構呈現資訊。
接著,您可以調整提供報表和資訊主頁資料的查詢,從檢視畫面而非匯出的資料表擷取資料。使用檢視區塊,即可將查詢和資訊主頁中使用的資料結構標準化。
您建立的檢視區塊應將資料正規化,讓所有相關資料表向查詢呈現相同的結構定義。這樣一來,您就不會受到日後結構定義變更的影響,並可在資料結構定義變更時,修改檢視畫面的基礎查詢。
支援用於 Cloud Billing 資料的 BigQuery 資料集位置
BigQuery 資料集會設定為使用位置,可以是多區域位置 (歐盟或美國),也可以是區域位置。資料集位置是在建立時設定。資料集建立後,就無法變更位置。
Cloud Billing 資料匯出功能支援所有多地區位置 (歐盟或美國),但僅支援部分地區位置。設定 Cloud 帳單匯出設定時,如果建立或選取的資料集設定為使用不支援的區域位置,嘗試儲存匯出設定時,系統會顯示「無效的資料集區域」錯誤。
下表列出多地區位置和地區位置,這些位置支援用於包含 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 (蘇黎世)
如果您編輯匯出設定,更新匯出帳單資料的儲存專案或資料集,系統不會將先前匯出的帳單資料回填至新資料集。如要納入切換前匯出的帳單資訊,您必須手動將新資料集與先前的資料集合併。詳情請參閱彙整作業。
對於包含標準使用費用資料或詳細使用費用資料的 BigQuery 資料集,您在資料集上設定的位置類型會影響時間,也就是 Google Cloud 帳單資料匯出至資料集的時間:
- 如果將資料集設定為使用多區域位置 (歐盟或美國),資料集會包含 Google Cloud 從上個月初起產生的帳單資料,直到您首次啟用匯出功能為止。也就是說,Google Cloud 系統會回溯新增當月和上個月的帳單資料。初始回填匯出資料時,系統最多可能需要五天才能完成回溯 Cloud Billing 資料的匯出作業,之後您才會開始看到目前的用量資料。只有在首次啟用匯出功能時,系統才會回溯填入資料。如果您編輯匯出設定,變更匯出帳單資料的儲存專案或資料集,或是重新啟用匯出功能,系統不會追溯新增帳單資料。
如果資料集設定為使用支援的區域位置,標準使用費用資料和詳細使用費用資料只會反映 Google Cloud 您啟用 Cloud Billing 匯出功能當日起的帳單資料。也就是說,系統Google Cloud 不會回溯新增帳單資料,因此您不會看到啟用匯出功能之前的 Cloud Billing 資料。
詳情請參閱「資料可用性」。
含有定價資料的 BigQuery 資料集只會收集您設定 Cloud Billing 匯出功能當日起的帳單資料。 Google Cloud 也就是說,系統不會回溯新增定價資料,因此您不會看到啟用匯出功能之前的 Cloud Billing 定價資料。Google Cloud 詳情請參閱「資料可用性」。
匯出詳細用量費用資料時,詳細匯出內容會自動納入 Compute Engine 的資源層級資訊。如要在詳細資料匯出內容中查看 Google Kubernetes Engine (GKE) 叢集費用明細,您也必須啟用 GKE 的費用分配功能。
資料集加密:將帳單資料匯出至 BigQuery 時,不支援客戶自行管理的加密金鑰 (CMEK)。如果您為帳單資料集啟用 CMEK 加密,Cloud Billing 就無法將帳單資料寫入該資料集中的適當資料表。如要使用 Google-owned and Google-managed encryption key,您必須啟用資料集。
如要在包含匯出資料的資料表上使用 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);
資源層級標記最多可能需要一小時,才會傳播至 BigQuery 匯出作業。如果標記是在一小時內新增或移除,或是資源存在時間未滿一小時,可能不會顯示在匯出檔案中。
下列資源提供資源層級標記:
- Compute Engine 執行個體
- Spanner 執行個體
- Cloud Run 服務
- Artifact Registry 存放區
如果您使用 VPC Service Controls,系統可能會封鎖 BigQuery 匯出作業。如要解決這個問題,您需要手動豁免 VPC。
相關主題
與匯出的 Cloud Billing 資料相關的主題
Google Cloud 控制台提供的費用和價格報表
- 查看 Cloud Billing 報表和費用趨勢
- 查看及下載月結單或對帳單的費用明細
- 查看及下載 Google 雲端服務的價格
- 透過費用明細報表瞭解節約效益
- 分析承諾使用折扣的效益
- 查看費用和付款記錄