詳細資料匯出作業的結構

本文提供參考資訊,說明匯出至 BigQuery 各個資料表的 Cloud Billing 詳細使用費用資料結構定義。

使用費用詳細資料會提供標準使用費用資料的所有資訊,以及提供精細資源層級費用資料的額外欄位資料,例如產生用量的虛擬機器或 SSD。詳細匯出項目包含下列服務的詳細費用資訊:

  • AlloyDB for PostgreSQL
  • App Engine
  • BigQuery
  • Bigtable
  • Cloud Data Fusion
  • Cloud Deploy
  • Cloud Run 函式
  • Cloud Logging
  • Cloud Run
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataflow
  • Dataproc Metastore
  • Firestore 和 Datastore
  • Google Kubernetes Engine (GKE)
    如要在詳細資料匯出中查看 GKE 叢集費用明細,您必須啟用 GKE 的費用分配功能
  • 代管的 Microsoft AD
  • Memorystore for Redis
  • Secret Manager
  • Spanner

依服務找出精細的費用資料

如要分析詳細匯出資料中的精細費用資訊,請使用下表找出包含特定資源資訊的欄位。

服務說明 如何識別資源
AlloyDB for PostgreSQL service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

App Engine service.descriptionresource.name,或 resource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

BigQuery service.descriptionresource.name,或 resource.global_name

service.description 欄包含服務名稱。resource.name 資料欄包含使用者提供的名稱。resource.global_name 欄包含資源的專屬 ID。

Bigtable service.descriptionresource.global_name

service.description」欄包含服務名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud Data Fusion service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud Deploy service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud Run 函式 service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud Logging service.descriptionresource.global_name

service.description」欄包含服務名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud Run service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Cloud SQL service.descriptionresource.global_name

service.description 欄包含服務名稱,resource.global_name 欄則包含資源的專屬 ID。

Cloud Storage service.descriptionresource.global_name

service.description」欄包含服務名稱。「resource.global_name」欄包含資源的專屬 ID。

Compute Engine service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Dataflow service.descriptionresource.name,或 resource.global_name

service.description 欄包含服務名稱。「resource.name」欄包含使用者提供的名稱。 resource.global_name 欄包含資源的專屬 ID。

Dataproc Metastore service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Firestore 和 Datastore service.descriptionresource.name,或 resource.global_name

service.description」欄會顯示 App Engine。「resource.name」欄包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Google Kubernetes Engine (GKE) labels.key

使用下列標籤鍵篩選資源:

  • goog-fleet-project:如果叢集已註冊至機群,請依 機群主專案篩選叢集資源。
  • goog-k8s-cluster-location:依位置篩選 GKE 資源。
  • goog-k8s-cluster-name:依叢集篩選 GKE 資源。
  • goog-k8s-node-pool-name:依節點集區篩選叢集資源。
  • k8s-namespace:依命名空間篩選 GKE 資源。
  • k8s-namespace-labels:依 車隊命名空間標籤篩選 GKE 資源 (僅限 GKE Enterprise 客戶)。
  • k8s-label:查看所有 GKE 資源。

如要在詳細費用資料匯出內容中查看精細的 GKE 叢集費用,您必須 啟用 GKE 的費用分配功能

請參閱 查詢範例,瞭解如何篩選 BigQuery 匯出資料中的 GKE 資料

代管的 Microsoft AD service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Memorystore for Redis service.descriptionresource.global_name

service.description」欄包含服務名稱。「resource.global_name」欄包含資源的專屬 ID。

Secret Manager service.descriptionresource.nameresource.global_name

service.description」欄包含服務名稱。「resource.name」欄位包含使用者提供的名稱。「resource.global_name」欄包含資源的專屬 ID。

Spanner service.descriptionresource.global_name

service.description 欄包含服務名稱,resource.global_name 欄則包含資源的專屬 ID。

請參閱查詢資源詳細資料的範例

詳細使用費資料結構定義

