本文提供匯出至 BigQuery 各個資料表的 Cloud Billing 標準使用費用資料結構定義參考資訊。
標準使用費用資料的結構定義
在您的 BigQuery 資料集中,標準 Google Cloud用量成本資料會載入至名為「gcp_billing_export_v1_<BILLING_ACCOUNT_ID>」的資料表。
以下資訊說明匯出至 BigQuery 的 Google Cloud 標準用量費用資料結構定義。 結構定義包含標準的 Cloud Billing 帳戶費用用量資訊,例如帳戶 ID、月結單日期、服務、SKU、專案、標籤、位置、費用、用量、抵免額、調整項和幣別。
在 BigQuery 中使用標準使用費用資料時,請注意以下事項:
- 標準 Cloud Billing 資料匯出的資料表結構定義可能會隨時間變更,例如在標準匯出中新增欄位時。為避免日後結構定義變更影響查詢,建議您使用 BigQuery 檢視畫面來正規化資料,讓資料表向查詢呈現相同的結構定義,而不是依據直接參照匯出資料欄的查詢。進一步瞭解這項限制。
 - 選取或建立 BigQuery 資料集做為標準用量費用資料時,您可以選取任何支援與 Cloud Billing 資料搭配使用的資料集位置。
 - 在 Cloud Billing 中首次啟用標準使用費用資料匯出功能時,如果選取的資料集已設定為使用多區域位置 (歐盟或美國),系統會從上個月初開始,提供 Cloud Billing 資料。系統會按照時間先後順序匯出資料,首次回填匯出資料時,系統可能需要最多五天才能完成回溯 Cloud Billing 資料的匯出作業,之後您才會開始看到最新的用量資料。
 - 如果您啟用標準使用費用資料匯出功能,並選取設定為使用支援區域位置的資料集,系統就會從您啟用匯出功能的當天起,提供 Cloud Billing 資料。
 - 如果您啟用、停用,然後重新啟用標準使用費用資料匯出功能,則在明確停用資料匯出功能的期間,可能無法取得 Cloud Billing 資料。
 - 進一步瞭解資料載入 BigQuery 資料表的頻率。
 - 標準使用費用資料不包含任何資源層級的費用資料,例如產生服務用量的虛擬機器或 SSD。如果您想將資源層級的費用資料匯出至 BigQuery 進行分析,請考慮啟用詳細用量費用資料匯出功能。匯出的使用費用詳細資料包含標準使用費用資料中的所有欄位和資訊。
 - 請參閱其他限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素,例如已啟用客戶自行管理的加密金鑰 (CMEK) 的資料集。
 
| 欄位 | 類型 | 說明 | 
|---|---|---|
billing_account_id | 
  字串 | 與用量相關聯的 Cloud Billing 帳戶 ID。 經銷商:如果是 Cloud Billing 子帳戶產生的用量費用,這是子帳戶的 ID,而非上層經銷商 Cloud Billing 帳戶的 ID。  | 
 
invoice.month | 
  字串 | 月結單的年度和月份 (YYYYMM),此月結單內含費用明細項目。例如:「201901」等於 2019 年 1 月。 您可以使用這個欄位來取得月結單上的費用總額。請參閱「 將 Cloud Billing 資料匯出至 BigQuery 查詢的範例」。  | 
 
invoice.publisher_type | 
   字串 | 指出與交易相關聯的發布商。這個欄位支援將直接向 Google (第一方) 進行的交易,以及向合作夥伴 (第三方) 進行的交易,分別開立發票,同時也會指出交易可能適用的法規。 可能的值如下:
  | 
 
cost_type | 
  字串 | 這個明細項目代表的費用類型包括:一般、稅金、調整項或捨入錯誤。  | 
 
service.id | 
  字串 | 與用量相關聯的服務 ID。 | 
service.description | 
  字串 | 回報 Cloud Billing 資料的 Google Cloud 服務。 | 
sku.id | 
  字串 | 服務所用資源的 ID。如需完整 SKU 清單,請參閱 Google Cloud SKU。 | 
sku.description | 
  字串 | 服務所用資源類型的說明。比方說,Cloud Storage 使用的資源類型為「美國地區的標準儲存空間」。 | 
usage_start_time | 
  時間戳記 | 以小時為單位使用期 (用於計算指定費用) 的開始時間。所有服務的使用情形和費用會以精算到小時的單位顯示,這表示執行時間長的服務使用情形會橫跨多個小時。 詳情請參閱 BigQuery 說明文件的 時間戳記資料類型一節,另請參閱 匯出的資料與月結單之間的差異。  | 
 
