Bagikan melalui


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:

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 dan product_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 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.

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"