在您的 BigQuery 資料集中,詳細使用費用資料會載入至名為 Google Cloudgcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID> 的資料表。

在 BigQuery 中使用詳細用量費用資料時,請注意以下事項:

  • 詳細的 Cloud Billing 資料匯出作業的資料表結構定義可能會隨時間變更,例如在詳細匯出作業中新增欄位時。為避免日後結構定義變更影響查詢,建議您使用 BigQuery 檢視畫面來正規化資料,讓資料表向查詢呈現相同的結構定義,而不是依賴直接參照匯出欄的查詢。進一步瞭解這項限制
  • 在為詳細用量費用資料選取或建立 BigQuery 資料集時,您可以選取任何支援與 Cloud Billing 資料搭配使用的資料集位置
  • 在 Cloud Billing 中首次啟用詳細用量費用資料匯出功能時,如果選取設定為使用多區域位置 (歐盟或美國) 的資料集,Cloud Billing 資料會追溯至上個月初。系統會按照時間先後順序匯出資料,首次回填匯出資料時,系統可能需要最多五天才能完成回溯匯出 Cloud Billing 資料,之後您才會開始看到最新的用量資料。
  • 如果您啟用詳細用量費用資料匯出功能,並選取已設定使用支援區域位置的資料集,則啟用匯出功能後,您就能取得 Cloud Billing 資料。
  • 如果您啟用、停用,然後重新啟用詳細用量費用資料匯出功能,則在明確停用資料匯出功能的期間,可能無法取得 Cloud Billing 資料。
  • 進一步瞭解資料載入 BigQuery 資料表的頻率
  • 請參閱其他限制,瞭解可能影響帳單資料匯出至 BigQuery 的因素,例如已啟用客戶自行管理的加密金鑰 (CMEK) 的資料集。
  • 啟用詳細使用費用資料匯出功能時,請考量 BigQuery 表格可能需要的額外資料量,以及相較於標準使用費用資料匯出功能產生的額外費用。資源層級資訊的精細程度提高,可能會增加資料列數量,這些資料列會以標準使用費用格式匯總。建議您參閱「控管 BigQuery 費用」,進一步瞭解管理 BigQuery 費用的最佳做法。
欄位 類型 說明
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 (第一方) 進行的交易,以及向合作夥伴 (第三方) 進行的交易,同時也會指出交易可能適用的法規。

可能的值包括:
  • GOOGLE:由 Google Cloud進行的第一方未受監管交易。
  • PARTNER:合作夥伴的第三方交易,無論是否受監管。
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、編號、名稱、ancestory_numbers 和標籤。
project.id 字串 產生 Cloud Billing 資料的 Google Cloud 專案 ID。
project.number 字串 系統內部產生的專屬匿名 ID,用於識別 Google Cloud 產生 Cloud Billing 資料的專案。在支援案件和其他客戶通訊中,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 浮點值 任何抵免額之前的用量費用,精確度最高可達小數點後六位。如要取得包含抵免額在內的總費用,請將任何 credits.amount 新增到費用中。詳情請參閱 這個查詢範例
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.id 欄位為空白,則產品 SKU 與抵免額沒有關聯。

credits.full_name 字串 與產品 SKU 相關聯的抵免額名稱。此名稱會以使用者可理解的方式說明英數字元的 credits.id。例如「免費試用抵免額或「支出型承諾使用折扣

credits.full_name 值只會顯示在有英數字元 credits.id 的 SKU 中,如果 credits.id 值是抵免額類型的說明 (例如「承諾使用折扣:CPU),則 credits.full_name 欄位會空白。