usage_end_time | 
  時間戳記 | 以小時為單位使用期 (用於計算指定費用) 的結束時間。所有服務的使用情形和費用會以精算到小時的單位顯示,這表示執行時間長的服務使用情形會橫跨多個小時。 詳情請參閱 BigQuery 說明文件的 時間戳記資料類型一節,另請參閱 匯出的資料與月結單之間的差異。  | 
 
project | 
  結構 | project 包含描述 Cloud Billing 專案的欄位,例如 ID、編號、名稱、ancestry_numbers 和標籤。
   | 
 
project.id | 
  字串 | 產生 Cloud Billing 資料的 Google Cloud 專案 ID。 | 
project.number | 
  字串 | Google Cloud 專案 (用於產生 Cloud Billing 資料) 的專屬匿名 ID。此為內部產生的 ID。在支援案件和其他客戶通訊中,Google 會使用這個專案編號指稱您的專案。 | 
project.name | 
  字串 | 產生 Cloud Billing 資料的 Google Cloud 專案名稱。 | 
project.ancestry_numbers | 
  字串 | 指定 project.id 所識別之專案的資源階層中的祖系 (例如:my-project-123)。例如:/ParentOrgNumber/ParentFolderNumber/。進一步瞭解 資源階層。  |  
project.ancestors |  結構 | 
    這個欄位會說明費用明細項目的資源階層結構和值,包括專案、資料夾和機構。祖先會從節點到根節點排序 (專案、資料夾,然後是機構)。  | 
project.ancestors.resource_name |  字串 | 每個祖先的
   相對資源名稱,格式為「resourceType/resourceNumber」。使用 project.ancestors.resource_name 可更全面地瞭解 project.ancestry_numbers。 | 
project.ancestors.display_name |  字串 | 您在控制台中為資源建立的名稱。 | 
project.labels.key |  字串 | 如果有標籤,則此欄顯示的是在產生用量的 Google Cloud 專案中,標籤鍵/值組合的「鍵」。如要進一步瞭解如何使用標籤,請參閱使用標籤。 | 
project.labels.value | 
  字串 | 如果有標籤,則此欄顯示的是在產生用量的 Google Cloud 專案中,標籤鍵/值組合的「值」。如要進一步瞭解如何使用標籤,請參閱使用標籤。 | 
labels.key | 
  字串 | 如果有標籤,則此欄顯示的是在產生用量的 Google Cloud 資源中,標籤鍵/值組合的「鍵」。如要進一步瞭解如何使用標籤,請參閱使用標籤。 | 
labels.value | 
  字串 | 如果有標籤,則此欄顯示的是在產生用量的 Google Cloud 資源中,標籤鍵/值組合的「值」。如要進一步瞭解如何使用標籤,請參閱使用標籤一文。 | 
system_labels.key | 
  字串 | 如果有系統標籤,則此欄顯示的是在產生用量的資源中,系統產生的標籤鍵/值組的「鍵」。另請參閱 可用的系統標籤。 | 
system_labels.value | 
  字串 | 如果有系統標籤,則此欄顯示的是在產生用量的資源中,系統產生的標籤鍵/值組的「值」。另請參閱 可用的系統標籤。 | 
location.location | 
  字串 | 多區域、國家/地區、區域或可用區層級的使用位置;或以 global 表示
     不具特定位置的資源。詳情請參閱「
     地理位置與區域」和「
    Google Cloud 位置」。
   | 
 
location.country | 
  字串 | 當 location.location 是國家、地區或區域時,此欄位是用量所在的國家,例如 US。詳情請參閱「
     地理位置與區域」和「
    Google Cloud 位置」。
   | 
 
location.region | 
  字串 | 當 location.location 是區域或地帶時,此欄位是用量所在的區域,例如 us-central1。詳情請參閱「
     地理位置與區域」和「
    Google Cloud 位置」。
   | 
 
location.zone | 
  字串 | 當 location.location 是區域時,此欄位是用量所在的區域,例如 us-central1-a。
   詳情請參閱「
     地理位置與區域」和「
    Google Cloud 位置」。
   | 
 
cost | 
  浮點值 | 適用使用模式的費用,包括與 Cloud Billing 帳戶連結合約中反映的任何議定折扣 (如適用)。  | 
 
