課金データの BigQuery へのエクスポート

費用をモニタ、分析、最適化するためのツールが開発管理の重要な要素になっています。BigQuery への課金データのエクスポートを使用すると、終日にわたって、日々の使用量と費用の見積もりを、指定した BigQuery データセットにエクスポートできます。その課金データには、BigQuery からアクセスできます。このエクスポート メソッドでは、データを JSON ファイルにエクスポートすることもできます。

CSV および JSON 形式へのファイルのエクスポートは定期的に実行することもできます。ただし、ファイルを定期的にエクスポートする場合は、BigQuery にエクスポートする場合より、取得できるデータセットが小規模になります。ファイルの定期エクスポートと取得できるデータの詳細については、課金データのファイルへのエクスポートをご覧ください。

BigQuery への課金データのエクスポートを有効にする方法

BigQuery への課金データのエクスポートを有効にするには:

  1. Google Cloud Platform Console に移動します。
  2. 左側のメニューを開き、[お支払い] を選択します。
  3. 請求先アカウントが複数ある場合は、現行プロジェクトの請求を管理するために、[リンクされた請求先アカウントに移動] を選択します。別の請求先アカウントを見るには、[請求先アカウントを管理] を選択します。
  4. [課金データのエクスポート] をクリックします。
  5. [BigQuery エクスポート] を選択します。
  6. [プロジェクト] リストから、BigQuery データセットが保存されているプロジェクトを選択します。BigQuery データセットがまだ作成されていない場合は、作成するように求められます。
  7. 必要に応じて、次の手順に沿って新しいデータセットを作成します。

    1. BigQuery ウェブ UI で、プロジェクト名の横にある下矢印をクリックし、[新しいデータセットの作成] をクリックします。
    2. データセットの [データセット ID]、[データの場所]、[データの有効期限] を指定し、[OK] をクリックします。
  8. Console の [課金データのエクスポート先データセット] リストから、データをエクスポートするデータセットを指定します。データセットを作成したばかりの場合は、新しいデータセットの名前を選択します。

  9. [BigQuery エクスポートを有効化] をクリックします。

BigQuery へのエクスポートを有効にしてから、実際にデータが表示されるまで、数時間かかることがあります。課金データは定期的に BigQuery へ自動エクスポートされますが、BigQuery の更新頻度は使用しているサービスによって異なります。BigQuery の読み込みは ACID に準拠しているため、データの読み込みが完了する前に BigQuery 課金データのエクスポート データセットにクエリを実行すると、部分的に読み込まれたデータが取得される可能性があります。BigQuery の特性については、こちらをご覧ください

課金データのエクスポート テーブルのバージョンについて: オリジナルと v1

BigQuery へのデータ エクスポートをいつ有効にしたかによって、データセットに複数のテーブルが存在する場合があります。この機能が 一般提供(GA) としてリリースされた後(2017 年 11 月中旬以降)に BigQuery へのデータ エクスポートを有効にした場合、v1 バージョンのみが表示されます。その場合は、このセクションの残りの部分は無視してかまいません。

この機能がベータステージの段階で BigQuery へのデータ エクスポートを有効にした場合、エクスポートされた課金データはデータセットの 2 つの異なるテーブルに保存されています。テーブルでは、同じデータにオリジナルと v1 の 2 つの異なるバージョンが存在しています。

ベータ版の参加者には、v1 スキーマへの移行のため課金データを引き続き分析できるように、一定の期間、両方の形式でデータを提供します。新しい課金データは両方の BigQuery テーブルに自動的にエクスポートされます。

データのバージョンはテーブル名で示されます。

  • オリジナル バージョン: gcp_billing_export_BILLING_ACCOUNT_ID
  • v1 バージョン: gcp_billing_export_v1_BILLING_ACCOUNT_ID

オリジナル バージョンと v1 の違い

エクスポート スキーマが変更されています。他の Google Cloud Platform と整合性を維持するため、一部の列の名前が変更されました。また、費用に関する有用な情報を提供するため、一部の列が追加されています。

スキーマ変更の概要:

  • product 列の名前が service.description に変更されました。
  • resource_type 列の名前が sku.description に変更されました。
  • start_time 列の名前が usage_start_time に変更され、end_time 列の名前が usage_end_time に変更されました。
  • service.id 列が追加されました。
  • sku.id 列が追加されました。
  • export_time 列が追加されました。

sku.id 列と Google Cloud Billing Catalog API を使用すると、Google Cloud Platform 料金ページで公開されている定価と各項目を関連付けることができます。また、export_time 列を使用すると、課金データが最後に更新された時間を確認できます。

BigQuery の課金データ

次の表に、BigQuery にエクスポートされる課金データの内容を記載します。

フィールド 説明
billing_account_id String 使用量が関連付けられている請求先アカウント ID。
invoice.month String

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

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

cost_type String

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