credits.type 字串 這個欄位會說明 credits.id 的用途或來源。 抵免額類型包括:
  • COMMITTED_USAGE_DISCOUNT: 針對 Compute Engine 所購買的資源型承諾使用合約,以享有 VM 用量的大幅折扣價。
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE: 針對服務所購買的支出型承諾使用合約,條件是您承諾支付最低費用。
  • DISCOUNT:折扣抵免額類型用於達到合約支出門檻後獲得的抵免額。請注意,在 Google Cloud 控制台中,Cloud Billing 報表會將折扣抵免額類型列為「支出型折扣 (合約)」
  • FREE_TIER:部分服務提供 免費資源 (用量最多可達指定上限)。對於這些服務,系統會套用抵免額,以便實作免費方案。
  • PROMOTION:促銷抵免額類型包括 Google Cloud 免費試用和行銷廣告活動抵免額,或是可使用 Google Cloud的其他公益計畫。如果有的話,系統會將促銷抵免額視為付款方式,並自動套用來減少總帳單金額。
  • RESELLER_MARGIN:如果您是經銷商,「經銷商利潤」抵免額類型代表所有符合資格的明細項目獲得的經銷商計畫折扣。
  • SUBSCRIPTION_BENEFIT:透過購買長期訂閱服務以享有折扣而獲得的抵免額。
  • SUSTAINED_USAGE_DISCOUNT:續用折扣抵免額類型是一種自動折扣。如果您在收費當月執行特定 Compute Engine 資源的時間達到一定比例,就能享有這項折扣。
credits.name 字串 Cloud Billing 帳戶套用的抵免額相關說明。
credits.amount 浮點值 帳單帳戶套用的抵免額金額。
adjustment_info 結構 adjustment_info 中的欄位會針對與 Cloud Billing 帳戶相關聯的費用明細項目調整項,說明其結構體和值。

只有在費用明細項目因修改 Cloud Billing 而產生時,系統才會顯示 adjustment_info 值。修改情形可能基於更正或未更正的因素而發生。adjustment_info 類型包含調整項的詳細資料 (不論是基於更正錯誤還是其他因素而核發都一樣)。

adjustment_info.id 字串 如果有的話,表示調整項與費用明細項目相關聯。adjustment_info.id 是與問題相關聯的所有調整項的專屬 ID。
adjustment_info.description 字串 調整項的說明及其原因。
adjustment_info.type 字串

調整項類型。

類型包括:

  • USAGE_CORRECTION:因回報用量有誤而做的更正。
  • PRICE_CORRECTION:因定價規則有誤而做的更正。
  • METADATA_CORRECTION:修正中繼資料而不變更費用的更正。
  • GOODWILL:基於商譽核發給客戶的抵免額。
  • SALES_BASED_GOODWILL:根據部分合約內容,基於商譽核發給客戶的抵免額。
  • SLA_VIOLATION:因違反服務等級目標 (SLO) 而核發給客戶的抵免額。
  • BALANCE_TRANSFER:將資金從一個付款帳戶轉移至其他帳戶的調整項。
  • ACCOUNT_CLOSURE:將已關閉帳戶的餘額歸零的調整項。
  • GENERAL_ADJUSTMENT:修改一般帳單帳戶。
adjustment_info.mode 字串

調整項的核發方式。

模式包括:

  • PARTIAL_CORRECTION:部分否定原始用量和費用的更正。
  • COMPLETE_NEGATION_WITH_REMONETIZATION:完全否定原始用量和費用的更正,並以更新的用量和費用核發更正後的明細項目。
  • COMPLETE_NEGATION:完全否定原始用量和費用的更正,不再利用額外用量重新營利。
  • MANUAL_ADJUSTMENT:手動分配到費用和用量的調整項。
export_time 時間戳記 與附加 Cloud Billing 資料相關聯的處理時間。每次執行新的匯出作業後,這個值一定會增加。
另請參閱下方 匯出的資料與月結單之間的差異一節。
tags 結構

描述標記的欄位,例如鍵、值和命名空間。

tags.key 字串

與這個特定代碼相關聯的金鑰簡短名稱或顯示名稱。

tags.value 字串

附加至 tags.key 的資源。在任何時間點,特定鍵的資源只能附加一個值。

tags.inherited 布林值

指出標記繫結是否為沿用 (標記沿用 = True),或直接/非沿用 (標記沿用 = False)。您可以 在資源階層中建立標記繫結繫結至父項資源。

