Halaman ini memberikan beberapa contoh cara membuat kueri data Penagihan Cloud yang diekspor dan disimpan di BigQuery.
Untuk mengetahui informasi selengkapnya tentang cara mengekspor data penagihan Anda ke BigQuery, baca ringkasan dan batasan.
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.
- Set data 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
Contoh kueri berdasarkan jenis data Penagihan Cloud
Halaman ini memberikan contoh kueri untuk data biaya penggunaan standar, data biaya penggunaan mendetail, dan data harga.
Jika memilih untuk mengekspor data biaya penggunaan mendetail, Anda dapat menggunakan contoh kueri Biaya penggunaan standar selain contoh kueri Biaya penggunaan mendetail.
Data biaya penggunaan standar | Data biaya penggunaan mendetail | Data harga |
---|---|---|
Contoh kueri biaya penggunaan standar | Contoh kueri biaya penggunaan mendetail | Contoh kueri data harga |
Contoh kueri biaya penggunaan standar
Bagian ini memberikan contoh cara membuat kueri data biaya penggunaan standar Penagihan Cloud yang diekspor ke BigQuery.
Contoh kueri ini juga dapat digunakan dengan data biaya penggunaan terperinci yang diekspor ke BigQuery, meskipun tidak ditulis untuk mengambil informasi tingkat resource yang disediakan bersama opsi ekspor biaya penggunaan yang terperinci.
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
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 AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) 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 AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) 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 2 aplikasi (grapefruit-squeezer dan chocolate-masher).
- Untuk setiap aplikasi, Anda memiliki 2 lingkungan (dev dan prod).
- Lingkungan pengembangan memiliki 1 instance kecil per aplikasi.
- Lingkungan produksi memiliki 1 instance kecil di Amerika dan 1 instance kecil di Asia.
- Setiap instance diberi label dengan aplikasi dan lingkungan.
- Anda memiliki 1 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 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 credits.type = "COMMITTED_USAGE_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 `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;
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.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 |
Contoh kueri biaya penggunaan mendetail
Bagian ini memberikan contoh cara membuat kueri data biaya penggunaan mendetail Penagihan Cloud yang diekspor ke BigQuery.
Skema biaya penggunaan mendetail mencakup semua kolom dari skema biaya penggunaan standar, maka contoh kueri yang diberikan untuk data standar yang diekspor ke BigQuery juga berfungsi dengan data mendetail yang diekspor. Perhatikan bahwa contoh kueri standar tidak ditulis untuk mengambil informasi level resource yang disediakan dengan opsi ekspor biaya penggunaan mendetail. Saat membuat kueri untuk data mendetail, Anda dapat menggunakan contoh kueri standar sebagai template, update Nama tabel, dan tambahkan salah satu kolom yang tersedia di skema biaya penggunaan mendetail.
Untuk persyaratan dan batasan lebih lanjut terkait data mendetail yang diekspor, lihat Skema data biaya penggunaan mendetail.
Nilai umum yang digunakan dalam contoh kueri biaya mendetail
Contoh kueri di bagian ini menggunakan nilai berikut untuk Nama tabel:
project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX
Menampilkan biaya tingkat resource pada invoice
Kueri berikut menunjukkan dua cara untuk melihat biaya tingkat resource dan nilai kredit di invoice 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.
Menjumlahkan biaya untuk setiap resource, per invoice
Kueri ini menampilkan total invoice untuk setiap resource.name
per bulan, sebagai jumlah
biaya reguler, pajak, penyesuaian, dan error pembulatan. Semua biaya yang tidak
terkait dengan item tingkat resource digabungkan dalam nama null
untuk bulan tersebut.
SQL Standar
SELECT invoice.month, resource.name, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) 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 | 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 |
Menampilkan detail menurut jenis biaya untuk setiap resource, per bulan invoice
Kueri ini menampilkan total setiap cost_type
untuk setiap resource.name
per
bulan. Jenis biaya mencakup biaya reguler, pajak, penyesuaian, dan error
pembulatan. Semua biaya yang tidak terkait dengan item tingkat resource digabungkan
berdasarkan nama null
untuk bulan tersebut.
SQL Standar
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 AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2, 3 ORDER BY 1 ASC, 2 ASC, 3 ASC ;
Misalnya, hasil kueri sebelumnya mungkin adalah:
Baris | bulan | cost_type | name | total | total_exact |
---|---|---|---|---|---|
1 | 201901 | reguler | null | $1000,501209987994782 | $1000,50 |
2 | 201901 | rounding_error | null | –$0,500489920049387 | –$0,50 |
3 | 201901 | pajak | null | $10,000329958477891 | $10,00 |
4 | 201901 | penyesuaian | null | –$5,002572999387045 | –$5,00 |
5 | 201901 | reguler | backend1 | $410,998795012082947 | $411,00 |
2 | 201901 | rounding_error | backend1 | –$0,2404900489920378 | –$0,24 |
3 | 201901 | pajak | backend1 | $4,105840329977189 | $4,11 |
Mendapatkan perincian biaya cluster Google Kubernetes Engine (GKE)
Bagian ini memberikan contoh pemfilteran biaya cluster GKE dalam laporan BigQuery Export Anda. Untuk mempelajari biaya cluster GKE lebih lanjut, buka Melihat perincian biaya cluster.
Memfilter biaya GKE
Contoh kueri berikut menunjukkan cara memfilter dan mengelompokkan biaya GKE untuk jenis resource yang didukung berdasarkan nama cluster, namespace, dan label.
Biaya cluster GKE sebelum kredit
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 ;
Biaya GKE setelah kredit berdasarkan namespace
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 ;
Biaya GKE berdasarkan SKU
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 ;
Contoh kueri data harga
Bagian ini memberikan berbagai contoh cara membuat kueri data harga Penagihan Cloud yang diekspor ke BigQuery.
Nilai umum yang digunakan dalam contoh kueri harga
Contoh kueri di bagian ini menggunakan nilai berikut:
- Nama tabel:
project.dataset.cloud_pricing_export
- ID SKU:
2DA5-55D3-E679
(Cloud Run - Permintaan)
Mendapatkan harga jual untuk SKU tertentu
Contoh ini menunjukkan kueri sederhana yang menampilkan
list_price
untuk setiap
tingkat harga
untuk SKU tertentu.
SQL Standar
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
adalah kolom yang dibuat secara otomatis oleh BigQuery
dan merepresentasikan tanggal asal data. Sebagai ganti _PARTITIONTIME
,
Anda dapat menggunakan kolom yang dihasilkan secara eksplisit oleh ekspor Penagihan Cloud,
seperti
pricing_as_of_time
.
Berikut kueri yang sama yang dikonfigurasi untuk menggunakan kolom 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" ;
Hasil kueri
Baris | id | deskripsi | 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 | Permintaan | COUNT | AKUN | BULANAN | 1000000 | 0 | 0 | 0 |
1000000 | 2000000 | 0,4 | 0,4 |
Mendapatkan harga jual untuk SKU tertentu, dan menyertakan deskripsi layanan
Dua contoh di bagian ini menunjukkan kueri yang menampilkan
list_price
untuk setiap
tingkat harga
untuk SKU tertentu, serta menyertakan deskripsi SKU dan
deskripsi layanan.
- Contoh 1 menampilkan satu SKU per baris, dengan tingkat harga ditampilkan sebagai data bertingkat.
- Contoh 2 menunjukkan data tidak bertingkat untuk menampilkan satu baris per SKU per tingkat harga.
Contoh 1: Menampilkan data bertingkat
Contoh ini mengkueri SKU tunggal untuk menampilkan
data list_price
. SKU ini memiliki beberapa
tingkat harga.
Nilai kolom harga jual ditampilkan dalam masing-masing baris yang bertingkat pada
baris ID SKU.
SQL Standar
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" ;
Hasil kueri:
Baris | 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 | Permintaan | 152E-C115-5142 | Cloud Run | AKUN | BULANAN | 1000000 | 0 | 0 | 0 |
1000000 | 2000000 | 0,4 | 0,4 |
Contoh 2: Menampilkan data tidak bertingkat yang digabungkan dengan tabel yang sama
Contoh ini mengkueri SKU tunggal untuk menampilkan
list price
. SKU memiliki beberapa
tingkat harga.
Kueri menunjukkan penggunaan operator
UNNEST
untuk
meratakan array tiered_rates
dan menggabungkan kolom dengan tabel yang sama, sehingga menghasilkan satu baris per tingkat
harga.
SQL Standar
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" ;
Hasil kueri:
Baris | sku_id | sku_description | service_id | service_description | pricing_unit_quantity | start_usage_amount | usd_amount | account_currency_amount |
---|---|---|---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Permintaan | 152E-C115-5142 | Cloud Run | 1000000,0 | 0.0 | 0.0 | 0.0 |
2 | 2DA5-55D3-E679 | Permintaan | 152E-C115-5142 | Cloud Run | 1000000,0 | 2000000,0 | 0,4 | 0,4 |
Menggunakan taksonomi produk dan taksonomi geografis untuk membuat kueri SKU
- Taksonomi produk adalah daftar kategori produk yang berlaku untuk SKU, seperti Serverless, Cloud Run, atau VM On Demand.
- Taksonomi geografis adalah metadata geografis yang berlaku untuk SKU, yang terdiri dari jenis dan nilai region.
Mendapatkan taksonomi produk SKU
Contoh ini menunjukkan kueri yang menampilkan daftar
product_taxonomy
untuk SKU yang ditentukan, dengan ID SKU = 2DA5-55D3-E679
(Cloud Run - Permintaan).
SQL Standar
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" ;
Hasil kueri:
Baris | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Permintaan | 152E-C115-5142 | Cloud Run | GCP |
Serverless | |||||
Cloud Run | |||||
Lainnya |
Mendapatkan semua SKU untuk taksonomi produk tertentu
Contoh ini menunjukkan kueri yang menampilkan semua SKU yang cocok dengan
product_taxonomy
yang ditentukan.
Dalam kueri ini, kita menentukan Serverless sebagai nilai product taxonomy
.
SQL Standar
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 ;
Hasil kueri:
Baris | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 0160-BD7B-4C40 | Traffic Keluar Intra Region Jaringan Cloud Tasks | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
Serverless | |||||
Cloud Tasks | |||||
Lainnya | |||||
2 | FE08-0A74-7AFD | Traffic Keluar GOOGLE-API Cloud Tasks | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
Serverless | |||||
Cloud Tasks | |||||
Lainnya | |||||
3 | A81A-32A2-B46D | Penyimpanan Antrean Tugas Salt Lake City | F17B-412E-CB64 | App Engine | GCP |
Serverless | |||||
GAE | |||||
Lainnya | |||||
TaskQueue |
Mendapatkan semua SKU untuk taksonomi geografis dan taksonomi produk tertentu
Contoh ini menunjukkan kueri yang menampilkan semua SKU yang cocok dengan
geo_taxonomy
dan region yang ditentukan
product_taxonomy
,
dengan region
= us-east4 danproduct_taxonomy
= VM Sesuai Permintaan.
SQL Standar
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) ;
Hasil kueri:
Baris | sku_id | sku_description | service_id | service_description | geo_taxonomy.type | geo_taxonomy.regions | product_taxonomy |
---|---|---|---|---|---|---|---|
1 | 9174-81EE-425B | Premium Tenancy Tunggal untuk Ram Instance Tenancy Tunggal yang berjalan di Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
Compute | |||||||
GCE | |||||||
VM Sesuai Permintaan | |||||||
Memori: Per GB | |||||||
2 | C3B9-E891-85ED | Ram Instance Tenancy Tunggal yang berjalan di Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
Compute | |||||||
GCE | |||||||
VM Sesuai Permintaan | |||||||
Memori: Per GB | |||||||
3 | 6E2A-DCD9-87ED | Ram Instance Bawaan N1 yang berjalan di Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
Compute | |||||||
GCE | |||||||
VM Sesuai Permintaan | |||||||
Memori: Per GB |
Menggabungkan data harga dengan data biaya penggunaan mendetail
Kueri ini menunjukkan cara menggabungkan ekspor Data Harga dan Biaya, untuk melihat detail
informasi harga sesuai dengan biaya Anda. Anda dapat mengonfigurasi
kueri ini untuk mengambil data yang diekspor dari
data biaya penggunaan mendetail (sebagai Exports
), dan menggabungkan data biaya penggunaan dengan data
data harga yang diekspor
(sebagai Prices
).
Gunakan
nama tabel biaya penggunaan terperinci
untuk mengambil data Exports
:
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
Gunakan
nama tabel harga
untuk data Prices
: project.dataset.cloud_pricing_export
WITH Exports AS ( SELECT * FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` ), Prices AS ( SELECT * FROM `project.dataset.cloud_pricing_export` ) SELECT Exports.sku.description AS sku_description, Exports.cost, Exports.usage, FlattenedPrices.pricing_unit_description, FlattenedPrices.account_currency_amount, FlattenedPrices.account_currency_code, FROM Exports JOIN (SELECT * FROM Prices CROSS JOIN UNNEST(Prices.list_price.tiered_rates)) AS FlattenedPrices ON Exports.sku.id = FlattenedPrices.sku.id AND Exports.price.tier_start_amount = FlattenedPrices.start_usage_amount WHERE DATE(Exports.export_time) = '2023-06-30' AND DATE(FlattenedPrices.export_time) = '2023-06-30' AND cost > 0 LIMIT 1000
Misalnya, hasil kueri sebelumnya mungkin adalah:
sku_description | cost | penggunaan | pricing_unit_description | account_currency_amount | account_currency_code |
---|---|---|---|---|---|
Kapasitas PD Seimbang | 0,001345 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | gibibyte-bulan | 0,1 | USD |
Kapasitas PD Seimbang | 0,001344 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | gibibyte-bulan | 0,1 | USD |
Kapasitas PD Seimbang | 0,001346 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | gibibyte-bulan | 0,1 | USD |
Topik terkait
Topik terkait data Penagihan Cloud yang diekspor
- Menyiapkan ekspor data Penagihan Cloud ke BigQuery
- Memahami tabel data Penagihan Cloud di 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 Anda
- Melihat histori biaya dan pembayaran