Aller au contenu principal

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

record_id

chaîne

ID unique pour cet enregistrement d'utilisation

11e22ba4-87b9-4cc2-9770-d10b894b7118

account_id

chaîne

ID du compte pour lequel ce rapport a été généré

23e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

chaîne

ID du workspace auquel cette utilisation était associée

1234567890123456

sku_name

chaîne

Nom du SKU

ENTERPRISE_SAP_ALL_PURPOSE_SERVERLESS_COMPUTE_EUROPE_FRANKFURT

cloud

chaîne

Cloud associé à cette utilisation. Les valeurs possibles sont AWS, AZURE et GCP.

AWS

usage_start_time

Timestamp

L’heure de start pertinente pour cet enregistrement d’utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

2025-01-09 10:00:00.000+00:00

usage_end_time

Timestamp

L'heure de fin pertinente pour cet enregistrement d'utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

2025-01-09 11:00:00.000+00:00

usage_date

date

Date de l’enregistrement d’utilisation, ce champ peut être utilisé pour une agrégation plus rapide par date

2025-01-01

custom_tags

carte

Balises personnalisées propagées à partir de la politique d’utilisation serverless associée à l’utilisation

{ “team”: “marketing” }

usage_unit

chaîne

Unité de mesure de cette utilisation

DBU

usage_quantity

décimal

Nombre d'unités consommées pour cet enregistrement

259.2958

usage_metadata

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

identity_metadata

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é

record_type

chaîne

Si l'enregistrement est original, une rétractation ou une nouvelle déclaration. La valeur est ORIGINAL sauf si l'enregistrement est lié à une correction.

ORIGINAL

ingestion_date

date

Date d'ingestion de l'enregistrement dans la table usage

2024-01-01

billing_origin_product

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.

JOBS

product_features

structure

Détails sur les fonctionnalités spécifiques du produit utilisées.

is_serverless: true

usage_type

chaîne

Le type d'utilisation attribué au produit ou à la charge de travail à des fins de facturation. Les valeurs possibles sont COMPUTE_TIME, STORAGE_SPACE, NETWORK_BYTES, NETWORK_HOUR, API_OPERATION, ou TOKEN.

STORAGE_SPACE

Nom de colonne

Type de données

Description

Exemple

record_id

chaîne

ID unique pour cet enregistrement d'utilisation

11e22ba4-87b9-4cc2-9770-d10b894b7118

account_id

chaîne

ID du compte pour lequel ce rapport a été généré

23e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

chaîne

ID du workspace auquel cette utilisation était associée

1234567890123456

sku_name

chaîne

Nom du SKU

ENTERPRISE_SAP_ALL_PURPOSE_SERVERLESS_COMPUTE_EUROPE_FRANKFURT

cloud

chaîne

Cloud associé à cette utilisation. Les valeurs possibles sont AWS, AZURE et GCP.

AWS

usage_start_time

Timestamp

L’heure de start pertinente pour cet enregistrement d’utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

2025-01-09 10:00:00.000+00:00

usage_end_time

Timestamp

L'heure de fin pertinente pour cet enregistrement d'utilisation. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

2025-01-09 11:00:00.000+00:00

usage_date

date

Date de l’enregistrement d’utilisation, ce champ peut être utilisé pour une agrégation plus rapide par date

2025-01-01

custom_tags

carte

Balises personnalisées propagées à partir de la politique d’utilisation serverless associée à l’utilisation

{ “team”: “marketing” }

usage_unit

chaîne

Unité de mesure de cette utilisation

DBU

usage_quantity

décimal

Nombre d'unités consommées pour cet enregistrement

259.2958

usage_metadata

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

identity_metadata

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é

record_type

chaîne

Si l'enregistrement est original, une rétractation ou une nouvelle déclaration. La valeur est ORIGINAL sauf si l'enregistrement est lié à une correction.

ORIGINAL

ingestion_date

date

Date d'ingestion de l'enregistrement dans la table usage

2024-01-01

billing_origin_product

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.

JOBS

product_features

structure

Détails sur les fonctionnalités spécifiques du produit utilisées.

is_serverless: true

usage_type

chaîne

Le type d'utilisation attribué au produit ou à la charge de travail à des fins de facturation. Les valeurs possibles sont COMPUTE_TIME, STORAGE_SPACE, NETWORK_BYTES, NETWORK_HOUR, API_OPERATION, ou TOKEN.

STORAGE_SPACE

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

price_start_time

Timestamp

Heure à laquelle ce prix est entré en vigueur en UTC

2023-01-01T09:59:59.999Z

price_end_time

Timestamp

L'heure à laquelle ce prix a cessé d'être effectif en UTC.

2023-01-01T09:59:59.999Z

account_id

chaîne

ID du compte pour lequel ce rapport a été généré

1234567890123456

sku_name

chaîne

Nom du SKU

ENTERPRISE_SAP_ALL_PURPOSE_SERVERLESS_COMPUTE_EUROPE_FRANKFURT

cloud

chaîne

Nom du cloud auquel ce prix s'applique. Les valeurs possibles sont AWS, AZURE et GCP.

AWS, AZURE, ou GCP

currency_code

chaîne

La devise dans laquelle ce prix est exprimé. La valeur sera CU

CU

usage_unit

chaîne

L'unité de mesure qui est monétisée. Les valeurs possibles sont DBU, DSU, HOUR et GB.

DBU

pricing

structure

Un champ de données structuré qui inclut les informations de tarifs au prix catalogue publié. La clé default renverra toujours un prix unique qui peut être utilisé pour de simples estimations à long terme. La clé promotional représente un prix promotionnel temporaire que tous les clients obtiennent et qui pourrait être utilisé pour l'estimation des coûts pendant la période temporaire. La clé effective_list permet de résoudre les prix catalogue et promotionnels, et contient le prix catalogue effectif utilisé pour le calcul du coût. Certains modèles de Tarifs peuvent également inclure des clés supplémentaires qui fournissent plus de détails.