tags.namespace 字串

代表定義標記鍵和值的資源階層。命名空間可與標記鍵和標記值簡稱合併,為標記鍵或標記值建立全域不重複的完整名稱。

cost_at_list 浮點值

與向 Cloud Billing 帳戶收費的所有明細項目相關聯的定價。

transaction_type 字串

賣方的交易類型。交易類型可能為下列其中一種:

  • GOOGLE = 1:由 Google Cloud銷售的服務。
  • THIRD_PARTY_RESELLER = 2:由 Google Cloud轉售的第三方服務。
  • THIRD_PARTY_AGENCY = 3:合作夥伴銷售的第三方服務,由 Google Cloud 擔任代理商。
seller_name 字串

賣家的法定名稱。

可匯出詳細用量費用資料的其他欄位
resource 結構

這個欄位說明與產生用量的服務資源 (例如虛擬機器或 SSD) 相關的資料結構和資訊值。

resource.global_name 字串

產生相關用量資源的全域專屬服務 ID。

resource.name 字串

產生相關用量的資源專用服務 ID。使用者可以自行輸入這項資訊。

price 結構

這些欄位說明與用量收費價格相關的結構體和值。

price.effective_price 數字

使用 Google Cloud 或 Google 地圖平台 SKU 的費用,以及 SKU 價格層級。如果您的 Cloud Billing 帳戶有自訂合約價格,這就是帳戶專屬價格;否則,這就是 SKU 或 SKU 層級的 定價

price.tier_start_amount 數字

SKU 價格級別的單位數量下限。舉例來說,如果 SKU 有三個價格級別 (0 到 100 個單位、101 到 1000 個單位,以及 1001 個以上單位),系統會為該 SKU 顯示三列價格,並在「price.tier_start_amount」欄位中顯示 0、101 和 1001,代表 SKU 價格級別的起始單位數量。

進一步瞭解價格級別
price.unit 字串

指定價格和計算資源用量時使用的單位 (例如 GB、TB、月、年、GB 時數、GB 月數或計數)。price.unit 欄位中的值與 usage.pricing_unit 欄位中的值相符。

price.pricing_unit_quantity 數字

SKU 的價格級別單位數量。舉例來說,假設級別價格為每 1,000,000 個位元組 $1 美元,這個資料欄就會顯示「1,000,000」。

subscription 結構

說明依據支出或資源而定的承諾使用合約的欄位。 您可以使用這些欄位,分析特定約定的費用。

subscription.instance_id 字串

與承諾方案連結的訂閱 ID。

瞭解標準和詳細使用費用資料

以下各節說明匯出至 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 指出透過區域預留項目預留但未使用的用量。
storage.googleapis.com/object_state live;noncurrentsoft_deletedmultipart 收費儲存空間物件的狀態。

匯出的資料與月結單之間的差異

Google Cloud 產品會以不同間隔將用量和費用資料回報給 Cloud Billing 程序。因此,您可能會發現服務用量和費用資訊延遲顯示在 Cloud Billing 中。 Google Cloud 費用通常會在一天內提供,但有時可能需要超過 24 小時。

在月底時,延遲回報的用量可能不會包含在當月的月結單中,而是計入下個月的月結單。

使用時間戳記欄位查詢費用時,傳回的資料可能會包含近期使用量,而這類使用量原本並未列入相同使用月份的月結單。因此,傳回的 Cloud Billing 資料可能不會直接對應到該月結單。

時間戳記欄位包括:

  • usage_start_time
  • usage_end_time
  • export_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 的錯誤資料。在某些情況下,系統會以新資料取代錯誤的費用。帳單資料匯出作業中的所有資料欄都會與原始資料相符,但下列資料欄除外:

  • cost
  • credit
  • usage.amount
  • export_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 的標準資料提供的查詢範例,也適用於匯出的詳細資料。標準查詢範例不會擷取任何資源層級資訊,這些資訊是透過詳細使用費用匯出選項提供。為詳細資料建立查詢時,您可以使用標準查詢範例做為範本、更新「資料表名稱」,並新增詳細用量費用結構定義中提供的任何欄位。

