Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie die system.billing.usage Tabelle eigenständig verwenden oder mit anderen Systemtabellen verknüpft werden können, um ein Bild der Azure Databricks-Nutzung Ihres Kontos zu erhalten. Die folgenden featurespezifischen Artikel sind ebenfalls verfügbar:
- Serverlose Berechnungskosten überwachen
- Überwache Jobkosten und Leistung
- Überwachen der Kosten zur Modellbereitstellung
So lesen Sie die Verwendungstabelle
Benutzer mit Berechtigungen für den Zugriff auf Systemtabellendaten können die Abrechnungsprotokolle ihres Kontos anzeigen und abfragen, die sich unter system.billing.usage. Jeder Abrechnungseintrag enthält Spalten, die den Nutzungsbetrag den spezifischen Ressourcen, Identitäten und Produkten zugeordnet haben.
- Die Spalte
usage_metadataenthält eine Struktur mit Informationen zu den Ressourcen oder Objekten, die an der Verwendung beteiligt sind. - Die Spalte
identity_metadataenthält Informationen zum Benutzer oder Dienstprinzipal, der die Nutzung verursacht hat. - Die spalte
custom_tagsenthält Tags, die auf die der Verwendung zugeordnete Computeressource angewendet werden. Dazu gehören auch Tags, die von serverlosen Budgetrichtlinien hinzugefügt werden, sodass Sie serverlose Verwendung attributieren können. - Die Spalten
billing_origin_productundproduct_featuresgeben Ihnen Informationen über das genaue Produkt und die verwendeten Features.
Einen vollständigen Verweis auf die Verwendungstabelle finden Sie in dem Verweis auf die Tabelle des Abrechnungssystems.
Operationalisieren von Abrechnungsdaten
Databricks empfiehlt die Verwendung von AI/BI-Dashboards zum Erstellen von Kostenüberwachungs-Dashboards mit Systemtabellenabrechnungsdaten. Sie können ein neues Dashboard erstellen, oder Kontoadministratoren können ein vordefiniertes, anpassbares Kostenüberwachungsdashboard importieren. Weitere Informationen finden Sie unter Nutzungsdashboards.
Sie können Ihren Abfragen auch Benachrichtigungen hinzufügen, damit Sie über Nutzungsdaten informiert bleiben können. Siehe Erstellen einer Warnung.
Beispielabfragen
Die folgenden Abfragen enthalten Beispiele dafür, wie Sie die system.billing.usage Tabellendaten verwenden können, um Einblicke in die Nutzung Ihres Kontos zu erhalten.
- Wie viele DBUs jedes Produkts wurden in diesem Monat verwendet?
- Welche Jobs verbrauchten die meisten DBUs?
- Wie viel Nutzung kann bestimmten getaggten Ressourcen zugeordnet werden?
- Zeigen Sie mir die Produkte, bei denen die Nutzung zunimmt.
- Was ist der Nutzungstrend von All Purpose Compute (Photon)?
- Was ist der DBU-Verbrauch einer materialisierten Ansichts- oder Streamingtabelle?
- Was ist der DBU-Verbrauch einer serverlosen Pipeline?
- Was ist der tägliche Trend des DBU-Konsums?
- Kosten dem Eigentümer der Rechenressourcen zurechnen
- Verwendung mit einem Jobnamen anreichern
- Verknüpfen der Preise mit Verwendungstabellen
- Schätzen der Add-On-Kosten für die Nutzung im vorherigen Kalendermonat
Wie viele DBUs jedes Produkts wurden in diesem Monat verwendet?
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
Welche Aufträge verbrauchten die meisten DBUs?
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
Wie viel Verbrauch kann Ressourcen mit einem spezifischen Tag zugeordnet werden?
Sie können die Kosten auf verschiedene Weise aufschlüsseln. In diesem Beispiel wird gezeigt, wie die Kosten mithilfe eines benutzerdefinierten Tags aufgeschlüsselt werden. Ersetzen Sie den Schlüssel und Wert des benutzerdefinierten Tags in der Abfrage.
SELECT
sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
custom_tags [:key] = :value
GROUP BY 1, 2
Zeigen Sie mir die Produkte an, bei denen die Nutzung wächst
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
Was ist der Nutzungstrend von All Purpose Compute (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
Was ist der DBU-Verbrauch einer materialisierten Ansichts- oder Streamingtabelle?
Um die DBU-Verwendung und die SKU für eine bestimmte materialisierte Ansicht oder Streamingtabelle abzurufen, übermitteln Sie eine Abfrage an die Tabelle des abrechnungsfähigen Nutzungssystems (system.billing.usage). Geben Sie einen Zeitstempel als Parameter ein, um Ergebnisse nach einem angegebenen Datum abzufragen.
Die folgende Abfrage ruft die DBU-Verwendung für die materialisierte Ansicht mit dem vollqualifizierten Namen (<catalog>.<schema>.<table>) von 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
Was ist der DBU-Verbrauch einer serverlosen Pipeline?
Um die DBU-Verwendung und SKU für eine serverlose Pipeline abzurufen, senden Sie eine Abfrage an die abrechnungsfähige Nutzungssystemtabelle für Datensätze, bei denen usage_metadata.dlt_pipeline_id auf die ID der Pipeline gesetzt ist. Sie finden die Pipeline-ID auf der Registerkarte " Pipelinedetails " beim Anzeigen einer Pipeline in der Benutzeroberfläche von Lakeflow Spark Declarative Pipelines. Wenn Sie den Verbrauch nach Datum begrenzen möchten, geben Sie ein Startdatum, ein Enddatum oder einen Datumsbereich an. Die folgende Abfrage ruft die DBU-Verwendung ab Dezember 2024 für die Pipeline mit id 00732f83-cd59-4c76-ac0d-57958532ab5bab.
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
Was ist der tägliche Trend des DBU-Konsums?
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
Kosten den Inhaber der Rechenressource zuordnen
Wenn Sie die Berechnungskosten reduzieren möchten, können Sie die Tabelle mit der usagecompute.clusters Tabelle verbinden, um herauszufinden, welche Computeressourcenbesitzer in Ihrem Konto die meisten DBUs verwenden.
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;
Erweitern der Nutzung mit einem Auftragsnamen
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"
Verknüpfen der Preise mit Verwendungstabellen
Die list_prices Tabelle enthält Listenpreise im Laufe der Zeit für jede verfügbare SKU. Sie können der usage Tabelle beitreten, um die Auflistungskosten bestimmter Verwendungen anzuzeigen.
Die folgende Abfrage gibt beispielsweise die Gesamtkosten zurück, die einem bestimmten Tag in einem Monat zugeordnet sind.
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"
Schätzung der Zusatzkosten für die Nutzung im vorherigen Kalendermonat
Diese Abfrage wendet einen einfachen Prozentsatz auf alle Verwendungen im Zeitraum an. Beachten Sie, dass sich dies geringfügig von der tatsächlichen Monetarisierung unterscheidet, da wie die Berechtigungen für einige Add-Ons verwaltet werden. Ersetzen Sie die Zusatzrate durch die Rate Ihres Kontos.
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"