Sunucusuz işlem maliyetini izleme

Bu makalede, sunucusuz işlem kullanımınızın maliyetini izlemek için faturalanabilir kullanım sistemi tablosunun nasıl kullanılacağı açıklanmaktadır.

Sunucusuz işlem maliyetleriyle ilgili kullanıcı ve iş yükü özniteliklerini içeren faturalanabilir kullanım sistemi tablosunu (system.billing.usage ) sorgulayarak not defterleri ve işler için sunucusuz işlem kullanımını izleyebilirsiniz. Geçerli alanlar şunlardır:

  • identity_metadata sütunu, iş yükünü çalıştırmak için kimlik bilgileri kullanılan kullanıcı veya hizmet sorumlusunu gösteren alanı içerirrun_as.
  • Sütunda usage_metadata iş yükünü açıklayan alanlar vardır: job_run_id, job_name, notebook_idve notebook_path.

Uyarı

Dağıtılmış mimarimiz nedeniyle, belirli bir zaman diliminde belirli bir sunucusuz işlem iş yüküyle ilişkili birden çok kayıt görebilirsiniz. Örneğin, aynı job_id, job_run_idveya job_name ancak her birinin farklı DBU tüketim değerlerine sahip birden çok kayıt görebilirsiniz. Bu DBU'ların toplamı, belirtilen zaman diliminde özel bir işin çalıştırılması için saatlik DBU tüketimini temsil eder.

Sunucusuz olarak faturalanan ek özellikler

Arka planda sunucusuz işlemden yararlanan ancak hesabınızın not defterleri, iş akışları ve Lakeflow işlem hatları için sunucusuz işlem için etkinleştirilmesini gerektirmeyen birden çok Azure Databricks özelliği vardır.

Aşağıdaki özellikler sunucusuz işler SKU'su altında faturalandırılır:

  • Veri kalitesi izleme: Faturalama tablosuna billing_origin_product değerine LAKEHOUSE_MONITORING ile günlüğe kaydedilir.
  • Tahmine Dayalı İyileştirme: Faturalama tablosunda billing_origin_product değerine PREDICTIVE_OPTIMIZATION göre günlüğe kaydedildi.
  • Databricks SQL'de gerçekleştirilmiş görünümler: SQL ambarında gerçekleştirilmiş bir görünüm oluşturduğunuzda, yenilemeleri işlemek için sunucusuz bir işlem hattı oluşturulur. Gerçekleştirilmiş görünüm için faturalama kayıtlarını, billing_origin_product = 'SQL' ve usage_metadata.dlt_pipeline_id IS NOT NULL konumlarındaki kayıtları sorgulayarak görüntüleyebilirsiniz.
  • Ayrılmış işlemde ayrıntılı erişim denetimi: billing_origin_product değeri FINE_GRAINED_ACCESS_CONTROL olan olarak tanımlanabilir.
  • Lakeflow Connect: Yönetilen bağlayıcı veri alımı, billing_origin_product değerinde LAKEFLOW_CONNECT ile günlüğe kaydedilir.
  • AI Arama: billing_origin_product değeri VECTOR_SEARCH olarak günlüğe kaydedildi.
  • Temiz odalar: Kullanımla ilgili temiz oda bilgisi usage_metadata.central_clean_room_id altında kaydedilir.
  • Çevrimiçi tablolar (eski): billing_origin_product değerinde bir ONLINE_TABLES ile günlüğe kaydedilir.

Harcamaları izlemek için bütçeleri kullanma

Hesap yöneticileri maliyetleri gruplandırmak ve uyarıları ayarlamak için bütçe ayarlayabilir. Bkz. bütçe oluşturma ve izleme.

Kullanım panosunu içeri aktarma

Hesap yöneticileri, maliyet yönetimi panolarını hesaplarındaki Unity Kataloğu özellikli herhangi bir çalışma alanına aktarabilir. Bkz. Kullanım panosunu içeri aktarma.

Kullanıcı arabiriminde iş veya not defteri bulma

Kullanıcı arabiriminde faturalama kaydını temel alan bir iş veya not defteri bulmak için kullanım kaydından usage_metadata.job_id veya usage_metadata.notebook_id değerini kopyalayın. Bu kimlikler sabittir ve iş adı veya not defteri yolu değişse bile kullanılabilir.

