詳細なデータ エクスポートの構造

このページでは、BigQuery の各テーブルにエクスポートされた Cloud Billing の詳細な使用料金データのスキーマのリファレンス情報について説明します。

詳細な使用料金データには、標準の使用料金データに含まれているすべての情報と、詳細なリソースレベルの費用データ(サービス使用量を生成する仮想マシンや SSD など)を提供する追加のフィールドが含まれます。詳細なエクスポートには、以下のサービスの詳しい費用情報が含まれます。

  • Compute Engine
  • Google Kubernetes Engine(GKE)

    詳細なデータ エクスポートで GKE クラスタの費用の内訳を表示するには、GKE の費用割り当ても有効にする必要があります。

  • Cloud Functions

  • Cloud Run

  • Cloud SQL

  • Cloud Spanner

  • App Engine

サービスごとの詳細な費用データを特定する

詳細なエクスポートで詳しい費用情報を分析するには、次の表を使用して、特定のリソースに関する情報を含む列を特定します。

サービスの説明 リソースの確認方法
Compute Engine service.descriptionresource.name、または resource.global_name

service.description 列にはサービスの名前が含まれます。resource.name 列には、ユーザーが指定した名前が含まれます。resource.global_name 列には、リソースの一意の識別子が含まれます。

Google Kubernetes Engine(GKE) labels.key

次のラベルキーを使用してリソースをフィルタします。

  • goog-k8s-cluster-name: GKE リソースをクラスタでフィルタします。
  • k8s-namespace: GKE リソースを Namespace でフィルタします。
  • k8s-label: すべての GKE リソースを表示します。

詳細な費用データのエクスポートで GKE クラスタの費用の詳細を表示するには、GKE の費用割り当てを有効にする必要もあります。

BigQuery Export で GKE データをフィルタするクエリの例をご覧ください。

Cloud Functions service.descriptionresource.name、または resource.global_name

service.description 列にはサービスの名前が含まれます。resource.name 列には、ユーザーが指定した名前が含まれます。resource.global_name 列には、リソースの一意の識別子が含まれます。

Cloud Run service.descriptionresource.name、または resource.global_name

service.description 列にはサービスの名前が含まれます。resource.name 列には、ユーザーが指定した名前が含まれます。resource.global_name 列には、リソースの一意の識別子が含まれます。

Cloud SQL service.descriptionresource.global_name

service.description 列にはサービスの名前が含まれ、resource.global_name 列にはリソースの一意の識別子が含まれます。

Cloud Spanner service.descriptionresource.global_name

service.description 列にはサービスの名前が含まれ、resource.global_name 列にはリソースの一意の識別子が含まれます。

App Engine service.descriptionresource.name、または resource.global_name

service.description 列にはサービスの名前が含まれます。resource.name 列には、ユーザーが指定した名前が含まれます。resource.global_name 列には、リソースの一意の識別子が含まれます。

リソースに対してきめ細かいデータのクエリを実行する例をご覧ください。

詳細な使用料金データのスキーマ

BigQuery データセットで、Google Cloud の詳細な使用料金データが gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID> というデータテーブルに読み込まれます。

BigQuery で詳細な使用料金データを使用する場合は、次の点に注意してください。

  • 詳細な使用料金データに BigQuery データセットの作成を選択する場合は、データセットでサポートされているロケーションを選択できます。
  • Cloud Billing で詳細な使用料金データのエクスポートを初めて有効にする場合、マルチリージョン ロケーションが構成されたデータセットを選択すると、前月初日からさかのぼって Cloud Billing データを利用できるようになります。
  • 詳細な使用料金データのエクスポートを有効にして、リージョン ロケーションが構成されたデータセットを選択すると、エクスポートを有効にした日付から Cloud Billing データを利用できるようになります。
  • 詳細な使用料金データのエクスポートを有効して無効にし、その後に再び有効にした場合、明示的に無効にした期間の Cloud Billing データを利用できなくなる可能性があります。
  • 顧客管理の暗号鍵(CMEK)が有効になっているデータセットなど、BigQuery への課金データのエクスポートに影響する可能性のある他の制限事項をご覧ください。
  • BigQuery テーブルで必要となる可能性のある追加データ容量と、標準の使用料金データのエクスポートではなく詳細な使用料金データのエクスポートを有効にしている場合は追加のコストを考慮してください。リソースレベルの情報の粒度が上がると、標準の使用料金形式で集計される行数が増加します。BigQuery の費用を管理するためのその他のベスト プラクティスについては、BigQuery で費用を抑えるを確認することをおすすめします。
