Memantau biaya menggunakan tabel sistem
Artikel ini menjelaskan bagaimana Anda dapat menggunakan tabel system.billing.usage
sendiri atau bergabung dengan tabel sistem lain untuk mendapatkan gambar penggunaan Azure Databricks akun Anda. Artikel khusus fitur berikut ini juga tersedia:
- Memantau biaya komputasi tanpa server
- Memantau biaya dan kinerja pekerjaan
- Monitor biaya penyajian model
Cara membaca tabel penggunaan
Pengguna dengan izin untuk mengakses data tabel sistem dapat melihat dan mengkueri log penagihan akun mereka, yang terletak di system.billing.usage
. Setiap catatan penagihan mencakup kolom yang mengaitkan jumlah penggunaan ke sumber daya, identitas, dan produk tertentu yang terlibat.
- Kolom
usage_metadata
menyertakan struktur dengan informasi tentang sumber daya atau objek yang terlibat dalam penggunaan. - Kolom
identity_metadata
menyertakan informasi tentang pengguna atau entitas utama layanan yang menimbulkan penggunaan. - Kolom
custom_tags
menyertakan tag yang diterapkan ke sumber daya komputasi yang terkait dengan penggunaan. Ini juga termasuk tag yang ditambahkan oleh kebijakan anggaran sehingga Anda dapat mengaitkan penggunaan tanpa server. - Kolom
billing_origin_product
danproduct_features
memberi Anda informasi tentang produk dan fitur yang tepat yang digunakan.
Untuk referensi lengkap tabel penggunaan, lihat referensi tabel sistem penggunaan yang dapat ditagih .
Mengopsisionalkan data penagihan
Databricks merekomendasikan penggunaan dasbor AI/BI untuk membuat dasbor pemantauan biaya menggunakan data penagihan tabel sistem. Anda dapat membuat dasbor baru, atau admin akun dapat mengimpor dasbor pemantauan biaya bawaan yang dapat disesuaikan. Lihat Dasbor penggunaan.
Anda juga dapat menambahkan pemberitahuan ke kueri untuk membantu Anda tetap mendapatkan informasi tentang data penggunaan. Lihat Membuat peringatan.
Sampel kueri
Kueri berikut memberikan contoh bagaimana Anda dapat menggunakan data tabel system.billing.usage
untuk mendapatkan wawasan tentang penggunaan akun Anda.
- Berapa banyak DBUs dari setiap produk yang telah digunakan sepanjang bulan ini?
- Pekerjaan mana yang paling banyak menggunakan DBUs?
- Berapa banyak penggunaan yang dapat dikaitkan dengan sumber daya dengan tag tertentu?
- Tunjukkan produk di mana penggunaan tumbuh
- Apa tren penggunaan All Purpose Compute (Photon)?
- Apa konsumsi DBU dari tampilan yang dimaterialisasi atau dari tabel streaming?
- Apa konsumsi DBU dari alur DLT tanpa server?
- Apa tren harian dalam konsumsi DBU?
Berapa banyak DBU untuk setiap produk yang telah digunakan sepanjang bulan ini?
SELECT
billing_origin_product,
usage_date,
sum(usage_quantity) as usage_quantity
FROM system.billing.usage
WHERE
month(usage_date) = month(NOW())
AND year(usage_date) = year(NOW())
GROUP BY billing_origin_product, usage_date
Pekerjaan mana yang paling banyak menggunakan DBUs?
SELECT
usage_metadata.job_id as `Job ID`, sum(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
usage_metadata.job_id IS NOT NULL
GROUP BY
`Job ID`
ORDER BY
`Usage` DESC
Berapa banyak penggunaan yang dapat dikaitkan dengan sumber daya dengan tag tertentu?
Anda dapat memecah biaya dengan berbagai cara. Contoh ini menunjukkan kepada Anda cara memecah biaya berdasarkan tag kustom. Pastikan untuk mengganti kunci dan nilai tag kustom dalam kueri.
SELECT
sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
custom_tags [:key] = :value
GROUP BY 1, 2
Tunjukkan produk di mana penggunaannya meningkat
SELECT
after.billing_origin_product, before_dbus, after_dbus, ((after_dbus - before_dbus)/before_dbus * 100) AS growth_rate
FROM
(SELECT
billing_origin_product, sum(usage_quantity) as before_dbus
FROM
system.billing.usage
WHERE
usage_date BETWEEN "2024-04-01" and "2024-04-30"
GROUP BY
billing_origin_product
) as before
JOIN
(SELECT
billing_origin_product, sum(usage_quantity) as after_dbus
FROM
system.billing.usage
WHERE
usage_date
BETWEEN
"2024-05-01" and "2024-05-30"
GROUP BY
billing_origin_product
) as after
WHERE
before.billing_origin_product = after.billing_origin_product
SORT BY
growth_rate DESC
Apa tren penggunaan All Purpose Compute (Photon)?
SELECT
sku_name,
usage_date,
sum(usage_quantity) as `DBUs consumed`
FROM
system.billing.usage
WHERE
year(usage_date) = year(CURRENT_DATE)
AND
sku_name = "ENTERPRISE_ALL_PURPOSE_COMPUTE_(PHOTON)"
AND
usage_date > "2024-04-15"
GROUP BY
sku_name, usage_date
Apa konsumsi DBU dari tampilan materialisasi atau tabel streaming?
Untuk mendapatkan penggunaan DBU dan SKU untuk tampilan materialisasi atau tabel streaming tertentu, kirimkan kueri ke tabel sistem penggunaan yang dikenakan biaya untuk rekaman di mana usage_metadata.dlt_pipeline_id
diset dengan ID alur yang terkait dengan tampilan materialisasi atau tabel streaming. Anda dapat menemukan ID alur di tab Detail di Catalog Explorer saat melihat tampilan materialisasi atau tabel streaming. Untuk membatasi konsumsi menurut tanggal, tentukan tanggal mulai, tanggal selesai, atau rentang tanggal. Kueri berikut mendapatkan data penggunaan DBU untuk pipeline dengan ID 00732f83-cd59-4c76-ac0d-57958532ab5b
dan tanggal mulai penggunaan 2024-05-30
:
SELECT
sku_name,
usage_date,
SUM(usage_quantity) AS `DBUs`
FROM
system.billing.usage
WHERE
usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
AND usage_start_time > :usage_start_time
GROUP BY
ALL
Berapa penggunaan DBU dari pipeline DLT tanpa server?
Untuk mendapatkan penggunaan DBU dan SKU untuk pipeline DLT tanpa server, kirimkan kueri ke tabel sistem penggunaan yang dapat ditagihkan untuk catatan di mana usage_metadata.dlt_pipeline_id
diatur ke ID pipeline. Anda dapat menemukan ID alur pada tab Detil Alur saat melihat alur di antarmuka pengguna DLT. Untuk membatasi konsumsi menurut tanggal, tentukan tanggal mulai, tanggal selesai, atau rentang tanggal. Kueri berikut mengambil data penggunaan DBU dari Desember 2024 untuk pipeline dengan ID 00732f83-cd59-4c76-ac0d-57958532ab5b
.
SELECT
sku_name,
usage_date,
SUM(usage_quantity) AS `DBUs`
FROM
system.billing.usage
WHERE
usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
AND usage_start_time >= :usage_start_time
AND usage_end_time < :usage_end_time
GROUP BY
ALL
Apa tren harian dalam konsumsi DBU?
SELECT
usage_date as `Date`, sum(usage_quantity) as `DBUs Consumed`
FROM
system.billing.usage
WHERE
sku_name = "STANDARD_ALL_PURPOSE_COMPUTE"
GROUP BY
usage_date
ORDER BY
usage_date ASC
Contoh penggunaan gabungan tabel
Contoh berikut menunjukkan kepada Anda cara menggabungkan tabel penggunaan dengan tabel sistem lain untuk mendapatkan wawasan tambahan.
- Biaya atribut untuk pemilik komputasi
- Memperkaya penggunaan dengan nama pekerjaan
- Menggabungkan harga dengan tabel penggunaan
- Memperkirakan biaya add-on untuk penggunaan di bulan kalender sebelumnya
Atributkan biaya ke pemilik komputasi.
Jika Anda ingin mengurangi biaya komputasi, Anda dapat menggunakan kueri ini untuk mengetahui pemilik kluster mana di akun Anda yang menggunakan DBA terbanyak.
SELECT
u.record_id record_id,
c.cluster_id cluster_id,
max_by(c.owned_by, c.change_time) owned_by,
max(c.change_time) change_time,
any_value(u.usage_start_time) usage_start_time,
any_value(u.usage_quantity) usage_quantity
FROM
system.billing.usage u
JOIN system.compute.clusters c
WHERE
u.usage_metadata.cluster_id is not null
and u.usage_start_time >= '2023-01-01'
and u.usage_metadata.cluster_id = c.cluster_id
and c.change_time <= u.usage_start_time
GROUP BY 1, 2
ORDER BY cluster_id, usage_start_time desc;
Memperkaya penggunaan dengan nama pekerjaan
with jobs as (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM system.lakeflow.jobs QUALIFY rn=1
)
SELECT
usage.*,
coalesce(usage_metadata.job_name, jobs.name) as job_name
FROM system.billing.usage
LEFT JOIN jobs ON usage.workspace_id=jobs.workspace_id AND usage.usage_metadata.job_id=jobs.job_id
WHERE
billing_origin_product="JOBS"
Menggabungkan harga dengan tabel penggunaan
Tabel list_prices
mencakup harga eceran seiring waktu untuk setiap SKU yang tersedia. Anda dapat mengakses tabel usage
untuk melihat biaya pencatatan penggunaan tertentu.
Misalnya, kueri berikut mengembalikan total biaya yang diatribusikan ke tag tertentu selama sebulan:
SELECT
SUM(usage.usage_quantity * list_prices.pricing.effective_list.default)
as `Total Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.custom_tags [:key] = :value
AND usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2024-05-01" AND "2024-05-31"
Memperkirakan biaya add-on untuk penggunaan di bulan kalender sebelumnya
Kueri ini menerapkan persentase sederhana untuk semua penggunaan dalam periode tersebut. Perhatikan bahwa ini mungkin sedikit berbeda dari monetisasi aktual karena cara pengelolaan hak untuk beberapa add-on. Ganti tarif add-on dengan tarif akun Anda.
SELECT SUM(usage.usage_quantity * list_prices.pricing.effective_list.default) * :add_on_rate as `Total Add-On Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2024-02-01" AND "2024-02-29"