Dokumen ini memberikan informasi referensi untuk skema data biaya penggunaan standar Penagihan Cloud yang diekspor ke setiap tabel di BigQuery.
Skema data biaya penggunaan standar
Dalam set data BigQuery, data biaya penggunaan Google Cloud
standar Anda dimuat ke dalam tabel data bernama
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
.
Informasi berikut menjelaskan skema data biaya penggunaan standar Google Cloud yang diekspor ke BigQuery. Skema ini berisi informasi penggunaan biaya akun Penagihan Cloud standar, seperti ID akun, tanggal invoice, layanan, SKU, project, label, lokasi, biaya, penggunaan, kredit, penyesuaian, dan mata uang.
Saat Anda menggunakan data biaya penggunaan standar di BigQuery, perhatikan hal-hal berikut:
- Saat memilih atau membuat set data BigQuery untuk data biaya penggunaan standar, Anda dapat memilih lokasi set data yang didukung untuk digunakan dengan data Penagihan Cloud.
- Saat Anda mengaktifkan ekspor data biaya penggunaan standar untuk pertama kalinya di Penagihan Cloud, data Penagihan Cloud akan tersedia secara retroaktif dari awal bulan sebelumnya jika Anda memilih set data yang dikonfigurasi untuk menggunakan lokasi multi-region (Uni Eropa atau Amerika Serikat). Data diekspor dalam urutan kronologis. Untuk pengisian ulang awal data yang diekspor, mungkin perlu waktu hingga lima hari agar data Penagihan Cloud berlaku surut Anda selesai diekspor sebelum Anda mulai melihat data penggunaan terbaru.
- Jika Anda mengaktifkan ekspor data biaya penggunaan standar dan memilih set data yang dikonfigurasi untuk menggunakan lokasi region yang didukung, data Penagihan Cloud Anda akan tersedia mulai dari tanggal saat Anda mengaktifkan ekspor.
- Jika Anda mengaktifkan, menonaktifkan, lalu mengaktifkan kembali ekspor data biaya penggunaan standar, data Penagihan Cloud mungkin tidak tersedia selama periode saat ekspor data dinonaktifkan secara eksplisit.
- Pelajari frekuensi pemuatan data ke tabel BigQuery lebih lanjut.
- Data biaya penggunaan standar tidak mencakup data biaya tingkat resource, seperti virtual machine atau SSD yang menghasilkan penggunaan layanan. Jika Anda tertarik mengekspor data biaya level resource ke BigQuery untuk dianalisis, pertimbangkan untuk mengaktifkan ekspor data biaya penggunaan terperinci. Data biaya penggunaan terperinci yang diekspor mencakup semua kolom dan informasi yang terdapat dalam data biaya penggunaan standar.
- Lihat batasan lain yang mungkin memengaruhi ekspor data penagihan Anda ke BigQuery, seperti set data dengan kunci enkripsi yang dikelola pelanggan (CMEK) diaktifkan.
Kolom | Jenis | Deskripsi |
---|---|---|
billing_account_id |
String | ID akun Penagihan Cloud yang terkait dengan penggunaan. Untuk reseller: Untuk biaya penggunaan yang dihasilkan oleh sub-akun Penagihan Cloud, ini adalah ID sub-akun, bukan ID akun Penagihan Cloud reseller induk. |
invoice.month |
String | Tahun dan bulan (YYYYMM) invoice yang menyertakan item baris biaya. Misalnya: "201901" setara dengan Januari 2019. Anda dapat menggunakan kolom ini untuk mendapatkan total tagihan di invoice. Lihat Contoh Kueri Ekspor Penagihan Cloud ke BigQuery. |
invoice.publisher_type |
String | Menunjukkan penayang yang terkait dengan transaksi. Kolom ini mendukung pemisahan invoice antara transaksi yang dilakukan langsung dengan Google (pihak pertama), dan transaksi yang dilakukan dengan partner (pihak ketiga), yang juga menunjukkan peraturan yang mungkin berlaku untuk transaksi tersebut. Nilai yang memungkinkan adalah:
|
cost_type |
String | Jenis biaya yang dijelaskan dalam item baris ini: reguler, pajak, penyesuaian, atau kesalahan pembulatan. |
service.id |
String | ID layanan yang terkait dengan penggunaan. |
service.description |
String | Layanan Google Cloud yang melaporkan data Penagihan Cloud. |
sku.id |
String | ID resource yang digunakan oleh layanan. Untuk mengetahui daftar lengkap SKU, lihat SKU Google Cloud. |
sku.description |
String | Deskripsi jenis resource yang digunakan oleh layanan. Misalnya, jenis resource untuk Cloud Storage adalah Standard Storage AS. |
usage_start_time |
Stempel waktu | Waktu mulai periode penggunaan per jam yang menjadi waktu penghitungan biaya
tertentu. Penggunaan dan biaya untuk semua layanan ditampilkan dengan tingkat perincian per jam, yang berarti penggunaan layanan yang berjalan lama tersebar di beberapa periode per jam.
Untuk informasi selengkapnya, lihat dokumentasi BigQuery tentang jenis data stempel waktu. Lihat juga, Perbedaan antara data yang diekspor dan invoice. |
usage_end_time |
Stempel waktu | Waktu berakhir periode penggunaan per jam yang menjadi waktu penghitungan biaya
tertentu. Penggunaan dan biaya untuk semua layanan ditampilkan dengan tingkat perincian per jam, yang berarti penggunaan layanan yang berjalan lama tersebar di beberapa periode per jam.
Untuk informasi selengkapnya, lihat dokumentasi BigQuery tentang jenis data stempel waktu. Lihat juga, Perbedaan antara data yang diekspor dan invoice. |
project |
Struct | project berisi kolom yang mendeskripsikan
project Penagihan Cloud, seperti ID, nomor, nama, ancestry_numbers,
dan label.
|
project.id |
String | ID project Google Cloud yang menghasilkan data Penagihan Cloud. |
project.number |
String | ID unik yang dibuat secara internal dan anonim untuk project Google Cloud yang membuat data Penagihan Cloud. Dalam kasus dukungan Anda dan komunikasi pelanggan lainnya, Google akan merujuk project Anda dengan nomor project ini. |
project.name |
String | Nama project Google Cloud yang menghasilkan data Penagihan Cloud. |
project.ancestry_numbers |
String | Ancestor dalam hierarki resource untuk project yang diidentifikasi oleh
project.id yang ditentukan (misalnya, my-project-123).
Misalnya: /ParentOrgNumber/ParentFolderNumber/. Pelajari lebih lanjut Hierarki Resource. |
project.ancestors | Struct |
Kolom ini menjelaskan struktur dan nilai hierarki resource dari item baris biaya, termasuk project, folder, dan organisasi. Ancestor diurutkan dari node ke root (project, folder, lalu organisasi). |
project.ancestors.resource_name | String |
Nama resource relatif untuk setiap ancestor dalam format 'resourceType/resourceNumber'. Penggunaan project.ancestors.resource_name akan memberikan tampilan project.ancestry_numbers yang lebih
lengkap. |
project.ancestors.display_name | String | Nama yang Anda buat untuk resource di konsol Anda. |
project.labels.key | String | Jika ada label, bagian kunci dari pasangan nilai kunci yang meliputi label pada project Google Cloud tempat penggunaan terjadi. Untuk mengetahui informasi cara menggunakan label selengkapnya, lihat Menggunakan Label. |
project.labels.value |
String | Jika ada label, bagian nilai dari pasangan nilai kunci yang meliputi label pada project Google Cloud tempat penggunaan terjadi. Untuk informasi cara menggunakan label selengkapnya, lihat Menggunakan Label. |
labels.key |
String | Jika ada label, bagian kunci dari pasangan nilai kunci yang meliputi label pada resource Google Cloud tempat penggunaan terjadi. Untuk informasi cara menggunakan label selengkapnya, lihat Menggunakan Label. |
labels.value |
String | Jika ada label, bagian nilai dari pasangan nilai kunci yang meliputi label pada resource Google Cloud tempat penggunaan terjadi. Untuk informasi cara menggunakan label selengkapnya, lihat Menggunakan Label. |
system_labels.key |
String | Jika ada label sistem, bagian kunci dari pasangan nilai kunci yang meliputi label yang dihasilkan sistem pada resource tempat penggunaan terjadi. Lihat juga Label sistem yang tersedia. |
system_labels.value |
String | Jika ada label sistem, bagian nilai dari pasangan nilai kunci yang meliputi label yang dihasilkan sistem pada resource tempat penggunaan terjadi. Lihat juga Label sistem yang tersedia. |
location.location |
String | Lokasi penggunaan di level multi-region, negara, region, atau zona;
atau global untuk
resource tidak memiliki lokasi spesifik.
Untuk mengetahui informasi lebih lanjut, lihat
Geografi dan region dan
lokasi Google Cloud.
|
location.country |
String | Jika location.location adalah negara, wilayah, atau zona, kolom
ini adalah negara penggunaan, misalnya US .
Untuk mengetahui informasi lebih lanjut, lihat
Geografi dan region dan
lokasi Google Cloud.
|
location.region |
String | Jika location.location adalah region atau zona, kolom
ini adalah region penggunaan, misalnya us-central1 .
Untuk mengetahui informasi lebih lanjut, lihat
Geografi dan region dan
lokasi Google Cloud.
|
location.zone |
String | Jika location.location adalah zona, kolom ini adalah zona
penggunaan, misalnya us-central1-a .
Untuk mengetahui informasi lebih lanjut, lihat
Geografi dan region dan
lokasi Google Cloud.
|
cost |
Float | Biaya penggunaan sebelum kredit apa pun, dengan ketepatan hingga enam
angka di belakang koma. Untuk mendapatkan total biaya termasuk
kredit, setiap credits.amount harus ditambahkan ke biaya.
Lihat
contoh kueri ini untuk informasi selengkapnya. |
currency |
String | Mata uang yang digunakan dalam penagihan biaya. Untuk informasi selengkapnya, lihat Mata Uang Lokal untuk Penagihan dan Pembayaran. |
currency_conversion_rate |
Float | Nilai tukar dari dolar AS ke mata uang lokal. Artinya,
cost ÷ currency_conversion_rate
adalah biaya dalam dolar AS. |
usage.amount |
Float | Jumlah usage.unit yang digunakan. |
usage.unit |
String | Unit dasar untuk pengukuran penggunaan resource. Misalnya, unit dasar untuk penyimpanan standar adalah byte-detik. |
usage.amount_in_pricing_units
|
Float | Jumlah usage.pricing_unit yang digunakan.
|
usage.pricing_unit
|
String | Unit untuk pengukuran penggunaan resource, sesuai dengan Cloud Billing Catalog API. |
credits |
Struct | credits berisi kolom yang menjelaskan struktur dan
nilai kredit yang terkait dengan SKU Google Cloud dan Google Maps
Platform. |
credits.id |
String | Jika ada, menunjukkan bahwa kredit terkait dengan SKU produk.
Nilai credits.id dapat berupa ID unik alfanumerik
(misalnya, 12-b34-c56-d78), atau deskripsi jenis kredit
(seperti
Rekomendasi Diskon Abonemen: CPU).
Jika kolom |
credits.full_name |
String | Nama kredit yang terkait dengan SKU produk. Ini adalah
deskripsi yang dapat dibaca manusia dari credits.id alfanumerik.
Contohnya mencakup
Kredit uji coba gratis atau
Diskon abonemen berbasis pengeluaran.
Nilai |
credits.type |
String | Kolom ini menjelaskan tujuan atau asal credits.id .
Jenis kredit mencakup:
|
credits.name |
String | Deskripsi kredit yang diterapkan pada akun Penagihan Cloud. |
credits.amount |
Float | Jumlah kredit yang diterapkan untuk penggunaan. |
adjustment_info |
Struct | adjustment_info berisi kolom yang menjelaskan struktur dan
nilai penyesuaian terhadap item baris biaya yang dikaitkan dengan
Akun Penagihan Cloud.
Nilai |
adjustment_info.id |
String | Jika ada, menunjukkan bahwa penyesuaian terkait dengan item baris
biaya. adjustment_info.id adalah ID unik untuk semua
penyesuaian yang terkait dengan masalah.
|
adjustment_info.description |
String | Deskripsi penyesuaian dan penyebabnya. |
adjustment_info.type |
String | Jenis penyesuaian. Jenisnya meliputi:
|
adjustment_info.mode |
String | Cara penyesuaian tersebut dikeluarkan. Mode meliputi:
|
export_time |
Stempel waktu | Waktu pemrosesan yang terkait dengan penambahan data Penagihan Cloud.
Waktu tersebut akan selalu meningkat seiring dengan adanya ekspor baru. Lihat juga, Perbedaan antara data yang diekspor dan invoice di bawah ini. |
tags |
Struct | Kolom yang mendeskripsikan tag, seperti kunci, nilai, dan namespace. |
tags.key |
String | Nama pendek atau nama tampilan kunci yang terkait dengan tag khusus ini. |
tags.value |
String | Resource yang dilampirkan ke |
tags.inherited |
Boolean | Menunjukkan apakah binding tag diwariskan (Tag Diwariskan = Benar) atau langsung/tidak diwariskan (Tag Diwariskan = Salah). Anda dapat membuat binding tag ke resource induk dalam hierarki resource. |
tags.namespace |
String | Mewakili hierarki resource yang mendefinisikan nilai dan kunci tag. Namespace dapat digabungkan dengan kunci tag dan nama pendek nilai tag untuk membuat nama unik secara global yang sepenuhnya memenuhi syarat untuk kunci tag atau nilai tag. |
cost_at_list |
Float | Harga jual yang terkait dengan semua item baris yang ditagihkan ke akun Penagihan Cloud Anda. |
transaction_type |
String | Jenis transaksi penjual. Jenis transaksi dapat berupa salah satu dari berikut:
|
seller_name |
String | Nama resmi penjual. |
Memahami data biaya penggunaan standar dan mendetail
Bagian berikut menjelaskan data standar dan detail biaya penggunaan yang diekspor ke BigQuery.
Tentang label
Data biaya untuk label tertentu hanya menampilkan penggunaan dari tanggal label diterapkan ke resource. Misalnya, jika Anda menambahkan label environment:dev
ke VM Compute Engine pada 15 Januari 2024, analisis apa pun untuk
environment:dev
hanya akan menyertakan penggunaan untuk VM tersebut sejak 15 Januari.
Anda mungkin juga melihat data label pada waktu yang berbeda untuk berbagai layanan, bergantung pada kapan setiap layanan menyediakannya.
Label sistem yang tersedia
Label sistem adalah pasangan nilai kunci untuk metadata penting tentang resource yang menghasilkan penggunaan. Label sistem berikut otomatis disertakan pada penggunaan yang berlaku.
system_labels.key |
Contoh system_labels.value |
Deskripsi |
---|---|---|
compute.googleapis.com/machine_spec |
n1-standard-1, custom-2-2048 | Konfigurasi virtual machine. Lihat Jenis Mesin untuk informasi lebih lanjut. |
compute.googleapis.com/cores |
untuk n1-standard-4, ini adalah 4; untuk custom-2-2048 ini adalah 2 | Jumlah vCPU yang tersedia untuk virtual machine. |
compute.googleapis.com/memory |
untuk n1-standard-4 adalah 15360 (yaitu 15 GB * 1024 MB/GB); untuk custom-2-2048 nilainya adalah 2048 | Jumlah memori (dalam MB) yang tersedia untuk virtual machine. |
compute.googleapis.com/is_unused_reservation |
benar; salah | Menunjukkan penggunaan yang direservasi melalui Pemesanan Zona tetapi tidak digunakan. |
storage.googleapis.com/object_state |
live; noncurrent; soft_deleted; multipart | Status objek penyimpanan yang ditagih. |
Perbedaan antara data yang diekspor dan invoice
Produk Google Cloud melaporkan data penggunaan dan data biaya ke proses Penagihan Cloud di berbagai interval. Akibatnya, Anda mungkin melihat keterlambatan antara penggunaan layanan Google Cloud, dengan penggunaan dan biaya yang tersedia untuk dilihat di Penagihan Cloud. Biasanya, biaya Anda tersedia dalam satu hari, tetapi terkadang dapat memerlukan waktu lebih dari 24 jam.
Pada akhir bulan kalender, penggunaan yang terlambat dilaporkan mungkin tidak akan disertakan dalam invoice bulan tersebut dan mungkin akan dialihkan ke invoice bulan berikutnya.
Saat Anda membuat kueri biaya menggunakan kolom stempel waktu, data yang ditampilkan dapat mengambil penggunaan yang terakhir dilaporkan, yang awalnya tidak disertakan dalam invoice yang dibuat untuk bulan penggunaan yang sama. Akibatnya, data Penagihan Cloud yang ditampilkan mungkin tidak dipetakan langsung ke invoice tersebut.
Kolom stempel waktu mencakup:
usage_start_time
usage_end_time
export_time
Untuk menampilkan data Penagihan Cloud yang dipetakan langsung ke invoice, buat kueri di
invoice.month
,
bukan kolom stempel waktu.
Pajak
Mulai 1 September 2020, data biaya penggunaan akan menunjukkan kewajiban pajak Anda untuk setiap project, bukan sebagai item baris tunggal. Jika memiliki kueri atau visualisasi yang bergantung pada data pajak, Anda mungkin perlu memperbarui kueri untuk memperhitungkan perubahan ini.
Misalnya, untuk biaya yang dicatat sebelum 1 September, data biaya penggunaan Anda tampak mirip dengan contoh berikut, yang menunjukkan total kewajiban pajak sebesar $10.
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | example-project | Reguler | $60 |
123456-ABCDEF-123456 | test_project | Reguler | $40 |
123456-ABCDEF-123456 | [empty] | Pajak | $10 |
Untuk biaya yang dicatat setelah 1 September, $10 dibagi menjadi $6 untuk
example-project
, dan $4 untuk test-project
:
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | example-project | Reguler | $60 |
123456-ABCDEF-123456 | test_project | Reguler | $40 |
123456-ABCDEF-123456 | example-project | Pajak | $6 |
123456-ABCDEF-123456 | test_project | Pajak | $4 |
Error dan penyesuaian
Jika data Penagihan Cloud Anda berisi error atau memerlukan penyesuaian, data tersebut akan ditambahkan dengan data perbaikan. Penyesuaian ini termasuk dalam salah satu dari dua kategori: perubahan atau koreksi penagihan.
Perubahan penagihan
Modifikasi penagihan muncul sebagai item baris terpisah. Jika Anda menerima perubahan penagihan, item baris baru dalam ekspor Penagihan Cloud ke BigQuery akan menampilkan perubahan tersebut. Penyesuaian yang ditampilkan sesuai dengan dokumen invoice, nota kredit, dan nota debit yang tersedia di area Dokumen di bagian Penagihan di konsol Google Cloud.
Untuk mengetahui informasi selengkapnya tentang perubahan penagihan dan cara penerapannya, lihat Memahami nota dan penyesuaian.
Koreksi
Koreksi muncul sebagai data baru yang meniadakan data yang salah pada SKU sumber. Dalam beberapa kasus, data baru akan menggantikan tagihan yang salah. Semua kolom dalam ekspor data penagihan akan cocok dengan data asli, kecuali untuk kolom berikut:
cost
credit
usage.amount
export_time
Misalnya, bayangkan Anda dikenai biaya $10 untuk penggunaan SKU A
pada
1 Januari. Pada invoice bulan Januari (diterbitkan pada awal Februari), Anda akan melihat
tagihan sebesar $10 untuk SKU A
. Namun, pada 2 Februari, Google Cloud mengeluarkan
koreksi terhadap SKU A
, sehingga mengurangi biaya penggunaan menjadi $5. Anda akan menerima
dua item baris tambahan di invoice bulan Februari (diterbitkan pada awal Maret):
- -$10 untuk penggunaan pada 1 Januari (membatalkan tagihan awal)
- $5 untuk penggunaan pada 1 Januari (mencantumkan tagihan yang dimaksud)
Item baru ini memiliki kolom adjustment_info
dalam ekspor data penagihan. Invoice
Januari asli, yang menunjukkan kelebihan tagihan, tidak akan disesuaikan.
Anda dapat memverifikasi tagihan dalam ekspor data penagihan dengan melihat biaya menurut usage_start_time
dan mengelompokkan menurut Day
.
Dalam tampilan ini, setiap koreksi atau tagihan untuk penggunaan yang dimonetisasi terlambat
akan diakumulasikan, dan Anda tidak perlu khawatir tentang data yang salah untuk sementara.
Jika Anda menginginkan informasi yang lebih mendetail tentang koreksi, lihat semua tagihan dalam bulan invoice, dan cari tagihan dengan tanggal penggunaan yang terjadi sebelum bulan invoice. Biaya ini adalah hasil dari koreksi atau penggunaan yang dimonetisasi terlambat.
Contoh kode berikut menunjukkan cara membuat kueri dasar yang menampilkan total biaya koreksi atau penggunaan yang dimonetisasi terlambat:
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';
Untuk contoh kueri yang menampilkan perincian biaya menurut layanan, untuk tagihan invoice, dengan tanggal penggunaan terjadi sebelum bulan invoice, lihat Kueri detail biaya untuk melihat koreksi atau penggunaan yang dimonetisasi terlambat menurut layanan untuk bulan invoice yang ditentukan di "Contoh kueri untuk ekspor data Penagihan Cloud".
Tentang kredit promo dalam kontrak harga khusus
Jika memiliki kontrak harga khusus, Anda mungkin menerima kredit promosi untuk digunakan di Google Cloud sebagai bagian dari kontrak. Misalnya, Anda mungkin menerima $1.000 untuk digunakan pada resource Compute Engine. Kredit promo biasanya dianggap sebagai metode pembayaran. Jika tersedia, kredit promo akan otomatis digunakan untuk mengurangi total tagihan Anda
Persyaratan kontrak Anda menentukan apakah kredit promo berlaku untuk biaya Anda yang dihitung pada harga jual SKU, atau harga bersih (setelah diskon).
Jika kredit promo berlaku untuk biaya yang dihitung pada harga
daftar, di laporan Tabel biaya, ada layanan yang disebut Invoice
,
dengan SKU yang disebut Contract billing adjustment
. SKU ini menyesuaikan
kredit Anda sehingga berlaku untuk biaya sesuai harga jual. Untuk melihat penggunaan yang
merupakan penyesuaian, buat kueri kolom system.labels
. Kunci dalam
system.labels.key
adalah cloud-invoice.googleapis.com/sku_id
, dan nilai dalam
system.labels.value
berisi ID SKU tempat kredit dan penyesuaian
diterapkan.
Tentang tag
Tag adalah resource dalam bentuk key-value pair yang dapat dilampirkan ke resource secara langsung atau melalui pewarisan. Anda dapat menggunakan tag untuk melakukan penagihan balik, audit, dan analisis alokasi biaya lainnya. Anda juga dapat menggunakan tag dan penerapan kebijakan bersyarat untuk mendapatkan kontrol yang terperinci di seluruh hierarki resource.
Tag memiliki model izin yang andal dan dapat mendukung pewarisan, pengelolaan terpusat, standardisasi tata nama, dan integrasi mesin kebijakan, sedangkan label adalah alat terpisah yang memungkinkan Anda menganotasi resource.
Data tag muncul di BigQuery Export untuk Resource, Project, Folder, dan Organisasi.
Tag tersedia
Ekspor Biaya standar dan Biaya terperinci untuk Resource, Project, Folder, dan Organisasi mencakup kolom berikut untuk data tag: Kunci Tag, Nilai Tag, Tag Diwariskan, dan Namespace Tag.
Tag tingkat resource dalam ekspor data Penagihan Cloud tersedia untuk resource berikut:
- Cluster, instance, dan pencadangan AlloyDB untuk PostgreSQL
- Repositori Artifact Registry
- Layanan dan tugas Cloud Run
- Bucket Cloud Storage
- Instance Compute Engine
- Instance Memorystore for Redis
- Secret Manager secrets
- Instance Spanner
Batasan tag
- Tag mungkin memerlukan waktu hingga satu jam untuk diterapkan ke ekspor BigQuery. Jika tag telah ditambahkan atau dihapus dalam waktu satu jam, atau jika resource telah ada selama kurang dari satu jam, resource tersebut mungkin tidak muncul di ekspor.
Contoh kueri biaya penggunaan standar
Bagian ini memberikan contoh cara membuat kueri data biaya penggunaan standar Penagihan Cloud yang diekspor ke BigQuery.
- Mengembalikan total biaya di invoice
- Membuat kueri contoh dengan label
- Membuat kueri diskon abonemen
- Menggunakan filter hierarki resource untuk meninjau ancestry
- Contoh kueri tambahan
Menentukan nama tabel yang akan digunakan dalam kueri Anda
Dalam contoh ini, untuk membuat kueri data Penagihan Cloud di
BigQuery, Anda harus menentukan nama tabel di
klausa FROM
. Nama tabel ditentukan menggunakan tiga nilai:
project.dataset.BQ_table_name
.
project
adalah ID project Google Cloud yang Anda siapkan yang berisi set data BigQuery Anda.dataset
adalah nama set data BigQuery yang Anda siapkan untuk berisi tabel BigQuery dengan data Penagihan Cloud yang diekspor.BQ_table_name
adalah nama tabel BigQuery yang berisi data Penagihan Cloud yang diekspor yang ingin Anda kueri. Ada tiga tabel BigQuery yang berisi data Penagihan Cloud:- Tabel biaya penggunaan standar:
Di set data BigQuery, tabel ini diberi nama
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - Tabel biaya penggunaan mendetail:
Di set data BigQuery, tabel ini diberi nama
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - Tabel harga:
Di set data BigQuery, tabel ini diberi nama
cloud_pricing_export
.
- Tabel biaya penggunaan standar:
Di set data BigQuery, tabel ini diberi nama
Nilai umum yang digunakan dalam contoh kueri biaya standar
Contoh kueri di bagian ini menggunakan nilai berikut untuk Nama tabel:
project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX
Contoh kueri ini juga berfungsi dengan data biaya penggunaan mendetail yang diekspor ke BigQuery, meskipun tidak ditulis untuk mengambil informasi level resource apa pun yang diberikan dengan opsi ekspor biaya penggunaan mendetail.
Mengembalikan biaya total di invoice
Kueri berikut menunjukkan dua cara untuk melihat nilai biaya dan kredit menggunakan data penagihan yang diekspor.
- Kolom
total
menjumlahkan biaya floating point dan nilai kredit secara langsung, yang dapat menyebabkan error pembulatan floating point. - Kolom
total_exact
mengonversi biaya dan nilai kredit menjadi mikro sebelum dijumlahkan, lalu dikonversi kembali ke dolar setelah penjumlahan, untuk menghindari error pembulatan floating point.
Contoh 1: Jumlah semua biaya, per invoice
Kueri ini menampilkan total invoice setiap bulan, sebagai jumlah biaya reguler, pajak, penyesuaian, dan error pembulatan.
SQL Standar
SELECT invoice.month, 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_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1 ORDER BY 1 ASC ;
Misalnya, hasil kueri sebelumnya mungkin adalah:
Baris | bulan | total | total_exact |
---|---|---|---|
1 | 201901 | $1005,004832999999984 | $1005,00 |
2 | 201902 | $992,3101739999999717 | $992,31 |
3 | 201903 | $1220,761089999999642 | $1220,76 |
Contoh 2: Detail pengembalian menurut jenis biaya, per bulan invoice
Kueri ini menampilkan total setiap cost_type
untuk setiap bulan. Jenis biaya
mencakup biaya reguler, pajak, penyesuaian, dan kesalahan pembulatan.
SQL Standar
SELECT invoice.month, cost_type, 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_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Misalnya, hasil kueri sebelumnya mungkin adalah:
Baris | bulan | cost_type | total | total_exact |
---|---|---|---|---|
1 | 201901 | reguler | $1000,501209987994782 | $1000,50 |
2 | 201901 | rounding_error | –$0,500489920049387 | –$0,50 |
3 | 201901 | pajak | $10,000329958477891 | $10,00 |
4 | 201901 | penyesuaian | –$5,002572999387045 | –$5,00 |
Contoh kueri dengan label
Contoh berikut menggambarkan cara lain untuk membuat kueri data dengan label.
Untuk contoh di bagian ini, asumsikan hal berikut:
- Anda memiliki dua aplikasi (grapefruit-squeezer dan chocolate-masher).
- Untuk setiap aplikasi, Anda memiliki dua lingkungan (dev dan prod).
- Lingkungan pengembangan memiliki satu instance kecil per aplikasi.
- Lingkungan produksi memiliki satu instance kecil di Amerika dan satu instance kecil di Asia.
- Setiap instance diberi label dengan aplikasi dan lingkungan.
- Anda memiliki satu instance tanpa label yang digunakan untuk eksperimen.
Total tagihan Anda adalah $24 dengan rincian sebagai berikut:
Instance | Label | Biaya Total |
---|---|---|
Instance kecil dengan 1 VCPU yang berjalan di Amerika | Tidak ada | $4 |
Instance kecil dengan 1 VCPU yang berjalan di Amerika | aplikasi: chocolate-masher lingkungan: dev |
$2 |
Instance kecil dengan 1 VCPU yang berjalan di Amerika | aplikasi: grapefruit-squeezer lingkungan: dev |
$3 |
Instance kecil dengan 1 VCPU yang berjalan di Amerika | aplikasi: chocolate-masher lingkungan: prod |
$3,25 |
Instance kecil dengan 1 VCPU yang berjalan di Asia | aplikasi: chocolate-masher lingkungan: prod |
$3,75 |
Instance kecil dengan 1 VCPU yang berjalan di Amerika | aplikasi: grapefruit-squeezer lingkungan: prod |
$3,50 |
Instance kecil dengan 1 VCPU yang berjalan di Asia | aplikasi: grapefruit-squeezer lingkungan: prod |
$4,50 |
Membuat kueri setiap baris tanpa pengelompokan
Tampilan yang paling terperinci biaya ini adalah dengan meng-kueri setiap baris tanpa pengelompokan. Asumsikan semua kolom, kecuali label dan deskripsi SKU, sama (project, layanan, dan sebagainya).
SQL Standar
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;
Legacy SQL
TO_JSON_STRING not supported.
Baris | sku.description | label | cost |
---|---|---|---|
1 | Instance kecil dengan 1 VCPU yang berjalan di Amerika | [] | $4 |
2 | Instance kecil dengan 1 VCPU yang berjalan di Amerika | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 |
3 | Instance kecil dengan 1 VCPU yang berjalan di Amerika | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 |
4 | Instance kecil dengan 1 VCPU yang berjalan di Amerika | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3,25 |
5 | Instance kecil dengan 1 VCPU yang berjalan di Asia | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3,75 |
6 | Instance kecil dengan 1 VCPU yang berjalan di Amerika | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $3,50 |
7 | Instance kecil dengan 1 VCPU yang berjalan di Asia | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $4,50 |
TOTAL | $24 |
Mengelompokkan peta label sebagai string JSON
Ini adalah cara yang cepat dan mudah untuk mengelompokkan biaya berdasarkan setiap kombinasi label.
SQL Standar
SELECT TO_JSON_STRING(labels) as labels, sum(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY labels;
Legacy SQL
TO_JSON_STRING not supported.
Baris | label | cost |
---|---|---|
1 | [] | $4 |
2 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 |
3 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 |
4 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $7 |
5 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $8 |
TOTAL | $24 |
Mengelompokkan menurut nilai label untuk kunci tertentu
Memerinci biaya untuk nilai kunci label tertentu adalah kasus penggunaan yang umum. Dengan menggunakan LEFT JOIN dan menempatkan filter kunci dalam kondisi JOIN (bukan WHERE), Anda menyertakan biaya yang tidak berisi kunci ini, sehingga Anda mendapatkan gambaran lengkap biaya.
SQL Standar
SELECT labels.value as environment, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "environment" GROUP BY environment;
Legacy SQL
SELECT labels.value as environment, SUM(cost) as cost FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] WHERE labels.key = "environment" OR labels.key IS NULL GROUP BY environment;
Baris | environment | cost |
---|---|---|
1 | prod | $15 |
2 | dev | $5 |
3 | null | $4 |
TOTAL | $24 |
Mengelompokkan menurut key-value pair
Berhati-hatilah saat menafsirkan atau mengekspor hasil ini. Setiap baris di sini menunjukkan jumlah yang valid tanpa penghitungan ganda, tetapi tidak boleh digabungkan dengan baris lain (kecuali jika kuncinya sama, atau jika Anda yakin bahwa kunci tidak pernah disetel pada resource yang sama).
SQL Standar
SELECT labels.key as key, labels.value as value, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels GROUP BY key, value;
Legacy SQL
SELECT labels.key as key, labels.value as value, SUM(cost) FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] GROUP BY key, value;
Baris | kunci | value | cost |
---|---|---|---|
1 | null | null | $4 |
2 | aplikasi | chocolate-masher | $9 |
3 | aplikasi | grapefruit-squeezer | $11 |
4 | environment | dev | $5 |
5 | environment | prod | $15 |
TOTAL | $44 |
Perhatikan bahwa jumlah total lebih besar dari tagihan Anda.
Kueri diskon abonemen
Kueri berikut menunjukkan cara melihat biaya dan kredit yang terkait dengan diskon abonemen dalam data penagihan yang diekspor. Untuk memahami bagaimana biaya komitmen dan kredit Anda diatribusikan ke project dan akun Penagihan Cloud Anda, lihat Atribusi diskon abonemen.
Melihat biaya komitmen
Untuk melihat biaya komitmen untuk diskon abonemen dalam ekspor data penagihan Anda, gunakan contoh kueri berikut.
SQL Standar
SELECT invoice.month AS invoice_month, SUM(cost) as commitment_fees FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE LOWER(sku.description) LIKE "commitment%" GROUP BY 1
Melihat kredit komitmen
Untuk melihat kredit diskon abonemen dalam ekspor data penagihan Anda, gunakan contoh kueri berikut.
SQL Standar
SELECT invoice.month AS invoice_month, SUM(credits.amount) as CUD_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(credits) AS credits WHERE LOWER(credits.name) LIKE "committed use discount%" GROUP BY 1
Menggunakan filter hierarki resource untuk meninjau ancestry
Anda dapat menggunakan filter hierarki resource untuk menggabungkan biaya berdasarkan elemen hierarki seperti project, folder, dan organisasi. Contoh kueri ini menunjukkan metode untuk menjumlahkan biaya yang difilter oleh elemen hierarki resource dan menampilkan ancestries project.
Contoh 1: Filter menurut nama resource
Contoh ini menunjukkan kueri yang mengelompokkan biaya berdasarkan ancestry project dan memfilter hanya untuk biaya yang dihasilkan pada elemen hierarki tertentu, yang diidentifikasi berdasarkan nama resource relatif.
Metode string
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Metode UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.resource_name = "folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Contoh 2: Memfilter menurut nama tampilan
Contoh ini menunjukkan kueri yang mengelompokkan biaya berdasarkan ancestry project dan memfilter hanya untuk biaya yang dihasilkan pada elemen hierarki tertentu, yang diidentifikasi dengan nama tampilan yang diberikan pengguna.
Metode pencocokan string
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Metode UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.display_name = "MyFolderName" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Contoh kueri dengan tag
Contoh berikut menggambarkan cara meng-kueri data dengan tag.
Menghitung biaya berdasarkan bulan invoice dengan tag
Kueri berikut menunjukkan cara menggunakan biaya pengembalian berdasarkan bulan invoice
untuk tag 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;
Misalnya, hasil kueri sebelumnya mungkin adalah:
Baris | 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 | personalisasi | 16,08 |
Melihat biaya resource yang tidak diberi tag
Kueri ini menampilkan total invoice untuk resource yang tidak diberi tag, yang dikelompokkan menurut bulan invoice.
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;
Misalnya, hasil kueri sebelumnya mungkin adalah:
Baris | 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 |
Contoh kueri tambahan
Biaya kueri dan kredit berdasarkan project untuk bulan invoice tertentu
Dengan memberikan bulan invoice tertentu pada Juni 2020 (dalam format YYYYMM), kueri ini akan menampilkan tampilan biaya dan kredit yang dikelompokkan menurut project beserta menampilkan label project.
SQL Standar
SELECT project.name, TO_JSON_STRING(project.labels) as project_labels, sum(cost) as total_cost, SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE invoice.month = "202006" GROUP BY 1, 2 ORDER BY 1;
Legacy SQL
TO_JSON_STRING not supported.
Baris | name | project_labels | total_cost | total_credits |
---|---|---|---|---|
1 | CTG - Dev | [{"key":"ctg_p_env","value":"dev"}] | 79,140979 | -4,763796 |
2 | CTG - Prod | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}] | 32,466272 | -3,073356 |
3 | CTG - Sandbox | [{"key":"ctg_p_env","value":"dev"}] | 0 | 0 |
4 | CTG - Penyimpanan | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}] | 7,645793 | -0.003761 |
Topik terkait
Topik terkait data Penagihan Cloud yang diekspor
- Menyiapkan ekspor data Penagihan Cloud ke BigQuery.
- Contoh kueri untuk ekspor data Penagihan Cloud ke BigQuery
- Memvisualisasikan pembelanjaan dari waktu ke waktu dengan Looker Studio
Laporan biaya dan harga tersedia di konsol Google Cloud
- Melihat laporan Penagihan Cloud dan tren biaya Anda
- Melihat dan mendownload detail biaya invoice atau laporan mutasi
- Melihat dan mendownload harga layanan cloud Google
- Memahami penghematan dengan laporan perincian biaya
- Menganalisis efektivitas diskon abonemen
- Melihat histori biaya dan pembayaran