currency | 
  字串 | 帳單採用的幣別。詳情請參閱 用當地貨幣支付帳單和付款一文。 | 
currency_conversion_rate | 
  浮點值 | 美元兌當地貨幣的匯率。也就是說,cost ÷ currency_conversion_rate 可得出以美元計價的費用。 | 
 
usage.amount | 
  浮點值 | 使用的 usage.unit 數量。 | 
 
usage.unit | 
  字串 | 資源用量的基本測量單位,例如標準儲存空間的基本單位為「位元組-秒」。 | 
usage.amount_in_pricing_units
   | 
  浮點值 | 使用的 usage.pricing_unit 數量。 | 
 
usage.pricing_unit
   | 
  字串 | 資源用量的測量單位 (以 Cloud Billing Catalog API 為依據)。 | 
credits | 
  結構 | credits 中的欄位會說明與 Google Cloud 和 Google 地圖平台 SKU 相關聯的抵免額結構體和值。 | 
 
credits.id | 
  字串 | 如果有的話,則表示抵免額與產品 SKU 相關聯。
   credits.id 值可以是英數字元的專屬 ID (例如「12-b34-c56-d78」),也可以是抵免額類型說明 (例如「承諾使用折扣:CPU」
     )。如果   | 
 
credits.full_name | 
  字串 | 與產品 SKU 相關聯的抵免額名稱。這是英數字元 credits.id 的使用者可理解說明。例如「免費試用抵免額」或「支出型承諾使用折扣」。
   
  | 
 
credits.type | 
  字串 | 這個欄位會說明 credits.id 的用途或來源。
   抵免額類型包括:
   
  | 
 
credits.name | 
  字串 | Cloud Billing 帳戶套用的抵免額相關說明。 | 
credits.amount | 
  浮點值 | 帳單帳戶套用的抵免額金額。 | 
adjustment_info | 
  結構 | adjustment_info 中的欄位會針對與 Cloud Billing 帳戶相關聯的費用明細項目調整項,說明其結構體和值。
   只有在費用明細項目因修改 Cloud Billing 而產生時,系統才會顯示   | 
 
adjustment_info.id | 
  字串 | 如果有的話,表示調整項與費用明細項目相關聯。adjustment_info.id 是與問題相關聯的所有調整項的專屬 ID。 | 
 
adjustment_info.description | 
  字串 | 調整項的說明及其原因。 | 
adjustment_info.type | 
  字串 | 調整項類型。 類型包括: 
  | 
 
adjustment_info.mode | 
  字串 | 調整項的核發方式。 模式包括: 
  | 
 
export_time | 
  時間戳記 | 與附加 Cloud Billing 資料相關聯的處理時間。
   每次執行新的匯出作業後,這個值一定會增加。 請另行參閱下方 匯出的資料與月結單之間的差異一節。  | 
 
tags | 
  結構 | 描述標記的欄位,例如鍵、值和命名空間。  | 
 
tags.key | 
  字串 | 與這個特定代碼相關聯的金鑰簡短名稱或顯示名稱。  | 
 
tags.value | 
  字串 | 附加至   | 
 
tags.inherited | 
   布林值 | 指出標記繫結是否為沿用 (Tags Inherited = True),或直接/非沿用 (Tags Inherited = False)。您可以 在資源階層中建立標記繫結,繫結至父項資源。  | 
   
tags.namespace | 
     字串 | 代表定義標記鍵和值的資源階層。命名空間可與標記鍵和標記值簡稱合併,為標記鍵或標記值建立全域不重複的完整名稱。  | 
     
cost_at_list | 
       浮點值 | 根據預設用量模式計算的定價費用。  | 
  
transaction_type | 
       字串 | 賣方的交易類型。交易類型可能為下列其中一種: 
  | 
     
seller_name | 
       字串 | 賣家的法定名稱。  | 
     
price | 
   結構 | 這些欄位說明與用量收費相關的結構和值。  | 
 
price.list_price | 
   數字 | 依預設耗用模式計算的 SKU 定價。  | 
 
price.effective_price_default | 
   數字 | 根據預設消耗量模式計算的 SKU 價格,包括與 Cloud Billing 帳戶連結的合約中反映的任何議定折扣 (如適用)。  | 
 
price.list_price_consumption_model | 
   數字 | 適用消耗量模式的 SKU 定價,不含與 Cloud Billing 帳戶連結合約中自訂價格反映的任何議定折扣 (如適用)。  | 
 
