Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment utiliser la system.billing.usage table par elle-même ou jointe avec d’autres tables système pour obtenir une image de l’utilisation d’Azure Databricks de votre compte. Les articles spécifiques aux fonctionnalités suivants sont également disponibles :
- Surveiller les coûts de calcul serverless
- Surveiller les coûts des travaux et la performance
- Surveiller les coûts de service du modèle
Guide pratique pour lire la table d’utilisation
Les utilisateurs disposant des autorisations d’accès aux données de table système peuvent afficher et interroger les journaux de facturation de leur compte, situés à l’adresse system.billing.usage. Chaque enregistrement de facturation inclut des colonnes qui attribuent la quantité d’utilisation aux ressources, identités et produits spécifiques impliqués.
- La colonne
usage_metadatainclut un struct contenant des informations sur les ressources ou les objets impliqués dans l’utilisation. - La colonne
identity_metadatainclut des informations sur l’utilisateur ou le principal de service qui a engagé l’utilisation. - La colonne
custom_tagsinclut des balises appliquées à la ressource de calcul associée à l’utilisation. Cela inclut également des balises ajoutées par des stratégies de budget serverless pour vous permettre d’attribuer une utilisation des services serverless. - Les colonnes
billing_origin_productetproduct_featuresvous donnent des informations sur le produit et les fonctionnalités exacts utilisés.
Pour obtenir une référence complète du tableau d'usage facturable, consultez la référence du tableau du système d'utilisation.
Opérationnaliser les données de facturation
Databricks recommande d'utiliser les tableaux de bord IA/BI pour créer des tableaux de bord de supervision des coûts à l'aide des données de facturation provenant des tables système. Vous pouvez créer un tableau de bord ou les administrateurs de compte peuvent importer un tableau de bord de supervision des coûts prédéfini et personnalisable. Consultez les tableaux de bord d'utilisation .
Vous pouvez également ajouter des alertes à vos requêtes pour vous aider à rester informé des données d’utilisation. Consultez Créer une alerte.
Exemples de requêtes
Les requêtes suivantes fournissent des exemples de la façon dont vous pouvez utiliser les system.billing.usage données de table pour obtenir des insights sur l’utilisation de votre compte.
- Combien de DBUs de chaque produit ont été utilisés ce mois-ci ?
- Quels travaux ont consommé les plus d’unités de base de données ?
- Combien d’utilisation peut être attribuée aux ressources avec une balise spécifique ?
- Me montrer les produits où l’utilisation augmente
- Quelle est la tendance d'utilisation du Calcul à usage général (Photon) ?
- Quelle est la consommation DBU d’une vue matérialisée ou d’une table de diffusion en continu ?
- Quelle est la consommation DBU d’un pipeline serverless ?
- Quelle est la tendance quotidienne de la consommation DBU ?
- Attribuer les coûts au propriétaire de la ressource de calcul
- Enrichir l’utilisation avec un nom de travail
- Associer les prix avec les tableaux d'utilisation
- Estimer les coûts du module complémentaire pour l’utilisation dans le mois calendrier précédent
Combien de DBUs de chaque produit ont été utilisées ce mois-ci ?
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
Quels travaux ont consommé les plus d’unités de base de données ?
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
Combien d’utilisation peut être attribuée aux ressources avec une balise spécifique ?
Vous pouvez décomposer les coûts de différentes façons. Cet exemple montre comment décomposer les coûts par une balise personnalisée. Remplacez la clé et la valeur de la balise personnalisée dans la requête.
SELECT
sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
custom_tags [:key] = :value
GROUP BY 1, 2
Me montrer les produits où l’utilisation augmente
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 "2025-04-01" and "2025-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
"2025-05-01" and "2025-05-30"
GROUP BY
billing_origin_product
) as after
WHERE
before.billing_origin_product = after.billing_origin_product
SORT BY
growth_rate DESC
Quelle est la tendance d'utilisation du calcul polyvalent (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 > "2025-04-15"
GROUP BY
sku_name, usage_date
Quelle est la consommation DBU d’une vue matérialisée ou d’une table de diffusion en continu ?
Pour obtenir l’utilisation et la référence SKU DBU pour une vue matérialisée ou une table de streaming spécifique, envoyez une requête à la table système d’utilisation facturable (system.billing.usage). Entrez un horodatage en tant que paramètre pour interroger les résultats après une date spécifiée.
La requête suivante récupère l'utilisation de la DBU pour la vue matérialisée portant le nom complet (<catalog>.<schema>.<table>) de users.cost_tracking.mv1.
WITH pipeline_id (
SELECT
usage_metadata.dlt_pipeline_id as pipeline_id
FROM
system.billing.usage
WHERE
usage_metadata.uc_table_catalog = 'users'
AND usage_metadata.uc_table_schema = 'cost_tracking'
AND usage_metadata.uc_table_name = 'mv1'
LIMIT 1
)
SELECT
u.sku_name,
u.usage_date,
SUM(u.usage_quantity) AS `DBUs`
FROM
system.billing.usage u JOIN pipeline_id p
WHERE
u.usage_metadata.dlt_pipeline_id = p.pipeline_id
AND u.usage_start_time > :usage_start_time
GROUP BY
ALL
Quelle est la consommation DBU d’un pipeline serverless ?
Pour obtenir l'utilisation des DBU et le SKU pour un pipeline sans serveur, soumettez une requête à la table système de consommation facturable pour les enregistrements où usage_metadata.dlt_pipeline_id est fixé à l'ID du pipeline. Vous trouverez l’ID de pipeline sous l’onglet Détails du pipeline lors de l’affichage d’un pipeline dans l’interface utilisateur des pipelines déclaratifs De Lakeflow Spark. Pour limiter la consommation par date, spécifiez une date de début, une date de fin ou une plage de dates. La requête suivante récupère l’utilisation de DBU de décembre 2024 pour le pipeline avec l’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
Quelle est la tendance quotidienne de la consommation 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
Attribuer les coûts au propriétaire de la ressource de calcul
Si vous cherchez à réduire les coûts de calcul, vous pouvez combiner la table usage avec la table compute.clusters pour déterminer quels propriétaires de ressources de calcul dans votre compte utilisent le plus de DBUs.
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 >= '2025-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;
Enrichir l’utilisation avec un nom de travail
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"
Associer la tarification aux tableaux d'utilisation
Le tableau list_prices inclut les prix de liste au fil du temps pour chaque référence SKU disponible. Vous pouvez joindre la table usage pour afficher le coût d'inscription de certaines utilisations spécifiques.
Par exemple, la requête suivante retourne le coût total attribué à une balise particulière au cours d’un mois.
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 "2025-05-01" AND "2025-05-31"
Estimer les coûts du module complémentaire pour l’utilisation au cours du mois calendrier précédent
Cette requête applique un pourcentage simple à toutes les utilisations de la période. Notez que cela peut différer légèrement de la monétisation réelle en raison de la façon dont les droits pour certains modules complémentaires sont gérés. Remplacez le taux d’extension par le taux de votre compte.
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 "2025-02-01" AND "2025-02-29"