Bagikan melalui


Memantau biaya komputasi tanpa server

Artikel ini menjelaskan cara menggunakan tabel sistem penggunaan yang dapat ditagih untuk memantau biaya penggunaan komputasi tanpa server Anda.

Anda dapat memantau penggunaan komputasi tanpa server untuk buku catatan dan pekerjaan dengan mengkueri tabel sistem penggunaan yang dapat ditagih (system.billing.usage), yang mencakup atribut pengguna dan beban kerja yang terkait dengan biaya komputasi tanpa server. Bidang yang berlaku meliputi:

  • Kolom identity_metadata menyertakan bidang run_as, yang menunjukkan pengguna atau perwakilan layanan yang kredensialnya digunakan untuk menjalankan beban kerja.
  • Kolom usage_metadata memiliki bidang yang menjelaskan beban kerja: job_run_id, job_name, notebook_id, dan notebook_path.

Fitur tambahan yang ditagih sebagai tanpa server

Ada beberapa fitur Azure Databricks yang memanfaatkan komputasi tanpa server di latar belakang tetapi tidak mengharuskan akun Anda diaktifkan untuk komputasi tanpa server untuk notebook, alur kerja, dan Alur Deklaratif Lakeflow.

Fitur berikut ditagih di bawah SKU pekerjaan tanpa server:

  • Pemantauan Lakehouse: Dicatat dalam tabel penagihan dengan billing_origin_product nilai LAKEHOUSE_MONITORING.
  • Pengoptimalan Prediktif: Dicatat dalam tabel penagihan dengan billing_origin_product nilai PREDICTIVE_OPTIMIZATION.
  • Tampilan materialisasi di Databricks SQL: Saat Anda membuat tampilan materialisasi di gudang SQL, alur tanpa server dibuat untuk memproses refresh. Anda bisa menampilkan rekaman tagihan untuk tampilan terwujud dengan mengkueri rekaman di mana billing_origin_product = 'SQL' dan usage_metadata.dlt_pipeline_id IS NOT NULL.
  • Kontrol akses halus pada komputasi khusus: Dapat diidentifikasi dengan memiliki billing_origin_product nilai FINE_GRAINED_ACCESS_CONTROL.
  • Kamar bersih: Kamar bersih khusus yang terkait dengan penggunaan dicatat di bawah usage_metadata.central_clean_room_id.

Pertimbangan untuk catatan penggunaan tanpa server

Saat menganalisis penggunaan tanpa server Anda, pertimbangkan hal berikut:

  • Anda mungkin melihat beberapa rekaman yang terkait dengan beban kerja komputasi tanpa server tertentu dalam satu jam tertentu. Misalnya, Anda mungkin melihat beberapa rekaman dengan job_id, job_run_id, atau job_name yang sama tetapi dengan nilai konsumsi DBU yang berbeda untuk masing-masing. Jumlah DBU ini secara kolektif mewakili konsumsi DBU per jam untuk eksekusi pekerjaan tertentu.

Menggunakan anggaran untuk memantau pengeluaran

Admin akun dapat menyiapkan anggaran untuk mengelompokkan biaya dan menyiapkan pemberitahuan. Lihat Membuat dan memantau anggaran.

Mengimpor sebuah dasbor penggunaan

Administrator akun dapat mengimpor dasbor manajemen biaya ke workspace mana pun yang diaktifkan Unity Catalog di akun mereka. Lihat Impor dasbor penggunaan.

Menemukan pekerjaan atau buku catatan di UI

Untuk menemukan pekerjaan atau notebook di UI berdasarkan catatan penagihan, salin nilai usage_metadata.job_id atau usage_metadata.notebook_id dari catatan penggunaan. ID ini tidak dapat diubah dan dapat digunakan bahkan jika nama pekerjaan atau jalur buku catatan berubah.

