Afficher et interroger les logs de facturation
Cet article explique comment les administrateurs peuvent surveiller l'utilisation dans leurs comptes SAP Databricks à l'aide des tables du système de facturation.
Que sont les tables système ?
Les tables système sont un magasin analytique des données opérationnelles de votre compte, que l'on trouve dans le catalogue system. Les tables système peuvent être utilisées pour l'observabilité historique de votre compte. Elles sont en lecture seule et ne peuvent pas être modifiées.
Pour accorder l'accès au schéma billing, un utilisateur qui est à la fois administrateur du metastore et administrateur de compte doit accorder les permissions USE et SELECT sur les schémas système.
Tables de facturation disponibles
Il y a deux tables que vous pouvez utiliser pour surveiller les coûts :
system.billing.usage: vous donne accès aux données d'utilisation facturable à l'échelle du compte.system.billing.list_prices: Vous donne accès à un historique des logs de Tarifs des SKU. Un enregistrement est ajouté à chaque modification du prix d'une SKU.
Schéma de la table d'utilisation facturable
Chemin de la table : Cette table système se trouve à l'emplacement system.billing.usage.
La table système d'utilisation facturable utilise le schéma suivant :
Nom de colonne | Type de données | Description | Exemple |
|---|---|---|---|
| chaîne | ID unique pour cet enregistrement d'utilisation |
|
| chaîne | ID du compte pour lequel ce rapport a été généré |
|
| chaîne | ID du workspace auquel cette utilisation était associée |
|
| chaîne | Nom du SKU |
|
| chaîne | Cloud associé à cette utilisation. Les valeurs possibles sont |
|
| Timestamp | L’heure de start pertinente pour cet enregistrement d’utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, |
|
| Timestamp | L'heure de fin pertinente pour cet enregistrement d'utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, |
|
| date | Date de l’enregistrement d’utilisation, ce champ peut être utilisé pour une agrégation plus rapide par date |
|
| carte | Balises personnalisées propagées à partir de la politique d’utilisation serverless associée à l’utilisation |
|
| chaîne | Unité de mesure de cette utilisation |
|
| décimal | Nombre d'unités consommées pour cet enregistrement |
|
| structure | Métadonnées fournies par le système concernant l'utilisation, y compris les ID pour les ressources de compute et les jobs (le cas échéant). Voir Métadonnées d'utilisation. | Consultez les métadonnées d'utilisation |
| structure | Métadonnées fournies par le système sur les identités impliquées dans l'utilisation. Consultez les métadonnées d'identité. | Consultez les métadonnées d'identité |
| chaîne | Si l'enregistrement est original, une rétractation ou une nouvelle déclaration. La valeur est |
|
| date | Date d'ingestion de l'enregistrement dans la table |
|
| chaîne | Le produit qui a généré l'utilisation. Certains produits peuvent être facturés sous la forme de SKU différents. Pour les valeurs possibles, consultez Produit. |
|
| structure | Détails sur les fonctionnalités spécifiques du produit utilisées. |
|
| chaîne | Le type d'utilisation attribué au produit ou à la charge de travail à des fins de facturation. Les valeurs possibles sont |
|
Schéma de table des tarifs
Chemin de la table : Cette table système se trouve à l'emplacement system.billing.list_prices.
La table du système de tarification utilise le schéma suivant :
Nom de colonne | Type de données | Description | Exemple |
|---|---|---|---|
| Timestamp | Heure à laquelle ce prix est entré en vigueur en UTC |
|
| Timestamp | L'heure à laquelle ce prix a cessé d'être effectif en UTC. |
|
| chaîne | ID du compte pour lequel ce rapport a été généré |
|
| chaîne | Nom du SKU |
|
| chaîne | Nom du cloud auquel ce prix s'applique. Les valeurs possibles sont |
|
| chaîne | La devise dans laquelle ce prix est exprimé. La valeur sera |
|
| chaîne | L'unité de mesure qui est monétisée. Les valeurs possibles sont |
|
| structure | Un champ de données structuré qui inclut les informations de tarifs au prix catalogue publié. La clé |
|
Comment lire la table d'utilisation
Chaque enregistrement de facturation dans la table usage comprend des colonnes qui attribuent la quantité d'utilisation aux Ressources, identités et produits spécifiques impliqués. Pour aider à attribuer l'utilisation à des charges de travail, des fonctionnalités et des identités spécifiques, utilisez les colonnes suivantes :
- La colonne
usage_metadatainclut une structure avec des informations sur les ressources ou les objets impliqués dans l'utilisation. - La colonne
identity_metadatainclut des informations sur l'utilisateur ou le service principal qui a entraîné l'utilisation. - La colonne
custom_tagsinclut des tags ajoutés par les politiques d'utilisation serverless. Pour plus d'informations, consultez Attribution de l'utilisation avec les politiques d'utilisation serverless. - La colonne
billing_origin_productvous donne des informations sur le produit exact utilisé.
Référence des métadonnées d'utilisation
Les valeurs dans usage_metadata sont toutes des chaînes qui vous informent sur les objets Workspace impliqués dans l'enregistrement d'utilisation.
Seul un sous-ensemble de ces valeurs est renseigné dans chaque enregistrement d'utilisation, en fonction du type de compute et des fonctionnalités utilisées. Le tableau suivant présente les valeurs que vous pouvez vous attendre à renseigner dans votre compte SAP Databricks.
Valeur | Description |
|---|---|
| ID du Job associé à l'enregistrement d'utilisation |
| ID du SQL Warehouse associé à l'enregistrement d'utilisation |
| ID de l'exécution du job associé à l'enregistrement d'utilisation |
| ID du Notebook associé à l'utilisation |
| Le nom de l'Endpoint de déploiement de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation |
| ID de l'Endpoint de serveur de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation |
| Nom unique visible par l'utilisateur de l'exécution d'affinement du modèle de fondation associée à l'enregistrement d'utilisation. |
| Nom donné par l'utilisateur du Job associé à l'enregistrement d'utilisation |
| Chemin de stockage du Workspace du Notebook associé à l'utilisation |
| Région du Workspace associée à l'utilisation. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau. |
| Région de la ressource consultée. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau. |
| Obsolète. Utilisez plutôt |
| ID de la politique d'utilisation serverless associée à l'enregistrement d'utilisation |
Référence des métadonnées d'identité
La colonne identity_metadata fournit plus d'informations sur les identités impliquées dans l'utilisation.
- Le champ
run_asLogs qui a exécuté la charge de travail. Ces valeurs ne sont renseignées que pour certains types de workloads énumérés dans le tableau ci-dessous. - Le champ
owned_byne s'applique qu'à l'utilisation des SQL Warehouse et logs l'utilisateur ou le Service Principal propriétaire du SQL Warehouse responsable de l'utilisation.
identités run_as
L'identité enregistrée dans identity_metadata.run_as dépend du produit associé à l'utilisation. Reportez-vous au tableau suivant pour le comportement identity_metadata.run_as :
Type de Workload | Identité de |
|---|---|
Serverless compute pour les jobs | L'utilisateur ou le Service Principal défini dans le paramètre |
Compute serverless pour les Notebooks | L’utilisateur qui a exécuté les commandes du Notebook (plus précisément, l’utilisateur qui a créé la session du Notebook). Pour les Notebooks partagés, cela inclut l’utilisation par d’autres utilisateurs partageant la même session de Notebook. |
Affinement du modèle de fondation | L'utilisateur ou le Service Principal qui a lancé l'exécution d'entraînement de l'affinement. |
profilage des données | L'utilisateur qui a créé le profil. |
Référence du produit d'origine de facturation
La colonne billing_origin_product indique le produit Databricks associé à l'enregistrement d'utilisation. Les valeurs incluent :
JOBSSQLMODEL_SERVINGINTERACTIVEDEFAULT_STORAGEVECTOR_SEARCHDATA_QUALITY_MONITORINGFOUNDATION_MODEL_TRAININGAGENT_EVALUATIONNETWORKINGCoûts associés à la connexion du compute serverless à vos ressources
Exemples de query
Utilisez les queries suivantes pour obtenir des insights sur l'utilisation dans votre compte :
- Joindre la table list_prices à la table usage
- Identifier les notebooks coûteux
- Identifier les jobs coûteux
- Rapport sur les DBU consommées par un utilisateur donné
- Rapport sur les DBU consommées par les workloads qui partagent une étiquette personnalisée.
Joindre la table list_prices à la table usage
Le tableau list_prices inclut les prix catalogue au fil du temps pour chaque SKU disponible. Vous pouvez joindre le tableau usage pour consulter le coût d'inscription de certaines utilisations.
Par exemple, la query suivante renvoie le coût total attribué à un utilisateur particulier pendant un mois. Veillez à insérer une identité valide dans la section entre crochets.
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 identity_metadata.run_as = {{'sample identity'}}
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-04-01" AND "2025-04-15"
Identifier les notebooks coûteux
Cette query renvoie la liste des Notebooks et le nombre de DBU consommées par chaque Notebook, par ordre décroissant de consommation de 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
Identifier les Jobs coûteux
Cette query renvoie une liste de jobs et le nombre de DBU consommés par chaque job, par ordre décroissant de consommation de DBU :
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
Rapport sur les DBU consommées par un utilisateur particulier
Cette query renvoie une liste de Notebooks et de Jobs exécutés par un utilisateur particulier ou un Service Principal, ainsi que le nombre de DBU consommées par chaque charge de travail. Veillez à insérer une adresse e-mail utilisateur valide à l'aide des paramètres.
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 = format_string('%s@%s.%s', :user_name, :domain_name, :top_level_domain)
and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
1,2,3,4
ORDER BY
total_dbu DESC
Rapport sur les DBU consommées par les charges de travail qui partagent une balise personnalisée
Cette query retourne une liste de Job qui partagent la même étiquette personnalisée, et le nombre de DBU consommées par chaque charge de travail :
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