price.effective_price | 
   數字 | 根據適用的消耗量模式計算的 SKU 價格,包括與 Cloud Billing 帳戶連結的合約中反映的任何議定折扣 (如適用)。  | 
 
price.tier_start_amount | 
   數字 | SKU 價格級別的單位數量下限。詳情請參閱「關於價格等級」。  | 
 
price.unit | 
     字串 | 指定價格和測量資源用量的使用量單位。  | 
   
price.pricing_unit_quantity | 
     數字 | SKU 價格級別的單位數量下限。詳情請參閱「關於價格等級」。  | 
 
cost_at_effective_price_default | 
   數字 | 根據預設使用模式的費用,包括與 Cloud Billing 帳戶連結合約中反映的任何議定折扣 (如適用)。  | 
 
cost_at_list_consumption_model | 
   數字 | 適用使用模式的費用 (未套用與 Cloud Billing 帳戶連結合約中自訂價格反映的任何議定折扣,如適用)。  | 
 
consumption_model | 
   結構 | 描述適用消費模式的欄位。  | 
 
consumption_model.id | 
   字串 | 消費模式的 ID。  | 
 
consumption_model.description | 
   字串 | 消費模式的說明。  | 
 
瞭解標準和詳細使用費用資料
以下各節說明匯出至 BigQuery 的標準和詳細使用費用資料。
關於標籤
特定標籤的費用資料只會顯示資源套用標籤後的用量。舉例來說,如果您在 2024 年 1 月 15 日將 environment:dev 標籤新增至 Compute Engine VM,則 environment:dev 的任何分析只會納入該 VM 自 1 月 15 日起的用量。
視各個服務提供標籤資料的時間而定,系統會在不同時間為不同服務填入資料。
可用系統標籤
產生用量的資源具有重要的中繼資料,這些中繼資料的鍵/值組合即是系統標籤。以下系統標籤會自動加到適用的用量上。
system_labels.key | 
範例 system_labels.value | 
說明 | 
|---|---|---|
compute.googleapis.com/machine_spec | 
n1-standard-1、custom-2-2048 | 虛擬機器的設定。詳情請參閱 機器類型。 | 
compute.googleapis.com/cores | 
對於 n1-standard-4,此為 4;對於 custom-2-2048,此為 2 | 虛擬機器可用的 vCPU 數目。 | 
compute.googleapis.com/memory | 
對於 n1-standard-4,此為 15360 (即 15 GB * 1024 MB/GB);對於 custom-2-2048,此為 2048 | 虛擬機器可用的記憶體量 (MB)。 | 
compute.googleapis.com/is_unused_reservation | 
true; false | 指出透過區域預留項目預留但未使用的用量。 | 
compute.googleapis.com/reservation_name | 
my-a2-reservation | Compute Engine 預留項目的簡短名稱。 | 
compute.googleapis.com/reservation_project_id | 
my-gcp-project | 擁有 Compute Engine 預訂的專案 ID。 | 
storage.googleapis.com/object_state | 
live;noncurrent; soft_deleted; multipart | 收費儲存空間物件的狀態。 | 
匯出的資料與月結單之間的差異
Google Cloud 產品會按照不同間隔,將用量和費用資料回報給 Cloud Billing 程序。因此,您可能需要等待一段時間,才能在 Cloud Billing 中查看服務的用量和費用。 Google Cloud 費用通常會在一天內提供,不過有時可能會超過 24 小時。
在月底時,延遲回報的用量可能不會包含在當月的月結單中,而是計入下個月的月結單。
使用時間戳記欄位查詢費用時,傳回的資料可能會包含近期使用量,而這類使用量原本不會列入相同使用月份的月結單。因此,傳回的 Cloud Billing 資料可能不會直接對應到該月結單。
時間戳記欄位包括:
usage_start_timeusage_end_timeexport_time
如要傳回與月結單直接對應的 Cloud Billing 資料,請查詢 invoice.month,
而非時間戳記欄位。
稅金
自 2020 年 9 月 1 日起,用量費用資料會顯示各專案的稅金負擔,而非單一明細項目。如果您有查詢或視覺化圖表依據稅務資料,可能需要更新查詢,才能反映這些變更。
舉例來說,如果費用是在 9 月 1 日前記錄,您的用量費用資料會類似於下列範例,顯示總稅金負債為 $10 美元。
billing_account_id | 
    project.id | 
    cost_type | 
    cost | 
  