フィールド タイプ 説明
billing_account_id 文字列

使用量が関連付けられている Cloud 請求先アカウント ID。

販売パートナー向け: Cloud Billing サブアカウントで生成された使用料金データの場合、これはサブアカウントの ID になります。親である販売パートナーの Cloud 請求先アカウントの ID ではありません。

invoice.month 文字列

費用項目を含む請求書の年と月(YYYYMM)。たとえば、「201901」は 2019 年 1 月に相当します。

このフィールドを使用して、請求書の合計金額を取得できます。BigQuery への Cloud Billing エクスポートに対するクエリの例をご覧ください。

cost_type 文字列

この明細が表す費用のタイプ(通常、税、調整、または丸め誤差)。

service.id 文字列 使用量が関連付けられているサービスの ID。
service.description 文字列 Cloud Billing データを報告した Google Cloud サービス。
sku.id 文字列 サービスが使用するリソースの ID。SKU の詳細な一覧については、Google Cloud SKU をご覧ください。
sku.description 文字列 サービスで使用されるリソースタイプの説明。たとえば、Cloud Storage のリソースタイプは Standard Storage US です。
usage_start_time タイムスタンプ 指定された費用の計算が開始された時間(時間単位)すべてのサービスの使用量とコストは時間単位で表示されます。つまり、長時間実行されるサービスの場合、作業時間が複数の時間単位のウィンドウにまたがります。

詳細については、BigQuery ドキュメントの Timestamp データ型に関する説明をご覧ください。以下のエクスポートされたデータと請求書の相違もご覧ください。

usage_end_time タイムスタンプ 指定された費用の計算が終了した時間(時間単位)すべてのサービスの使用量とコストは時間単位で表示されます。つまり、長時間実行されるサービスの場合、作業時間が複数の時間単位のウィンドウにまたがります。

詳細については、BigQuery ドキュメントの Timestamp データ型に関する説明をご覧ください。以下のエクスポートされたデータと請求書の相違もご覧ください。

project 構造体 project には、ID、番号、名前、祖先の番号、ラベルなど、Cloud Billing プロジェクトを記述するフィールドが含まれます。
project.id 文字列 Cloud Billing データを生成した Google Cloud プロジェクトの ID。
project.number 文字列 Cloud Billing データを生成した Google Cloud プロジェクトの一意の識別子(内部で生成されて匿名化される)。サポートケースや他のお客様とのコミュニケーションでは、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 プロジェクトのラベルを構成する Key-Value ペアの Key の部分です。ラベルの使用について詳しくは、ラベルの使用についての記事をご確認ください。
project.labels.value 文字列 ラベルがある場合、使用量が発生した Google Cloud プロジェクトのラベルを構成する Key-Value ペアの Value の部分です。ラベルの使用について詳しくは、ラベルの使用についての記事をご確認ください。
labels.key 文字列 ラベルがある場合、使用量が発生した Google Cloud リソースのラベルを構成する Key-Value ペアの Key の部分です。ラベルの使用について詳しくは、ラベルの使用についての記事をご確認ください。
labels.value 文字列 ラベルがある場合、使用量が発生した Google Cloud リソースのラベルを構成する Key-Value ペアの Value の部分です。ラベルの使用について詳しくは、ラベルの使用についての記事をご確認ください。
system_labels.key 文字列 システムラベルが存在する場合、使用量が発生したリソースのシステムラベルを構成する Key-Value ペアの Key の部分です。使用可能なシステムラベルもご覧ください。
system_labels.value 文字列 システムラベルが存在する場合、使用量が発生したリソースのシステムラベルを構成する Key-Value ペアの 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 浮動小数点数 クレジットが適用される前の使用料(小数点以下 6 桁の精度で)。クレジットを含む合計費用を算出するには、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 Maps Platform の SKU に関連付けられたクレジットの構造と値を記述するフィールドが含まれています。
credits.id 文字列 存在する場合は、クレジットがプロダクトの SKU に関連付けられていることを示します。credits.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: VM 使用量に応じて大幅な割引価格が適用される Compute Engine 用に購入したリソースベースの確約利用契約。
  • 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 請求先アカウントに適用されたクレジットの説明。
