課金エクスポートの移行

本日(10/13)、たまたまエクスポート先のテーブルを見る機会があったのですが、
v1とかいうテーブルが増えました。
gcp_billing_export_XXXXXX_XXXXXX_XXXXXXXX
gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXXXXGCPには自動的に日次の課金データをBigQueryにエクスポートする機能があります。 GCPのコンソールから [ お支払い > 課金データのエクスポート ]


v1テーブルのパーティションを調べて見ると、20171011から作成されてます。
SELECT partition_id FROM [project_id:dataset.gcp\_billing\_export\_v1\_XXXXXX\_XXXXXX\_XXXXXXXX$__PARTITIONS_SUMMARY__]
20171011
20171012
20171013こちらがドキュメントです。
https://cloud.google.com/billing/docs/how-to/export-data-bigquery
要点をまとめると、下記です。
請求データのエクスポート機能はベータ版で、v1が新バージョン。
新旧でリネームされたカラムと追加されたカラムがある。
旧バージョンと新バージョンの移行期間は3ヶ月で、2018年1月に旧バージョンのエクスポートは停止される。
移行期間中は両バージョンにエクスポートされ、新バージョン分の料金も発生する。Data Studioなどのツールで課金データを参照している場合は、
2018年1月までに参照先を新バージョンに切り替えておく必要がありますね。
スキーマの変更点
リネーム
| product → service_description |
|---|
| ex.) BigQuery |
| resurce → sku_description |
|---|
| ex.) Total Storage |
| start_time → usage_start_time |
|---|
| ex.) 2017-10-11 14:00:00 UTC |
| end_time → usage_end_time |
|---|
| ex.) 2017-10-11 15:00:00 UTC |
追加
| service_id |
|---|
| ex.) 24E6-581D-38E5 ※ BigQueryだったら24E6-581D-38E5 |
サービスの課金対象単位 (※1)
| sku_id |
|---|
| ex.) 6132-2FF0-A0A4 |
請求日時
| export_time |
|---|
| ex.) 2017-10-12 11:43:53 UTC |
※1
https://cloud.google.com/skus/?currency=JPY
https://cloud.google.com/billing/reference/rest/v1/services.skus/list
新旧で同じパーティションのレコード件数を調べましたが、差分がありました。
差分のデータは前後のパーティションに存在するので、新旧でエクスポートの区切りが異なるようです。
この差分の吸収方法についても書かれています。
旧バージョンのテーブルに対して以下を実行
SELECT partition_id, MSEC_TO_TIMESTAMP(last_modified_time)
FROM [project_id:dataset.gcp_billing_export_XXXXXX_XXXXXX_XXXXXX$__PARTITIONS_SUMMARY__]
20171012 | 2017-10-13 08:29:36 UTC
20171011 | 2017-10-12 12:14:32 UTC 旧バージョンのパーティション20171012は、新バージョンのテーブルの export_time <= TIMESTAMP('2017-10-13 08:29:36')までが対象という事らしいです。
たまたま見つけてよかったなと。