|---|---|---|---|
| 123456-ABCDEF-123456 | example-project | 一般 | $60 美元 | 
| 123456-ABCDEF-123456 | test-project | 一般 | $40 美元 | 
| 123456-ABCDEF-123456 | [empty] | 稅金 | $10 美元 | 
9 月 1 日後記錄的費用中,有 $6 美元是 example-project 的費用,有 $4 美元是 test-project 的費用:
billing_account_id | 
    project.id | 
    cost_type | 
    cost | 
  
|---|---|---|---|
| 123456-ABCDEF-123456 | example-project | 一般 | $60 美元 | 
| 123456-ABCDEF-123456 | test-project | 一般 | $40 美元 | 
| 123456-ABCDEF-123456 | example-project | 稅金 | $6 美元 | 
| 123456-ABCDEF-123456 | test-project | 稅金 | $4 美元 | 
錯誤和調整
如果 Cloud Billing 資料發生錯誤或需要調整,系統會附加修正資料。這些調整項可分為兩類:帳單修改或更正。
帳單修改
帳單異動會顯示為獨立的明細項目。如果您收到帳單異動通知,Cloud Billing 匯出至 BigQuery 的資料中會新增一行,顯示異動內容。顯示的調整項對應於 Google Cloud 控制台「帳單」專區「文件」區域中的月結單、貸項憑單和借項憑單文件。
如要進一步瞭解帳單修改和套用方式,請參閱「瞭解備忘錄和調整項」。
修正
修正內容會以新資料的形式顯示,抵銷來源 SKU 的錯誤資料。在某些情況下,新資料會取代錯誤的費用。帳單資料匯出作業中的所有資料欄都會與原始資料相符,但下列資料欄除外:
costcreditusage.amountexport_time
舉例來說,假設您在 1 月 1 日使用 SKU A,費用為 $10 美元。在 2 月初發出的 1 月月結單中,您會看到 SKU A 的 $10 美元費用。不過,在 2 月 2 日, Google Cloud 針對 SKU A 發出更正,將使用費用調降至 $5 美元。2 月月結單 (3 月初發放) 會新增兩項明細項目:
- 1 月 1 日的使用費 -$10 美元 (抵銷原始費用)
 - 1 月 1 日的使用費為 $5 美元 (說明預計收取的費用)
 
這些新項目在帳單資料匯出作業中會顯示 adjustment_info 欄。系統不會調整顯示超額費用的 1 月原始月結單。您可以查看按 usage_start_time 分類的費用,並依 Day 分組,藉此在匯出的帳單資料中驗證費用。在這些檢視畫面中,系統會累計任何修正或延遲營利的使用費用,您不必擔心任何暫時不正確的資料。
如要查看更詳細的修正資訊,請查看帳單月份的所有費用,並找出使用日期在帳單月份之前的費用。這些費用是修正或延遲營利的使用情形所致。
下列程式碼範例說明如何建立基本查詢,傳回修正或延遲營利用量的總費用:
SELECT
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
      FROM   UNNEST(credits) c), 0))
    AS total
FROM `project.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`
WHERE
  invoice.month = '202311' AND
  DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2023-11-01';
如需查詢範例,瞭解如何依服務細分月結單費用,並找出使用日期在月結單月份「之前」的費用,請參閱「Cloud Billing 資料匯出的查詢範例」一文中的「查詢費用詳細資料,依指定月結單月份的服務查看修正或延遲營利的使用情況」。
自訂價格合約中的促銷抵免額簡介
如果您有自訂價格合約,可能會收到促銷抵免額,可用於 Google Cloud 。舉例來說,您可能會收到 $1,000 美元,用於 Compute Engine 資源。促銷抵免額通常視為一種付款方式。如有未使用的促銷抵免額,系統會自動用來折抵費用總額。
合約條款會指定促銷活動抵免額適用於以 SKU 定價計算的費用,還是淨價 (折扣後)。
如果促銷抵免額適用於以定價計算的費用,則在「費用表」報表中,會顯示名為「Invoice」的服務和名為「Contract billing adjustment」的 SKU。這個 SKU 會調整抵免額,以便用於定價費用。如要查看調整適用的用量,請查詢 system.labels 欄。system.labels.key 中的鍵為 cloud-invoice.googleapis.com/sku_id,而 system.labels.value 中的值則包含抵免額和調整項套用的 SKU ID。
關於代碼
標記 是以鍵/值組合形式呈現的資源,可直接或透過繼承附加至資源。您可以使用標記執行退款、稽核和其他費用分配分析。您也可以使用標記並依據條件強制執行政策,精細控管資源階層結構。
標記具有完善的權限模型,可支援繼承、集中式管理、命名標準化和政策引擎整合,而 標籤是獨立工具,可讓您註解資源。
資源、專案、資料夾和機構的 BigQuery 匯出資料中會顯示標記資料。
可用的標記
資源、專案、資料夾和機構的「標準費用」和「詳細費用」匯出作業,會納入標籤資料的下列欄位:標籤鍵、標籤值、標籤繼承和標籤命名空間。
Cloud Billing 資料匯出功能支援下列資源的資源層級標記:
- AlloyDB for PostgreSQL 叢集、執行個體和備份
 - Artifact Registry 存放區
 - Bigtable 執行個體
 - Cloud Run 服務和工作
 - Cloud Storage 值區
 - Compute Engine 執行個體
 - Memorystore for Redis 執行個體
 - Secret Manager 全域和區域性密鑰
 - Spanner 執行個體
 - Firestore 資料庫
 