job_id temel alınarak kullanıcı arabiriminde iş bulmak için:

  1. job_id kullanım kaydından kopyalayın. Bu örnekte, kimliğin 700809544510906 olduğunu varsayalım.
  2. Azure Databricks çalışma alanında, İşler & İşlem Hatları kullanıcı arayüzüne gidin.
  3. Benim adıma erişilebilir filtresini seçin.
  4. Kimliği (700809544510906) İşleri Filtrele arama çubuğuna yapıştırın.

Kullanıcı arabiriminde notebook_id temelinde bir not defteri bulmak için aşağıdaki yönergeleri kullanın.

  1. notebook_id kullanım kaydından kopyalayın. Bu örnekte, kimliğin 700809544510906 olduğunu varsayalım.
  2. Not defteriyle aynı Azure Databricks çalışma alanında Workspaces kullanıcı arabirimine gidin.
  3. Listedeki herhangi bir not defterine tıklayın.
  4. Not defterini açtıktan sonra tarayıcı adres çubuğundaki URL'yi inceleyin. Şöyle https://<databricks-account-url>/?o=<workspace-ID>#notebook/<notebook ID>/command/<command ID> görünmelidir.
  5. Tarayıcı adres çubuğunda not defteri kimliğini ilk adımda kopyaladığınız kimlikle değiştirin, ardından not defteri kimliğinden sonraki her şeyi silin. Şöyle https://<databricks-account-url>/?o=<workspace ID>#notebook/700809544510906 görünmelidir.
  6. Not defterini açtıktan sonra Paylaş düğmesine tıklayarak not defteri sahibini görüntüleyebilirsiniz.

Sunucusuz harcamaları izlemek için uyarıları kullanma

Uyarılar, sunucusuz harcamalarınız hakkında bilgi sahibi olmak için güçlü bir yoldur. Uyarılarla, sorgu sonuçlarınızda belirli koşullar karşılandığında bildirim alabilirsiniz. Uyarı oluşturmayı öğrenmek için bkz . Uyarı oluşturma.

Bütçeleri izlemek için aşağıdaki sorgulara uyarılar ekleyebilirsiniz. Her sorguda {budget} sembolünü seçtiğiniz bütçeyle değiştirin.

Son 30 gün içinde herhangi bir çalışma alanı harcaması eşiği aştığında uyarı verme

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. {budget} öğesini seçtiğiniz bütçeyle değiştirin.

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}

Kullanıcı son 30 gün içinde eşiği aştığında uyarır

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. {budget} öğesini seçtiğiniz bütçeyle değiştirin.

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}

Bir iş son 30 gün içinde eşiği aştığında uyarır

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. {budget} öğesini seçtiğiniz bütçeyle değiştirin.

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}

Örnek sorgulamalar

Hesabınızda sunucusuz kullanım hakkında içgörüler elde etmek için aşağıdaki sorguları kullanın:

Sunucusuz not defterlerini toplam harcamaya göre sıralama

Bu sorgu, DBU tüketimine göre azalan sırada not defterlerinin listesini ve her not defterinin tüketilen DBU sayısını döndürür:

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

Sunucusuz işleri toplam harcamaya göre sıralama

Bu sorgu, DBU tüketimine göre azalan sırada işlerin ve her işin tüketilen DBU sayısını içeren bir liste döndürür:

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

Belirli bir kullanıcı tarafından kullanılan DSU'lar hakkında rapor

Bu sorgu, belirli bir kullanıcı veya hizmet sorumlusu tarafından çalıştırılan sunucusuz işlem kullanan not defterlerinin ve işlerin listesini ve her iş yükü tarafından kullanılan DBU sayısını döndürür:

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

Özel etiketi paylaşan iş yükleri tarafından kullanılan sunucusuz işlem DBU'ları hakkında rapor oluşturma

Bu sorgu, aynı özel etiketi paylaşan sunucusuz işlem kullanan işlerin listesini ve her iş yükü tarafından kullanılan DBU sayısını döndürür:

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

Performans modunda tüketilen DBU'lara ilişkin rapor

Bu sorgu, son 30 gün içindeki performans moduna (PERFORMANCE_OPTIMIZED veya STANDARD) ve iş yükü türüne (işler veya işlem hatları) göre sunucusuz DBU tüketimini özetler:

SELECT
  product_features.performance_target,
  billing_origin_product,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  product_features.is_serverless
  and billing_origin_product in ('JOBS','DLT')
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC