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:
- Sunucusuz işlem maliyetlerini izleme
- İş maliyetlerini ve performansı izleme
- Model hizmet maliyetlerini izleyin
Kullanım tablosunu okuma
Sistem tablosu verilerine erişme izni olan kullanıcılar, system.billing.usage
konumunda 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
veproduct_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ığı?
- En çok DBU kullanan işler hangileridir?
- Belirli bir etikete sahip kaynaklara ne kadar kullanım bağlanabilir?
- Kullanımın arttığı ürünleri göster
- Tüm Amaçlı İşlem'in (Foton) kullanım eğilimi nedir?
- Gerçekleştirilmiş bir görünümün veya akış tablosunun DBU tüketimi nedir?
- Sunucusuz DLT işlem hattının DBU tüketimi nedir?
- DBU tüketiminde günlük eğilim nedir?
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-30
kullanı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 işlem sahibine atayın
- İş adıyla kullanımı zenginleştirme
- Fiyatlandırmaya kullanım tablolarıyla katılma
- Önceki takvim ayındaki kullanım için eklenti maliyetlerini tahmin etme
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"