代碼限制
- 標記最多可能需要一小時才會匯出至 BigQuery。如果標記是在一小時內新增或移除,或是資源存在時間未滿一小時,可能不會顯示在匯出檔案中。
 
標準使用費用查詢範例
本節提供範例,說明如何查詢匯出至 BigQuery 的 Cloud Billing 標準使用費用資料。
指定要在查詢中使用的資料表名稱
在這些範例中,如要在 BigQuery 中查詢 Cloud Billing 資料,您需要在 FROM 子句中指定資料表名稱。系統會使用下列三個值判斷資料表名稱:project.dataset.BQ_table_name。
project是Google Cloud 您設定的專案 ID,其中包含 BigQuery 資料集。dataset是您設定的 BigQuery 資料集名稱,其中包含匯出的 Cloud Billing 資料 BigQuery 資料表。BQ_table_name是BigQuery 資料表的名稱,其中包含您要查詢的匯出 Cloud Billing 資料。有三個 BigQuery 資料表包含 Cloud Billing 資料:
範例標準費用查詢中使用的常見值
本節的查詢範例會使用下列「資料表名稱」值:
project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX
這些查詢範例也適用於匯出至 BigQuery 的詳細使用費用資料,但不會擷取詳細使用費用匯出選項提供的任何資源層級資訊。
傳回月結單上的總費用
下列查詢示範透過匯出帳單資料查看費用和抵免額值的兩種方法。
total欄位直接加總浮點費用和抵免額值,可能會造成浮點捨入錯誤。total_exact欄位會在加總前將費用和抵免額值轉換為微數值,然後在加總後轉換回美元,以免發生浮點捨入錯誤。
範例 1:按月結單顯示所有費用的加總
此查詢會顯示每個月的月結單總計,做為定期費用、稅金、調整項和捨入錯誤的加總。
標準 SQL
SELECT invoice.month, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1 ORDER BY 1 ASC ;
舉例來說,前述查詢的結果可能如下:
| 列 | 月 | 總計 | total_exact | 
|---|---|---|---|
| 1 | 201901 | $1005.004832999999984 美元 | $1005.00 美元 | 
| 2 | 201902 | $992.3101739999999717 美元 | $992.31 美元 | 
| 3 | 201903 | $1220.761089999999642 美元 | $1220.76 美元 | 
範例 2:按月結單月份依據費用類型傳回詳細資料
此查詢會顯示每個月的每個 cost_type 總計。費用類型包括定期費用、稅金、調整項和捨入錯誤。
標準 SQL
SELECT invoice.month, cost_type, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
舉例來說,前述查詢的結果可能如下:
| 列 | 月 | cost_type | 總計 | total_exact | 
|---|---|---|---|---|
| 1 | 201901 | regular | $1000.501209987994782 美元 | $1000.50 美元 | 
| 2 | 201901 | rounding_error | –$0.500489920049387 美元 | –$0.50 美元 | 
| 3 | 201901 | tax | $10.000329958477891 美元 | $10.00 美元 | 
| 4 | 201901 | adjustment | –$5.002572999387045 美元 | –$5.00 美元 | 
含有標籤的查詢範例
下列範例說明如何使用標籤查詢資料。
本節範例以下列假設為前提:
- 您有兩個應用程式 (grapefruit-squeezer 和 chocolate-masher)。
 - 每個應用程式都有兩個環境 (開發和正式)。
 - dev 環境提供每個應用程式 1 個小型執行個體。
 - prod 環境在美洲和亞洲各提供 1 個小型執行個體。
 - 每個執行個體都已依應用程式和環境加上標籤。
 - 您有一個沒有標籤的執行個體,用於實驗。
 