{ "default": "0.10", "promotional": {"default": "0.07"}, "effective_list": {"default": "0.07"} }

Nom de colonne

Type de données

Description

Exemple

price_start_time

Timestamp

Heure à laquelle ce prix est entré en vigueur en UTC

2023-01-01T09:59:59.999Z

price_end_time

Timestamp

L'heure à laquelle ce prix a cessé d'être effectif en UTC.

2023-01-01T09:59:59.999Z

account_id

chaîne

ID du compte pour lequel ce rapport a été généré

1234567890123456

sku_name

chaîne

Nom du SKU

ENTERPRISE_SAP_ALL_PURPOSE_SERVERLESS_COMPUTE_EUROPE_FRANKFURT

cloud

chaîne

Nom du cloud auquel ce prix s'applique. Les valeurs possibles sont AWS, AZURE et GCP.

AWS, AZURE, ou GCP

currency_code

chaîne

La devise dans laquelle ce prix est exprimé. La valeur sera CU

CU

usage_unit

chaîne

L'unité de mesure qui est monétisée. Les valeurs possibles sont DBU, DSU, HOUR et GB.

DBU

pricing

structure

Un champ de données structuré qui inclut les informations de tarifs au prix catalogue publié. La clé default renverra toujours un prix unique qui peut être utilisé pour de simples estimations à long terme. La clé promotional représente un prix promotionnel temporaire que tous les clients obtiennent et qui pourrait être utilisé pour l'estimation des coûts pendant la période temporaire. La clé effective_list permet de résoudre les prix catalogue et promotionnels, et contient le prix catalogue effectif utilisé pour le calcul du coût. Certains modèles de Tarifs peuvent également inclure des clés supplémentaires qui fournissent plus de détails.

{ "default": "0.10", "promotional": {"default": "0.07"}, "effective_list": {"default": "0.07"} }

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_metadata inclut une structure avec des informations sur les ressources ou les objets impliqués dans l'utilisation.
  • La colonne identity_metadata inclut des informations sur l'utilisateur ou le service principal qui a entraîné l'utilisation.
  • La colonne custom_tags inclut 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_product vous 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

job_id

ID du Job associé à l'enregistrement d'utilisation

warehouse_id

ID du SQL Warehouse associé à l'enregistrement d'utilisation

job_run_id

ID de l'exécution du job associé à l'enregistrement d'utilisation

notebook_id

ID du Notebook associé à l'utilisation

endpoint_name

Le nom de l'Endpoint de déploiement de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation

endpoint_id

ID de l'Endpoint de serveur de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation

run_name

Nom unique visible par l'utilisateur de l'exécution d'affinement du modèle de fondation associée à l'enregistrement d'utilisation.

job_name

Nom donné par l'utilisateur du Job associé à l'enregistrement d'utilisation

notebook_path

Chemin de stockage du Workspace du Notebook associé à l'utilisation

source_region

Région du Workspace associée à l'utilisation. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau.

destination_region

Région de la ressource consultée. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau.

budget_policy_id

Obsolète. Utilisez plutôt usage_policy_id. ID de la politique d’utilisation serverless associée à la charge de travail.

usage_policy_id

ID de la politique d'utilisation serverless associée à l'enregistrement d'utilisation

Valeur

Description

job_id

ID du Job associé à l'enregistrement d'utilisation

warehouse_id

ID du SQL Warehouse associé à l'enregistrement d'utilisation

job_run_id

ID de l'exécution du job associé à l'enregistrement d'utilisation

notebook_id

ID du Notebook associé à l'utilisation

endpoint_name

Le nom de l'Endpoint de déploiement de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation

endpoint_id

ID de l'Endpoint de serveur de modèle ou de l'Endpoint de recherche vectorielle associé à l'enregistrement d'utilisation

run_name

Nom unique visible par l'utilisateur de l'exécution d'affinement du modèle de fondation associée à l'enregistrement d'utilisation.

job_name

Nom donné par l'utilisateur du Job associé à l'enregistrement d'utilisation

notebook_path

Chemin de stockage du Workspace du Notebook associé à l'utilisation

source_region

Région du Workspace associée à l'utilisation. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau.

destination_region

Région de la ressource consultée. Renvoie une valeur uniquement pour l'utilisation Serverless liée au réseau.

budget_policy_id

Obsolète. Utilisez plutôt usage_policy_id. ID de la politique d’utilisation serverless associée à la charge de travail.

usage_policy_id

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_as Logs 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_by ne 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 run_as

Serverless compute pour les jobs

L'utilisateur ou le Service Principal défini dans le paramètre run_as. Par default, les Jobs s'exécutent avec l'identité du propriétaire du Job, mais les administrateurs peuvent modifier cela pour qu'il s'agisse d'un autre utilisateur ou Service Principal.

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.

Type de Workload

Identité de run_as

Serverless compute pour les jobs

L'utilisateur ou le Service Principal défini dans le paramètre run_as. Par default, les Jobs s'exécutent avec l'identité du propriétaire du Job, mais les administrateurs peuvent modifier cela pour qu'il s'agisse d'un autre utilisateur ou Service Principal.

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 :

  • JOBS
  • SQL
  • MODEL_SERVING
  • INTERACTIVE
  • DEFAULT_STORAGE
  • VECTOR_SEARCH
  • DATA_QUALITY_MONITORING
  • FOUNDATION_MODEL_TRAINING
  • AGENT_EVALUATION
  • NETWORKINGCoû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

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.

SQL
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 :

SQL
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 :

SQL
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.

SQL
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 :

SQL
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