Aracılığıyla paylaş


Sistem tablolarını kullanarak maliyetleri izleme

Bu makalede, hesabınızın Azure Databricks kullanımının bir resmini almak için system.billing.usage tablosunu kendi başına nasıl kullanabileceğiniz veya diğer sistem tablolarıyla nasıl birleştirebileceğiniz açıklanır. Özelliğe özgü aşağıdaki makaleler de kullanılabilir:

Kullanım tablosunu okuma

Sistem tablosu verilerine erişme izni olan kullanıcılar, system.billing.usagekonumunda bulunan hesap faturalama günlüklerini görüntüleyebilir ve sorgulayabilir. Her faturalama kaydı, kullanım miktarını ilgili kaynaklara, kimliklere ve ürünlere bağlayan sütunlar içerir.

  • usage_metadata sütunu, kullanıma dahil olan kaynaklar veya nesneler hakkında bilgi içeren bir yapı içerir.
  • identity_metadata sütunu, kullanımın tahakkuk ettiren kullanıcı veya hizmet sorumlusu hakkındaki bilgileri içerir.
  • custom_tags sütunu, kullanımla ilişkili işlem kaynağına uygulanan etiketleri içerir. Bu, sunucusuz kullanımı ilişkilendirebilmeniz için bütçe ilkeleri tarafından eklenen etiketleri de içerir.
  • billing_origin_product ve product_features sütunları, tam olarak kullanılan ürün ve özellikler hakkında bilgi verir.

Tam kullanım tablosu referansı için bkz. faturalanabilir kullanım sistemi tablosu referansı.

Faturalama verilerini kullanıma hazır hale getirme

Databricks, sistem tablosu faturalama verilerini kullanarak maliyet izleme panoları oluşturmak için AI/BI panolarının kullanılmasını önerir. Yeni bir pano oluşturabilir veya hesap yöneticileri önceden oluşturulmuş, özelleştirilebilir maliyet izleme panosunu içeri aktarabilir. Bkz. Kullanım gösterge panelleri.

Ayrıca, kullanım verileri hakkında bilgi sahibi olmanıza yardımcı olmak için sorgularınıza uyarılar ekleyebilirsiniz. Bkz. Uyarı oluştur.

Örnek sorgular

Aşağıdaki sorgular, hesabınızın kullanımıyla ilgili içgörüler elde etmek için system.billing.usage tablo verilerini nasıl kullanabileceğinize ilişkin örnekler sağlar.

Bu ay boyunca her bir ürünün kaç DBU'sunun kullanıldığı?

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

En çok DBU kullanan işler hangileridir?

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

Belirli bir etikete sahip kaynaklara ne kadar kullanım bağlanabilir?

Maliyetleri çeşitli yollarla ayırabilirsiniz. Bu örnek, maliyetleri özel bir etikete göre nasıl ayırabileceğinizi gösterir. Sorgudaki özel etiketin anahtarını ve değerini değiştirmeyi unutmayın.

SELECT
  sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
  system.billing.usage
WHERE
  custom_tags [:key] = :value
GROUP BY 1, 2

Kullanımın arttığı ürünleri göster

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

Tüm Amaçlı İşlem'in (Foton) kullanım eğilimi nedir?

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

Gerçekleştirilmiş bir görünümün veya akış tablosunun DBU tüketimi nedir?

Belirli bir gerçekleştirilmiş görünüm veya akış tablosu için DBU kullanımını ve SKU'yu almak için, usage_metadata.dlt_pipeline_id'ın, gerçekleştirilmiş görünüm veya akış tablosunun ilişkilendirildiği işlem hattının kimliğine ayarlandığı kayıtlar için faturalandırılabilir kullanım sistem tablosuna bir sorgu gönderin. Gerçekleştirilmiş görünümü veya akış tablosunu görüntülerken işlem hattı kimliğini Katalog Gezgini'ndeki Ayrıntılar sekmesinde bulabilirsiniz. Tüketimi tarihe göre sınırlamak için bir başlangıç tarihi, bitiş tarihi veya tarih aralığı belirtin. Aşağıdaki sorgu, 00732f83-cd59-4c76-ac0d-57958532ab5b kimliğine ve 2024-05-30kullanım başlangıç tarihine sahip işlem hattı için DBU kullanımını alır:

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

Sunucusuz DLT işlem hattının DBU tüketimi nedir?

Sunucusuz DLT işlem hattı için DBU kullanımını ve SKU'yu almak için, usage_metadata.dlt_pipeline_id işlem hattının kimliğine ayarlandığı kayıtlar için faturalanabilir kullanım sistemi tablosuna bir sorgu gönderin. DLT kullanıcı arabiriminde bir işlem hattını görüntülerken işlem hattı kimliğini İşlem Hattı Ayrıntıları sekmesinde bulabilirsiniz. Tüketimi tarihe göre sınırlamak için bir başlangıç tarihi, bitiş tarihi veya tarih aralığı belirtin. Aşağıdaki sorgu, kimliği 00732f83-cd59-4c76-ac0d-57958532ab5b olan işlem hattı için Aralık 2024'ten itibaren DBU kullanımını alır.

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

DBU tüketiminde günlük eğilim nedir?

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

Tablo birleştirme kullanım örnekleri

Aşağıdaki örneklerde, ek içgörüler elde etmek için kullanım tablosunu diğer sistem tablolarıyla birleştirme yollarınız gösterilmektedir.

Maliyetleri hesaplama sahibine atfetme

İşlem maliyetlerini azaltmak istiyorsanız, hesabınızdaki hangi küme sahiplerinin en çok DBU kullandığını öğrenmek için bu sorguyu kullanabilirsiniz.

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;

İş adıyla kullanımı zenginleştirme

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"

Fiyatlandırmayı kullanım tablolarıyla birleştirme

list_prices tablosu, kullanılabilir her SKU için zaman içindeki liste fiyatlarını içerir. Belirli kullanımların listeleme maliyetini görüntülemek için usage tablosuna katılabilirsiniz.

Örneğin, aşağıdaki sorgu bir ay içinde belirli bir etikete atfedilen toplam maliyeti döndürür:

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"

Önceki takvim ayındaki kullanım için eklenti maliyetlerini tahmin etme

Bu sorgu, dönem içindeki tüm kullanımlara basit bir yüzde uygular. Bunun, bazı eklentiler için yetkilendirmelerin nasıl yönetildiğinden dolayı gerçek paradan biraz farklı olabileceğini unutmayın. Eklenti oranını hesabınızın oranıyla değiştirin.

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"