Untuk menemukan pekerjaan di UI berdasarkan job_id:

  1. Salin job_id dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah 700809544510906.
  2. Navigasikan ke UI Pekerjaan & Alur di ruang kerja Azure Databricks yang sama dengan pekerjaan.
  3. Pilih filter Dapat Diakses oleh saya .
  4. Tempelkan ID (700809544510906) ke bilah pencarian Pekerjaan filter .

Untuk menemukan buku catatan di UI berdasarkan notebook_id, gunakan instruksi berikut:

  1. Salin notebook_id dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah 700809544510906.
  2. Navigasi ke UI Ruang Kerja di ruang kerja Azure Databricks yang sama dengan notebook.
  3. Klik buku catatan apa pun dalam daftar.
  4. Setelah Anda membuka notebook, periksa URL di bilah alamat browser. Ini akan terlihat seperti: https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
  5. Di bilah alamat browser, ganti ID buku catatan dengan ID yang Anda salin di langkah pertama, lalu hapus semuanya setelah ID buku catatan. Ini akan terlihat seperti: https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
  6. Setelah membuka buku catatan, Anda bisa mengklik tombol Bagikan untuk menampilkan pemilik buku catatan.

Menggunakan pemberitahuan untuk melacak pengeluaran tanpa server

Pemberitahuan adalah cara yang ampuh untuk tetap mendapatkan informasi tentang pengeluaran tanpa server Anda. Dengan pemberitahuan, Anda dapat menerima pemberitahuan saat kondisi tertentu terpenuhi dalam hasil kueri Anda. Untuk mempelajari cara membuat pemberitahuan, lihat Membuat pemberitahuan.

Anda dapat menambahkan pemberitahuan ke kueri berikut untuk memantau anggaran. Di setiap kueri, ganti {budget} dengan anggaran yang Anda pilih.

Pemberitahuan saat setiap pengeluaran ruang kerja melebihi ambang dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dijalankan setiap kali query ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.workspace_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Pemberitahuan saat pengguna melebihi ambang batas dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dijalankan setiap kali query ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.identity_metadata.run_as,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Pemberitahuan saat pekerjaan melebihi ambang dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dijalankan setiap kali query ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.workspace_id,
   t1.usage_metadata.job_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id, t1.usage_metadata.job_id
HAVING
   list_cost > {budget}

Contoh kueri

Gunakan kueri berikut untuk mendapatkan wawasan tentang penggunaan tanpa server di akun Anda:

Mengurutkan buku catatan tanpa server berdasarkan total pengeluaran

Kueri ini mengembalikan daftar buku catatan dan berapa banyak DBU yang digunakan setiap buku catatan, dalam urutan menurun berdasarkan konsumsi DBU.

SELECT
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.notebook_id is not null
  and billing_origin_product = 'INTERACTIVE'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Mengurutkan pekerjaan tanpa server berdasarkan total pengeluaran

Kueri ini mengembalikan daftar pekerjaan dan berapa banyak DBU yang dikonsumsi setiap pekerjaan, dalam urutan turun berdasarkan jumlah DBU yang dikonsumsi.

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id is not null
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
  and sku_name like '%JOBS_SERVERLESS_COMPUTE%'
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Laporan tentang DBUs yang digunakan oleh pengguna tertentu

Kueri ini mengembalikan daftar notebook dan pekerjaan yang menggunakan komputasi tanpa server yang dijalankan oleh pengguna atau perwakilan layanan tertentu, dan jumlah DBA yang digunakan oleh setiap beban kerja:

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  identity_metadata.run_as = '<emailaddress@domain.com>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2,3,4
ORDER BY
  total_dbu DESC

Laporan tentang DBU komputasi serverless yang dikonsumsi oleh beban kerja yang berbagi tag khusus

Kueri ini mengembalikan daftar pekerjaan yang menggunakan komputasi tanpa server yang memiliki tag kustom yang sama, dan jumlah DBA yang digunakan oleh setiap beban kerja:

SELECT
  usage_metadata.job_id,
  usage_metadata.job_name,
  usage_metadata.notebook_id,
  usage_metadata. notebook_path,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  custom_tags.<key> = '<value>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2,3,4
ORDER BY
  total_dbu DESC