service.id(v1 のみ) String 使用量が関連付けられているサービスの ID。
service.description(v1)
product(オリジナル)
String 課金データを報告した Google Cloud Platform サービス。
sku.id(v1 のみ) String サービスが使用するリソースの ID。SKU の詳細な一覧については、GCP SKU をご覧ください。
sku.description(v1)
resource_type(オリジナル)
String サービスで使用されるリソースタイプの説明。たとえば、Cloud Storage のリソースタイプは Standard Storage US です。
usage_start_time(v1)
start_time(オリジナル)
Timestamp サービス使用開始時を示す UNIX タイムスタンプ。詳細については、BigQuery ドキュメントの Timestamp データ型に関する説明をご覧ください。以下のエクスポートされたデータと請求書の相違もご覧ください。
usage_end_time(v1)
end_time(オリジナル)
Timestamp サービス使用終了時を示す UNIX タイムスタンプ。詳細については、BigQuery ドキュメントの Timestamp データ型に関する説明をご覧ください。以下のエクスポートされたデータと請求書の相違もご覧ください。
project.id String 課金データを生成したプロジェクトの ID。
project.name String 課金データを生成したプロジェクトの名前。
project.ancestry_numbers String 指定された project.id(たとえば、my-project-123)で識別されるプロジェクトのリソース階層に含まれる祖先。

たとえば、/ParentOrgNumber/ParentFolderNumber/ のようになります。詳細については、リソース階層をご覧ください。

project.labels.key String ラベルが存在する場合は、使用量が発生したプロジェクト上のラベルを構成する key:value ペアの key の部分です。ラベルの使用について詳しくは、ラベルの使用をご覧ください。
project.labels.value String ラベルが存在する場合は、使用量が発生したプロジェクト上のラベルを構成する key:value ペアの value の部分です。ラベルの使用について詳しくは、ラベルの使用をご覧ください。
labels.key String ラベルが存在する場合は、使用量が発生したリソース上のラベルを構成する key:value ペアの key の部分です。ラベルの使用について詳しくは、ラベルの使用をご覧ください。
labels.value String ラベルが存在する場合は、使用量が発生したリソース上のラベルを構成する key:value ペアの value の部分です。ラベルの使用について詳しくは、ラベルの使用をご覧ください。
system_labels.key String システムラベルが存在する場合は、使用量が発生したリソースのシステムラベルを構成する Key-Value ペアの key の部分です。下の使用可能なシステムラベルもご覧ください。
system_labels.value String システムラベルが存在する場合は、使用量が発生したリソースのシステムラベルを構成する Key-Value ペアの value の部分です。下の使用可能なシステムラベルもご覧ください。
location.location String 国、リージョンまたはゾーンレベルでの使用場所。特定のロケーションのないリソースは global です。詳しくは、リージョンとゾーンをご覧ください。
location.country String location.location が国、リージョンまたはゾーンの場合、このフィールドは国になります(例: US)。詳しくは、リージョンとゾーンをご覧ください。
location.region String location.location が国またはリージョンの場合、このフィールドはリージョンになります(例: us-central1)。詳しくは、リージョンとゾーンをご覧ください。
location.zone String location.location がゾーンの場合、このフィールドはゾーンになります(例: us-central1-a)。詳しくは、リージョンとゾーンをご覧ください。
cost Float クレジットが適用される前の使用料。クレジット適用後の費用を算出するには、credits.amount を費用に加える必要があります。詳しくは、このクエリ例をご覧ください。
currency String 費用の請求で使用されている通貨。詳細については、現地通貨での請求と支払いをご覧ください。
currency_conversion_rate Float 米ドルから現地通貨への為替レート。つまり、cost ÷ currency_conversion_rate が米ドルでの金額になります。
usage.amount Float 使用された usage.unit の量。
usage.unit String リソースの使用状況を測定する基本単位。たとえば、標準ストレージの基本単位はバイト秒です。
usage.amount_in_pricing_units Float 使用された usage.pricing_unit の量。このフィールドは、2018 年 1 月 22 日から現在までのデータを返します。
usage.pricing_unit String Catalog API(現在はベータ版)でリソースの使用状況を測定する単位。このフィールドは、2018 年 1 月 22 日から現在までのデータを返します。
credits.name String 請求先アカウントに適用されたクレジットの説明。
credits.amount Float 使用量に適用されるクレジットの金額。クレジットは常に負の金額です。
export_time(v1 のみ) Timestamp 新しい追加データに関連する処理時間。これは、新しいエクスポートごとに常に増加します。
以下のエクスポートされたデータと請求書の相違もご覧ください。

ラベルについて

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 * 1024 MB/GB)、custom-2-2048 の場合は 2048 仮想マシンで使用可能なメモリ量(MB 単位)。

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

タイムスタンプ フィールドのクエリには、請求書に含まれていない、後から報告された使用量が含まれている場合があります。そのため、請求書に直接対応付けられていない可能性があります。

タイムスタンプ フィールドには次のものが含まれます。

  • usage_start_time(v1)または start_time(オリジナル)
  • usage_end_time(v1)または end_time(オリジナル)
  • export_time

エラーと調整

万が一、課金データにエラーが含まれている場合や調整が必要な場合は、エラーを否定するデータが課金データに追加されます。次の列以外は変更されません。

  • cost
  • credit
  • usage.amount
  • export_time

新しいデータかどうかを確認する場合は、export_time(v1 のみ)にクエリを実行します。オリジナル バージョンを使用している場合は、次のようなクエリを使用できます。

SELECT partition_id, MSEC_TO_TIMESTAMP(last_modified_time)
FROM [dataset_name.table_name$__PARTITIONS_SUMMARY__]

上のクエリの例では、標準 SQL はパーティション デコレータの区切り文字($)をサポートしていないため、レガシー SQL を使用する必要があります。

このページは役立ちましたか?評価をお願いいたします。