credits.amount 浮動小数点数 使用量に適用されるクレジットの金額。
adjustment_info 構造体 adjustment_info には、Cloud 請求先アカウントに関連付けられた費用項目の調整の構造と値を記述するフィールドが含まれています。

adjustment_info 値は、費用項目が Cloud Billing の変更に対して生成された場合にのみ表示されます。変更は、修正や修正以外の理由で発生します。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: 1 つのお支払いアカウントから別のお支払いアカウントに資金移動するときの調整。
  • 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 に接続されているリソース。特定のキーのリソースに付加できる値は、常に 1 つだけです。

tags.inherited ブール値

タグ バインディングが継承されるか(Tags Inherited = True)、直接 / 非継承か(Tags Inherited = False)を示します。リソース階層で、親リソースにタグ バインディングを作成できます。

tags.namespace 文字列

タグキーと値を定義するリソース階層を表します。名前空間をタグキーとタグ値の略称と組み合わせることで、タグキーまたはタグ値にグローバルに一意の完全修飾名を作成できます。

詳細な使用料金データのエクスポートに使用できるフィールド
resource 構造体

サービスの使用量を生成するサービス リソース(仮想マシンや SSD など)に関連する情報の構造と値を記述するフィールド。

resource.global_name 文字列

関連する使用量を生成したリソースのグローバルで一意なサービス ID。

resource.name 文字列

関連する使用量を生成したリソースのサービス固有の ID。ユーザーが生成した値を入力できます。

price 構造体

使用量に対して請求される料金に関連する構造と値を記述するフィールド。

price.effective_price 数値

Google Cloud または Google Maps Platform の SKU に対して課金される料金と、SKU の料金ティア。Cloud 請求先アカウントにカスタム契約料金がある場合、これは請求先アカウントに固有の料金です。それ以外の場合、これは SKU または SKU 階層の正規価格です。

price.tier_start_amount 数値

SKU の料金ティアの下限の単位。たとえば、0~100 ユニット、101~1,000 ユニット、1,001 以上のユニットなど、3 つの料金ティアがある SKU では、SKU の料金ティアの開始単位数量を表す price.tier_start_amount フィールドに、SKU の 3 つの料金行(0、101、1,001)が表示されます。

料金ティアの詳細
price.unit String

料金が指定され、リソースの使用量が測定される単位(ギビバイト、テビバイト、月、年、ギビバイト時間、ギビバイト月、カウントなど)。price.unit フィールドの値は usage.pricing_unit フィールドの値と一致します。

price.pricing_unit_quantity 数値

SKU の料金階層の単位数量。たとえば、1000000 バイトあたり $1 の料金階層の場合、この列には 1000000 が表示されます。

使用料金の標準的なデータと詳細データを把握する

以降のセクションでは、BigQuery にエクスポートされる標準と詳細な使用料金データについて説明します。

ラベルについて

BigQuery データセットにはラベルの列が表示されますが、現在のリリースではラベル値が空になるものがあります。ラベルのエクスポート データが取り込まれる時間はサービスに応じて異なり、各サービスが提供するタイミングによって決まります。

使用可能なシステムラベル

システムラベルは、使用量データを生成したリソースに関する重要なメタデータを含む Key-Value ペアです。以下のシステムラベルが自動的に適用されます。

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×1,024 MB/GB)、custom-2-2048 の場合は 2048 仮想マシンで使用可能なメモリ量(MB 単位)。
compute.googleapis.com/is_unused_reservation true、false ゾーンの予約で予約されているものの、使用されていない、予約された使用量を表します。

エクスポートされたデータと請求書の相違

Google Cloud サービスが Cloud Billing プロセスに使用量データと費用データを報告する間隔はさまざまです。このため、使用量が報告されるまでに多少の遅延(最大数日間)が生じる場合もあります。遅れて報告された使用量がその月の請求書に含まれず、翌月の請求書に繰り越される場合があります。ただし、使用量のタイムスタンプは、Cloud Billing プロセスに報告された実際の使用日時を表します。

タイムスタンプ フィールドを使用して費用を照会すると、返されたデータに、報告が遅れたために同じ月に生成された請求書に含まれていない使用量が含まれていることがあります。このため、返された 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 日以降に記録された費用については、$10 が example-project の $6 と test-project の $4 に分割されます。

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 データに追加されます。次の列以外は変更されません。

  • cost
  • credit
  • usage.amount
  • export_time

新しいデータを確認するには、クエリで export_time を取得します。

エクスポート データでは、Cloud Billing の調整とそれに関連する税金の請求月には、調整が発行された月が反映されます。ただし、調整の発行月とは異なる月の請求書に調整が適用される場合があります。調整が適用されるかどうかと、その適用場所については、Google Cloud Console のドキュメント ページの請求書またはクレジットメモ / デビットメモをご覧ください。調整の分析と適用方法について詳しくは、メモと調整についてをご覧ください。

タグについて

<atrack-type="tasks"track-name="internallink"track-metadata-position="body" l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="iUWjxJRweELRfbeZQy/YQwc9zZofjBXGTjbrIegRjdnVz6nUhi3jRGB4DwvsPvv3"> タグは、直接または継承によりリソースに適用できる Key-Value ペア形式のリソースです。タグは、チャージバック、監査、その他の費用の割り当て分析に使用できます。タグには堅牢な権限モデルがあり、継承、一元管理、命名法の標準化、ポリシー エンジンの統合に対応しています。一方 <atrack-type="tasks"track-name="internallink"track-metadata-position="body" l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="VL5eQBNGQ+VFZ8Ic4FEC0gc9zZofjBXGTjbrIegRjdloWDKjJtF205jHQgIOO0QT5mGjae8t5DMH2GXg6ydeww=="> ラベルはリソースにアノテーションを付けることができる別のツールです。</atrack-type="tasks"track-name="internallink"track-metadata-position="body"></atrack-type="tasks"track-name="internallink"track-metadata-position="body">

タグは、Compute Engine インスタンス内のリソースレベルのタグのみに制限されます。BigQuery のエクスポートにタグが反映されるまでに 1 時間ほどかかることがあります。1 時間以内にタグが追加または削除された場合、あるいはリソースの存在時間が 1 時間未満の場合は、エクスポートに表示されない可能性があります。

タグのデータは、リソース、プロジェクト、フォルダ、組織の BigQuery Export に表示されます。

利用可能なタグ

リソース、プロジェクト、フォルダ、組織の標準費用と詳細費用のエクスポートには、タグデータのタグキー、タグ値、タグ継承、タグ名前空間の各フィールドが含まれます。

詳細な使用料金のクエリ例

このセクションでは、BigQuery にエクスポートされた Cloud Billing 詳細な使用料金データをクエリする方法の例を示します。

詳細な使用料金のスキーマには、標準的な使用料金のスキーマのすべてのフィールドが含まれるため、BigQuery にエクスポートされた標準データに対して提供されるクエリの例は、エクスポートされた詳細なデータでも機能します。なお、標準的なクエリの例は、詳細な使用料金のエクスポート オプションで提供されるリソースレベルの情報を取得するためのものではありません。詳細なデータ用のクエリを作成する場合、標準的なクエリの例をテンプレートとして使用し、テーブル名を更新して、詳細な使用料金のスキーマで使用可能な任意のフィールドを追加できます。

詳細な使用料金のクエリ例で使用される一般的な値

このセクションのクエリの例では、[テーブル名] に値 project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX を使用する

請求書のリソースレベルの費用を返す

次のクエリで、エクスポートされた課金データを使用してリソースレベルの料金と請求書のクレジット額を表示する 2 つの方法を説明します。

  • 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
;

たとえば、前のクエリの結果は次のようになります。

Row month name total 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

請求月ごとの各リソースの費用タイプ別の詳細を返す

次のクエリでは、各月の resource.name ごとの cost_type ごとの合計が表示されます。料金タイプには、通常料金、税金、調整額、丸め誤差があります。リソースレベルの項目に関連付けられていない費用は、その月の名前 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
;

たとえば、前のクエリの結果は次のようになります。

Row month cost_type name total 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.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.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.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 `ivory-vim-309221.billing_export_dataset.gcp_billing_export_resource_v1_018ADD_3CEBBB_A4DF22`, 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 personalization 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.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 コンソールで利用可能な費用と料金のレポート