料金データのエクスポートの構造

このドキュメントでは、BigQuery の各テーブルにエクスポートされる Cloud Billing 料金データのスキーマのリファレンス情報について説明します。

料金データのスキーマ

BigQuery データセットで、Cloud 請求先アカウントの料金データは cloud_pricing_export というデータテーブルに読み込まれます。

次の情報は、BigQuery にエクスポートされる Cloud 請求先アカウントの料金データのスキーマについて説明しています。

フィールド タイプ 説明
export_time タイムスタンプ Cloud Billing データの追加に関連する処理時間。 これは、新しいエクスポートごとに常に増加します。
pricing_as_of_time タイムスタンプ Cloud Billing アカウントに適用される料金データは、1 日に 1 回生成され、BigQuery にエクスポートできるように準備を行います。これは、料金データが生成されるときの日単位のタイムスタンプです。
billing_account_id 文字列 使用量が関連付けられている Cloud 請求先アカウント ID。
billing_account_name 文字列

料金が関連付けられている Cloud 請求先アカウントの名前。

business_entity_name 文字列 SKU を提供するサービスの Google サービス ファミリーの名前。値には、GCP(Google Cloud)またはマップ(Google Maps Platform)などがあります。
service.id 文字列 Cloud Billing データを報告した Google Cloud サービスまたは Google Maps Platform API の ID。たとえば、6F81-5844-456A
service.description 文字列 Cloud Billing データを報告した Google Cloud サービスまたは Google Maps Platform API の説明文。たとえば、Compute Engine
sku.id 文字列 サービスで使用されるリソース SKU の一意の識別子。たとえば、2E27-4F75-95CD。SKU の詳細な一覧については、Google Cloud SKU をご覧ください。
sku.description 文字列 サービスで使用されるリソース SKU の、人が読める形式の説明。たとえば、「南北アメリカで動作している事前定義の N1 インスタンス コア」
sku.destination_migration_mappings 文字列の配列 この SKU の移行先の SKU 名。
product_taxonomy 文字列の配列 サーバーレス、Cloud Run、TaskQueue、オンデマンド VM、Cores: Per Core など、SKU に適用される商品カテゴリのリスト。
geo_taxonomy 構造体 SKU に適用される地理的メタデータ(us-east4EU などのマルチ リージョン)。
geo_taxonomy.type 文字列 SKU に関連付けられている地理的メタデータの種類。指定できる値は次のとおりです。
  • GLOBAL - リージョンなし
  • REGIONAL - 1 つのリージョンがあります
  • MULTI_REGION - 2 つ以上のリージョンがある
geo_taxonomy.regions 文字列の配列 その SKU に関連付けられている Google Cloud リージョン。例: Europe-west2 または US

リージョンは、ロンドンなどの特定の地理的な場所となります。 マルチリージョンは、米国などの、2 つ以上の地理的な場所を含む広い地理的なエリアです。

pricing_unit 文字列 料金が設定されている使用量の単位の略語です(GiBy.mo など)。
pricing_unit_description 文字列 人が読める形式の使用量の単位の説明(GiB-月など)。
account_currency_code 文字列 Cloud 請求先アカウントが動作するように構成する通貨。ISO 4217 で定義されている 3 文字の通貨コードを使用します。詳細については、請求と自動支払いの現地通貨をご覧ください。
currency_conversion_rate 文字列 Cloud 請求先アカウントが動作するように構成されている米ドルから現地通貨への為替レート。Cloud 請求先アカウントの通貨が USD の場合、為替レートのデフォルト値は 1.0 です。

Cloud Billing の費用が米ドル以外の通貨で請求されている場合、使用料金は、cost ÷ currency_conversion_rate = 米ドルでの使用料の式で米ドルに換算できます。

現地通貨で請求される場合、料金の換算には大手金融機関の換算レートが使用されます。これには、米ドル以外の通貨で請求される追加料金が含まれます。Google では、pricing_as_of_time に適用されるレートを使用しています。

list_price 構造体

pricing_as_of_time 時点で有効な Google Cloud または Google Maps Platform の SKU と SKU の料金階層

list_price には、次のような正規価格の構造と値を記述するフィールドが含まれています。

正規価格は list_price.tiered_rates.usd_amount で確認できます。

すべての顧客について、正規価格データが生成され、エクスポートされます。Cloud 請求先アカウントにカスタムの契約料金が設定されている場合は、billing-account-specific 料金データもエクスポートされます。

billing_account_price 構造体

契約料金が設定されている場合は、これは Cloud 請求先アカウントにリンクされている契約による、カスタム SKU 価格です。

billing_account_price には、Google Cloud、Google Maps Platform の SKU、SKU の料金階層のカスタム契約価格の構造と値を記述するフィールドが含まれます。billing_account_price には以下の対象が含まれます。

契約料金(Cloud 請求先アカウントに適用される場合)は billing_account_price.tiered_rates.usd_amount で確認できます。

price_info 構造体 契約料金に関する背景情報。
price_info.price_reason 文字列

契約価格の根拠に関する背景情報。

理由は次のとおりです。

  • DEFAULT_PRICE: デフォルトの価格は SKU の現在の正規価格です。
  • FIXED_PRICE: 契約期間中に適用される SKU の固定料金。
  • FIXED_DISCOUNT: 正規価格からの割引率。適用日の時点での正規価格に関連付けられます。
  • FLOATING_DISCOUNT: 現在の正規価格からの割引率(特定の日付の時点での正規価格には関連付けられません)。
  • MIGRATED_PRICE: これは他の SKU から移行された価格に適用されます。
  • MERGED_PRICE: 複数のソースからの統合後の SKU 価格。たとえば、結合された階層では、個々の階層が、さまざまな割引タイプのさまざまなソースから統合されることがあります。
  • LIST_PRICE_AS_CEILING: これはオプションの契約機能であり、2022 年 3 月 21 日以降の新しい契約で使用できます。有効にすると、現在の正規価格がカスタム固定価格より低い場合、SKU 価格に正規価格(DEFAULT_PRICE)が使用されます。契約のすべての固定価格 SKU(FIXED_PRICE、FIXED_DISCOUNT、MIGRATED_PRICE、MERGED_PRICE など)に適用されます。
  • CONTRACTED_PRICE_PROTECTION: これは、契約で保護されている SKU 価格に適用されます。これはほとんど使用されません。
price_info.discount_percent 数値 契約料金が割引率(FIXED_DISCOUNT または FLOATING_DISCOUNT)の結果に基づく場合、これが使用される割引率です。
price_info.discount_percent_fixed_date 日付 特定の日付(FIXED_DISCOUNT)に関連付けられている割引率が適用された契約料金の場合は、この日付が使用されます。
price_info.discount_migrated_from 文字列 他の SKU から移行された契約料金の割引(MIGRATED_PRICE)の場合、これが割引のソース SKU です。SKU が 2 つに分割されている場合がありますが、その場合、割引は古い SKU から新しい SKU に移行されます。
aggregation_info 構造体 1 つの SKU の 料金階層の集計レベルと間隔を表します。
aggregation_info.aggregation_level 文字列 料金階層の費用を計算するために使用量が集計されるレベル。

以下のレベルがあります。

  • ACCOUNT: 複数階層の SKU を示します。料金階層の SKU 使用量は、1 つの Cloud 請求先アカウントのすべてのプロジェクトで集計されます。
  • PROJECT: 複数階層料金の SKU を示します。料金階層の SKU 使用量は、プロジェクトごとに集計されます。
  • UNKNOWN_AGGREGATION_LEVEL: 単一階層の料金の SKU を示します。これは、階層化されていない料金の SKU のデフォルト値です。
aggregation_info.aggregation_interval 文字列 料金階層の費用を計算するために使用量が集計される間隔。

間隔は以下のとおりです。

  • ONE_DAY: 複数階層料金の SKU を示します。料金階層の SKU 使用量は、毎日集計されます。
  • ONE_MONTH: 複数階層料金の SKU を示します。料金階層の SKU 使用量は、毎日集計されます。
  • UNKNOWN_AGGREGATION_INTERVAL: 単一階層の料金の SKU を示します。これは、階層化されていない料金の SKU のデフォルト値です。
tiered_rates 文字列の配列 SKU の価格(米ドル)と Cloud 請求先アカウントが使用するように構成されている通貨で表した SKU の料金などの料金階層に関する情報。

一部の SKU には 1 つの料金階層のみが存在します。SKU に複数の料金階層がある場合、各料金階層は異なる行として表示されます。tiered_rates.start_usage_amount を使用して、複数の料金階層を持つ SKU を識別できます。

tiered_rates.pricing_unit_quantity Float SKU の料金階層の単位数量。たとえば、1000000 バイトあたり $1 の料金階層の場合、この列には 1000000 が表示されます。
tiered_rates.start_usage_amount Float この料金階層の最低料金(単価)。たとえば、1~100 ユニット、101~1000 ユニット、1001 以上のユニットなど、3 つの料金階層がある SKU では、[tiered_rates].start_usage_amount の値として、0、101、1001 の 3 つの価格の行が表示されます。
tiered_rates.usd_amount 数値 SKU の料金(米ドル)。
tiered_rates.account_currency_amount 数値 米ドルから currency_conversion_rate を使用して Cloud 請求先アカウントが使用するように構成された通貨に変換された SKU の階層価格。

この変換後の価格は、次の tiered_rates.usd_amount * currency_conversion_rate = tiered_rates.account_currency_amount 式を使用して計算されます。

現地通貨で請求される場合、料金の換算には大手金融機関の換算レートが使用されます。これには、米ドル以外の通貨で請求される追加料金が含まれます。Google では、pricing_as_of_time に適用されるレートを使用しています。

料金階層について

SKU の料金は、料金階層で指定されます。料金階層は、さまざまな階層レベルに基づく料金体系を示しています。一部の SKU は 1 つの料金階層のみを持ち、その他の SKU は複数の料金階層を持ちます。複数の料金階層で構成される SKU の例には次のものがあります。

  • 無料使用枠付きの SKU。たとえば、1~1,000 ユニットは無料です。1,001 以上のユニットは、それぞれ $1 の料金となります。
  • 階層内の使用量が超過すると、単価が引き下げられる SKU。たとえば、1~100 ユニットの単価は $5、101~1000 ユニットの単価が $4、1001 以上のユニットの単価は $3 に設定されます。

複数階層の料金に関する注意事項:

  • 階層の使用カウンタは、SKU の aggregation_interval(日単位または月単位)に基づいてゼロにリセットされます。

    • 米国とカナダの太平洋時間(UTC-8 または UTC-7)の毎日午前 0 時にリセットされる日単位の SKU。
    • カレンダー月(1 月、2 月など)の毎月 1 日に、米国とカナダの太平洋時間(UTC-8 または UTC-7)の午前 12 時にゼロにリセットされる月単位の SKU。
  • 階層は Cloud 請求先アカウントごとに独立して動作し、プロジェクトが同じ組織に属している場合や同じ法人に属している場合でも、複数の Cloud 請求先アカウントにまたがって集計されることはありません。

  • 階層は SKU ごとに独立して動作します。1 つの SKU の使用量は、その SKU の価格にのみ影響します。使用量が別の SKU の段階的料金に影響する SKU はありません。

  • 正規価格の SKU 料金階層と交渉による価格の料金階層が必ずしも一致するとは限らないのでご注意ください。このような状況はめったに発生しません。

  • SKU に複数の段階的料金がある場合、各 SKU 階層の価格は、料金表で個別の行として表示されます。tiered_rates.start_usage_amount を使用して、複数の料金階層を持つ SKU を識別できます。

  • クエリの作成方法によって、ネストしたデータまたはネストされていないデータとして SKU の料金階層を返すことができます。ネストされたデータとネストされていないデータの詳細については、以下の例をご覧ください

料金データクエリの例

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

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

料金クエリの例で使用している共通の値

このセクションのクエリの例では、次の値を使用しています。

  • テーブル名: project.dataset.cloud_pricing_export
  • SKU ID: 2DA5-55D3-E679(Cloud Run - リクエスト)

特定の SKU の正規価格を取得する

次の例は、指定した SKU の料金階層ごとに list_price を返すクエリを示しています。

標準 SQL

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

_PARTITIONTIME は、BigQuery によって自動生成されるフィールドで、データが属する日付を表します。_PARTITIONTIME の代わりに、Cloud Billing のエクスポートによって明示的に生成されるフィールド(pricing_as_of_time など)を使用できます。

pricing_as_of_time フィールドを使用するように構成された同じクエリを以下に示します。

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(pricing_as_of_time) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果

Row id description pricing_unit aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Requests COUNT ACCOUNT MONTHLY 1000000 0 0 0
          1000000 2000000 0.4 0.4

特定の SKU の正規価格を取得し、サービスの説明を含める

このセクションの 2 つの例は、指定された SKU の料金階層ごとに list_price を返し、SKU の説明とサービスの説明を含めるクエリを示しています。

  • 例 1 では、1 行ごとに 1 つの SKU が返され、料金階層はネストされたデータとして表示されています。
  • 例 2 は、データのネストを解除して、料金階層ごとに SKU あたり 1 行を返す様子を示しています。

例 1: ネストされたデータを返す

この例では、単一の SKU にクエリを実行して list_price データを返します。この SKU には複数の料金階層があります。正規価格フィールドの値は、SKU ID 行の下にネストされた個々の行に表示されます。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果:

Row sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run ACCOUNT MONTHLY 1000000 0 0 0
            1000000 2000000 0.4 0.4

例 2: 同じテーブルに結合されたネストされていないデータを返す

この例では、単一の SKU にクエリを実行して list price を返します。SKU には、複数の料金階層があります。このクエリでは、UNNEST 演算子を使用して tiered_rates 配列をフラット化し、フィールドを同じテーブルに結合して、料金階層のそれぞれを 1 行にします。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果:

Row sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

商品分類と地域分類を使用して SKU をクエリする

  • 商品分類は、サーバーレス、Cloud Run、オンデマンド VM などの SKU に適用される商品カテゴリのリストです。
  • 地域分類は、タイプとリージョンの値で構成され、SKU に適用される地理的メタデータです。

SKU の商品分類を取得する

次の例は、指定された SKU の product_taxonomy リストを返すクエリを示しています。ここでは、SKU ID = 2DA5-55D3-E679(Cloud Run - リクエスト)です。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果:

Row sku_id sku_description service_id service_description product_taxonomy
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run GCP
        Serverless
        Cloud Run
        Other

特定の商品分類に関するすべての SKU を取得する

次の例は、指定した product_taxonomy と一致するすべての SKU を返すクエリを示しています。このクエリでは、product taxonomy 値として Serverless を指定しています。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
     AND "Serverless" in UNNEST(product_taxonomy)
LIMIT 10
;

クエリ結果:

Row sku_id sku_description service_id service_description product_taxonomy
1 0160-BD7B-4C40 Cloud Tasks Network Intra Region Egress F3A6-D7B7-9BDA Cloud Tasks GCP
        Serverless
        Cloud Tasks
        Other
2 FE08-0A74-7AFD Cloud Tasks GOOGLE-API Egress F3A6-D7B7-9BDA Cloud Tasks GCP
        Serverless
        Cloud Tasks
        Other
3 A81A-32A2-B46D Task Queue Storage Salt Lake City F17B-412E-CB64 App Engine GCP
        Serverless
        GAE
        Other
        TaskQueue

特定の地域分類と商品分類に関するすべての SKU を取得する

次の例は、指定した geo_taxonomy リージョンと、指定した product_taxonomy と一致するすべての SKU を返すクエリを示しています。ここでは、region = us-east4、product_taxonomy = VMs On Demand です。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       geo_taxonomy,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND "VMs On Demand" in UNNEST(product_taxonomy)
      AND geo_taxonomy.type = "REGIONAL"
      AND "us-east4" in UNNEST (geo_taxonomy.regions)
;

クエリ結果:

Row sku_id sku_description service_id service_description geo_taxonomy.type geo_taxonomy.regions product_taxonomy
1 9174-81EE-425B Sole Tenancy Premium for Sole Tenancy Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB
2 C3B9-E891-85ED Sole Tenancy Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB
3 6E2A-DCD9-87ED N1 Predefined Instance Ram running in Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Compute
            GCE
            VMs On Demand
            Memory: Per GB

複数の料金階層を持つ SKU の正規価格を返す

BigQuery データは、テーブル名別にクエリします。クエリの FROM 句で使用されるテーブル名は、project.dataset.BQ_table_name の 3 つの値を使用して決定されます。

以下の例で使用している共通の値:

  • テーブル名: project.dataset.cloud_pricing_export
  • SKU ID: 2DA5-55D3-E679(Cloud Run - Requests)

例 1: ネストされたデータを返す

この例では、単一の SKU にクエリを実行して list_price データを返します。この SKU には複数の料金階層があります。正規価格フィールドの値は、SKU ID 行の下にネストされた個々の行に表示されます。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果:

Row sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run ACCOUNT MONTHLY 1000000 0 0 0
            1000000 2000000 0.4 0.4

例 2: 同じテーブルに結合されたネストされていないデータを返す

この例では、単一の SKU にクエリを実行して list price を返します。SKU には、複数の料金階層があります。このクエリでは、UNNEST 演算子を使用して tiered_rates 配列をフラット化し、フィールドを同じテーブルに結合して、料金階層のそれぞれを 1 行にします。

標準 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

クエリ結果:

Row sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 Requests 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

Google Cloud コンソールで利用可能な費用と料金のレポート