範例詳細費用查詢中使用的常見值

本節的查詢範例會使用下列「資料表名稱」值: project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX

傳回月結單上的資源層級費用

下列查詢示範透過匯出帳單資料,查看發票中資源層級費用和抵免額值的兩種方法。

  • total 欄位直接加總浮點費用和抵免額值,可能會造成浮點捨入錯誤。
  • total_exact 欄位會在加總前將費用和抵免額值轉換為微數值,然後在加總後轉換回美元,以免發生浮點捨入錯誤。

按月結單計算每項資源的費用總和

這項查詢會顯示每個月的帳單總額,當中包含定期費用、稅金、調整項和捨入錯誤。resource.name如果費用與資源層級項目無關,系統會將這些費用彙整到當月的「名稱」null

標準 SQL

SELECT
  invoice.month,
  resource.name,
  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_resource_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2
ORDER BY 1 ASC, 2 ASC
;

舉例來說,前述查詢的結果可能如下:

個月 名稱 總計 total_exact
1 201901 null $1005.004832999999984 美元 $1005.00 美元
2 201901 backend1 $781.8499760000028 $781.85
3 201902 null $953.0034923645475983 $953.03
4 201902 backend1 $992.3101739999999717 美元 $992.31 美元
5 201902 bitnami-launchpad-wordpress-1-wordpress $1.2817819999999998 $1.28

按月結單月份依據費用類型傳回各項資源的詳細資料

此查詢會顯示每個月的每個 cost_type resource.name 總計。費用類型包括定期費用、稅金、調整項和捨入錯誤。與資源層級項目無關的費用,都會在當月匯總到「名稱」null 下方。

標準 SQL

SELECT
  invoice.month,
  cost_type,
  resource.name,
  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_resource_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2, 3
ORDER BY 1 ASC, 2 ASC, 3 ASC
;

舉例來說,前述查詢的結果可能如下:

cost_type 名稱 總計 total_exact
1 201901 regular null $1000.501209987994782 美元 $1000.50 美元
2 201901 rounding_error null –$0.500489920049387 美元 –$0.50 美元
3 201901 tax null $10.000329958477891 美元 $10.00 美元
4 201901 adjustment null –$5.002572999387045 美元 –$5.00 美元
5 201901 regular backend1 $410.998795012082947 美元 $411.00
2 201901 rounding_error backend1 –$0.2404900489920378 –$0.24
3 201901 tax backend1 $4.105840329977189 $4.11

取得 Google Kubernetes Engine (GKE) 叢集費用明細

本節提供範例,說明如何在 BigQuery 匯出報表中篩選 GKE 叢集費用。如要進一步瞭解 GKE 叢集費用,請參閱「查看叢集費用明細」。

篩選 GKE 費用

下列查詢範例說明如何依叢集名稱、命名空間和標籤,篩選及分組支援的資源類型 GKE 成本。

扣除抵免額前的 GKE 叢集費用

SELECT
  SUM(cost) AS cost_before_credits,
  labels.value AS cluster_name
FROM  `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "goog-k8s-cluster-name"
GROUP BY labels.value
;

各命名空間扣除抵免額後的 GKE 費用

SELECT
  labels.value as namespace,
  SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS cost_after_credits,
FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "k8s-namespace"
GROUP BY namespace
;

依 SKU 列出的 GKE 費用

SELECT
  project.id AS project_id,
  labels.value AS cluster_name,
  sku.id AS sku_id,
  sku.description AS sku_description,
  SUM(cost) AS cost
FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`
JOIN UNNEST(labels) AS labels
  ON labels.key = "goog-k8s-cluster-name"
GROUP BY
  cluster_name, project_id, sku_description, sku_id
;

含標記的查詢範例

下列範例說明如何使用標記查詢資料。

使用標記按月結單計算費用

下列查詢示範如何使用 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

Google Cloud 控制台提供的費用和價格報表