Struktur ekspor data Standar

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:
  • GOOGLE: Transaksi pihak pertama yang tidak diatur oleh Google Cloud.
  • PARTNER: Transaksi pihak ketiga, yang diatur atau tidak diatur oleh partner.
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.id kosong, SKU produk tidak dikaitkan dengan kredit.

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.full_name hanya ada untuk SKU dengan credits.id alfanumerik. Jika nilai credits.id adalah deskripsi jenis kredit (seperti Rekomendasi Diskon Abonemen: CPU), maka kolom credits.full_name akan kosong.

credits.type String Kolom ini menjelaskan tujuan atau asal credits.id. Jenis kredit mencakup:
  • COMMITTED_USAGE_DISCOUNT: Kontrak abonemen berbasis resource yang dibeli untuk Compute Engine dengan imbalan harga diskon yang sangat besar untuk penggunaan VM.
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE: Kontrak abonemen berbasis pengeluaran yang dibeli untuk layanan sebagai imbalan atas komitmen Anda untuk membelanjakan jumlah minimum.
  • DISCOUNT: Jenis kredit diskon digunakan untuk kredit yang diperoleh setelah nilai minimum pengeluaran kontrak tercapai. Perhatikan bahwa dalam laporan Penagihan Cloud yang tersedia di Konsol Google Cloud, jenis kredit diskon tercantum sebagai Diskon berbasis pengeluaran (kontrak).
  • FREE_TIER: Beberapa layanan menawarkan penggunaan resource gratis hingga batas yang ditentukan. Untuk layanan ini, kredit diterapkan pada penggunaan paket gratis.
  • PROMOTION: Jenis kredit promo mencakup Uji Coba Gratis Google Cloud dan kredit kampanye pemasaran, atau hibah lainnya untuk menggunakan Google Cloud. Jika tersedia, kredit promo dianggap sebagai metode pembayaran dan diterapkan secara otomatis untuk mengurangi total tagihan Anda.
  • RESELLER_MARGIN: Jika Anda adalah reseller, jenis kredit margin reseller menunjukkan Diskon Program Reseller yang diperoleh pada setiap item baris yang memenuhi syarat.
  • SUBSCRIPTION_BENEFIT: Kredit yang diperoleh dengan membeli langganan layanan jangka panjang dengan imbalan diskon.
  • SUSTAINED_USAGE_DISCOUNT: Jenis kredit diskon untuk penggunaan berkelanjutan adalah diskon otomatis yang Anda dapatkan jika menjalankan resource Compute Engine tertentu untuk porsi yang signifikan dari bulan penagihan.
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 hanya ada jika item baris biaya dibuat untuk perubahan Penagihan Cloud. Perubahan dapat terjadi karena alasan koreksi atau non-koreksi. Jenis adjustment_info berisi detail penyesuaian, baik yang dikeluarkan untuk mengoreksi error maupun alasan lainnya.

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:

  • USAGE_CORRECTION: Koreksi karena penggunaan yang dilaporkan salah.
  • PRICE_CORRECTION: Koreksi karena aturan penetapan harga salah.
  • METADATA_CORRECTION: Koreksi untuk memperbaiki metadata tanpa mengubah biaya.
  • GOODWILL: Kredit yang diberikan kepada pelanggan untuk membangun reputasi.
  • SALES_BASED_GOODWILL: Kredit yang diberikan kepada pelanggan untuk membangun reputasi, sebagai bagian dari kontrak.
  • SLA_VIOLATION: Kredit yang diberikan kepada pelanggan karena pelanggaran tujuan tingkat layanan (SLO).
  • BALANCE_TRANSFER: Penyesuaian untuk mentransfer dana dari satu akun pembayaran ke akun pembayaran lainnya.
  • ACCOUNT_CLOSURE: Penyesuaian untuk memindahkan akun yang ditutup ke saldo nol.
  • GENERAL_ADJUSTMENT: Perubahan akun penagihan umum.
adjustment_info.mode String

Cara penyesuaian tersebut dikeluarkan.

Mode meliputi:

  • PARTIAL_CORRECTION: Koreksi sebagian mengabaikan biaya dan penggunaan awal.
  • COMPLETE_NEGATION_WITH_REMONETIZATION: Koreksi sepenuhnya meniadakan penggunaan dan biaya asli, serta masalah item baris yang diperbaiki dengan penggunaan dan biaya yang diperbarui.
  • COMPLETE_NEGATION: Koreksi sepenuhnya meniadakan penggunaan dan biaya asli, dan tidak ada penggunaan lebih lanjut yang dimonetisasi ulang.
  • MANUAL_ADJUSTMENT: Penyesuaian dialokasikan ke biaya dan penggunaan secara manual.
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.key. Pada waktu tertentu, hanya satu nilai yang dapat ditambahkan ke resource untuk kunci tertentu.

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:

  • GOOGLE = 1: Layanan yang dijual oleh Google Cloud.
  • THIRD_PARTY_RESELLER = 2: Layanan pihak ketiga yang dijual kembali oleh Google Cloud.
  • THIRD_PARTY_AGENCY = 3: Layanan pihak ketiga yang dijual oleh partner, dengan Google Cloud bertindak sebagai agen.
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 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 akan 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.

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.

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

Laporan biaya dan harga tersedia di konsol Google Cloud