總費用為 $24 美元,明細如下:
| 執行個體 | 標籤 | 總費用 | 
|---|---|---|
| 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | 無 | $4 美元 | 
| 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: chocolate-masher environment: dev  | 
$2 美元 | 
| 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: grapefruit-squeezer environment: dev  | 
$3 美元 | 
| 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: chocolate-masher environment: prod  | 
$3.25 美元 | 
| 在亞洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: chocolate-masher environment: prod  | 
$3.75 美元 | 
| 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: grapefruit-squeezer environment: prod  | 
$3.50 美元 | 
| 在亞洲地區執行且包含 1 個 vCPU 的小型執行個體 | app: grapefruit-squeezer environment: prod  | 
$4.50 美元 | 
在不分組的情況下查詢每一列
如要查看最詳盡的費用明細,請在不分組的情況下查詢每一列。假設除了標籤和 SKU 說明以外的所有欄位 (專案、服務等等) 都相同。
標準 SQL
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;
舊版 SQL
TO_JSON_STRING not supported.
| 資料列 | sku.description | 標籤 | 費用 | 
|---|---|---|---|
| 1 | 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | [] | $4 美元 | 
| 2 | 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 美元 | 
| 3 | 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 美元 | 
| 4 | 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3.25 美元 | 
| 5 | 在亞洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3.75 美元 | 
| 6 | 在美洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $3.50 美元 | 
| 7 | 在亞洲地區執行且包含 1 個 vCPU 的小型執行個體 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $4.50 美元 | 
| 總計 | $24 美元 | 
以 JSON 字串格式依標籤對應分組
這個方法可讓您輕鬆快速依各個標籤組合查看費用明細。
標準 SQL
SELECT TO_JSON_STRING(labels) as labels, sum(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY labels;
舊版 SQL
TO_JSON_STRING not supported.
| 資料列 | 標籤 | 費用 | 
|---|---|---|
| 1 | [] | $4 美元 | 
| 2 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 美元 | 
| 3 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 美元 | 
| 4 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $7 美元 | 
| 5 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $8 美元 | 
| 總計 | $24 美元 | 
依特定鍵的標籤值分組
依特定標籤鍵的值細分費用,是一種常見的做法。使用 LEFT JOIN 並將鍵篩選器放在 JOIN 條件中 (而非 WHERE),即可納入不含這個鍵的費用,進而取得完整的費用檢視畫面。
標準 SQL
SELECT labels.value as environment, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "environment" GROUP BY environment;
舊版 SQL
SELECT labels.value as environment, SUM(cost) as cost FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] WHERE labels.key = "environment" OR labels.key IS NULL GROUP BY environment;
| 資料列 | 環境 | 費用 | 
|---|---|---|
| 1 | prod | $15 美元 | 
| 2 | dev | $5 美元 | 
| 3 | 空值 | $4 美元 | 
| 總計 | $24 | 
依鍵/值組合分組
解讀或匯出這類結果時請謹慎小心。這裡的個別資料列會顯示有效總和,不會重複計算,但不應與其他資料列合併 (除非索引鍵相同,或您確定索引鍵絕不會在相同資源上設定)。
標準 SQL
SELECT labels.key as key, labels.value as value, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels GROUP BY key, value;
舊版 SQL
SELECT labels.key as key, labels.value as value, SUM(cost) FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] GROUP BY key, value;
| 資料列 | 鍵 | 值 | 費用 | 
|---|---|---|---|
| 1 | null | 空值 | $4 美元 | 
| 2 | app | chocolate-masher | $9 美元 | 
| 3 | app | grapefruit-squeezer | $11 美元 | 
| 4 | environment | dev | $5 美元 | 
| 5 | environment | prod | $15 美元 | 
| 總計 | $44 美元 | 
請注意,總和會大於您的帳單金額。
承諾使用折扣查詢
下列查詢示範如何查看與承諾使用折扣相關的費用和抵免額,這些資料會匯出至帳單資料。如要瞭解承諾費用和抵免額如何歸屬至 Cloud Billing 帳戶和專案,請參閱承諾使用折扣的歸屬。
查看承諾使用費用
如要在帳單資料匯出內容中查看承諾使用折扣的承諾費用,請使用下列範例查詢。
標準 SQL
SELECT invoice.month AS invoice_month, SUM(cost) as commitment_fees FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE LOWER(sku.description) LIKE "commitment%" GROUP BY 1
查看承諾使用合約抵免額
如要在帳單資料匯出內容中查看承諾使用折扣抵免額,請使用下列範例查詢。
標準 SQL
SELECT invoice.month AS invoice_month, SUM(credits.amount) as CUD_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(credits) AS credits WHERE LOWER(credits.name) LIKE "committed use discount%" GROUP BY 1
使用資源階層篩選器查看祖先
您可以使用資源階層篩選器,依階層元素 (例如專案、資料夾和機構) 匯總費用。這些查詢範例顯示依資源階層元素篩選費用並顯示專案祖先的加總方法。
範例 1:依資源名稱篩選
這個範例會示範如何查詢費用,並依專案祖先項目分組,以及如何篩選僅在指定階層元素下產生的費用 (以相對資源名稱識別)。
字串方法
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
UNNEST 方法
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.resource_name = "folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
範例 2:依顯示名稱篩選
這個範例會示範如何查詢,依專案祖先關係將費用分組,並篩選出使用者提供顯示名稱的指定階層元素所產生的費用。
字串比對方法
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
UNNEST 方法
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.display_name = "MyFolderName" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
含標記的查詢範例
下列範例說明如何使用標記查詢資料。
使用標籤依月結單月份計算費用
下列查詢示範如何使用 cost_center 代碼,依帳單月份傳回費用。
SELECT invoice.month AS invoice_month, tag.value AS cost_center, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM (CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`, UNNEST(tags) AS tag WHERE tag.key = "cost_center" AND tag.namespace = "821092389413" GROUP BY invoice.month, tag.value ORDER BY invoice.month, tag.value;
舉例來說,前述查詢的結果可能如下:
| 列 | invoice_month | cost_center | net_cost | 
|---|---|---|---|
| 1 | 202208 | android_mobile_apps | 9.93 | 
| 2 | 202208 | ios_mobile_apps | 9.93 | 
| 3 | 202209 | android_mobile_apps | 25.42 | 
| 4 | 202209 | ios_mobile_apps | 25.4 | 
| 5 | 202209 | 個人化 | 16.08 | 
查看未標記資源的費用
這項查詢會顯示未加上標記的資源的帳單總額,並依帳單月份分組。
SELECT invoice.month AS invoice_month, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE "color" NOT IN (SELECT key FROM UNNEST(tags)) GROUP BY invoice_month ORDER BY invoice_month;
舉例來說,前述查詢的結果可能如下:
| 列 | invoice_month | net_cost | 
|---|---|---|
| 1 | 202202 | 0 | 
| 2 | 202203 | 16.81 | 
| 3 | 202204 | 54.09 | 
| 4 | 202205 | 55.82 | 
| 5 | 202206 | 54.09 | 
| 6 | 202207 | 55.83 | 
| 7 | 202208 | 31.49 | 
其他查詢範例
查詢指定月結單月份的專案費用和抵免額
指定 2020 年 6 月的帳單月份 (格式為 YYYYMM) 後,這項查詢會傳回按專案分組的費用和抵免額檢視畫面,並顯示專案標籤。
標準 SQL
SELECT project.name, TO_JSON_STRING(project.labels) as project_labels, sum(cost) as total_cost, SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE invoice.month = "202006" GROUP BY 1, 2 ORDER BY 1;
舊版 SQL
TO_JSON_STRING not supported.
| 列 | 名稱 | project_labels | total_cost | total_credits | 
|---|---|---|---|---|
| 1 | CTG - Dev | [{"key":"ctg_p_env","value":"dev"}] | 79.140979 | -4.763796 | 
| 2 | CTG - Prod | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}] | 32.466272 | -3.073356 | 
| 3 | CTG - Sandbox | [{"key":"ctg_p_env","value":"dev"}] | 0 | 0 | 
| 4 | CTG - Storage | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}] | 7.645793 | -0.003761 | 
相關主題
與匯出的 Cloud Billing 資料相關的主題
Google Cloud 控制台提供的費用和價格報表
- 查看 Cloud Billing 報表和費用趨勢
 - 查看及下載月結單或對帳單的費用明細
 - 查看及下載 Google 雲端服務的價格
 - 透過費用明細報表瞭解節約效益
 - 分析承諾使用折扣的效益
 - 查看費用和付款記錄