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 Kosten Ihrer serverlosen Computerressourcennutzung mithilfe der Tabelle für das abrechnungsfähige Nutzungssystem überwachen können.
Sie können die Verwendung des serverlosen Computing für Notebooks und Aufträge überwachen, indem Sie die Systemtabelle für die abrechenbare Nutzung (system.billing.usage
) abfragen, die Benutzer- und Workloadattribute für serverlose Computingkosten enthält. Zu den entsprechenden Feldern gehören:
- Die
identity_metadata
Spalte enthält dasrun_as
Feld, das den Benutzer- oder Dienstprinzipal anzeigt, dessen Anmeldeinformationen zum Ausführen der Workload verwendet wurden. - Die
usage_metadata
-Spalte enthält Felder, die die Arbeitsauslastung beschreiben:job_run_id
,job_name
,notebook_id
undnotebook_path
.
- Die Spalte
custom_tags
, die alle Tags enthält, die von serverlosen Budgetrichtlinien geerbt werden. Siehe Attributverwendung mit serverlosen Budgetrichtlinien.
Zusätzliche Features, die als serverlos in Rechnung gestellt werden
Es gibt mehrere Azure Databricks-Features, die serverloses Berechnen im Hintergrund nutzen, aber ihr Konto muss nicht für serverlose Berechnung für Notizbücher, Workflows und Lakeflow Declarative Pipelines aktiviert werden.
Die folgenden Features werden unter der serverlosen Auftrags-SKU in Rechnung gestellt:
-
Lakehouse Monitoring: in der Abrechnungstabelle mit dem
billing_origin_product
-WertLAKEHOUSE_MONITORING
protokolliert. -
Prädiktive Optimierung: in der Abrechnungstabelle mit dem
billing_origin_product
-WertPREDICTIVE_OPTIMIZATION
protokolliert. -
Materialisierte Ansichten in Databricks SQL: Wenn Sie eine materialisierte Ansicht in einem SQL Warehouse erstellen, wird eine serverlose Pipeline zum Verarbeiten von Aktualisierungen erstellt. Sie können Abrechnungsdatensätze für eine materialisierte Ansicht anzeigen, indem Sie Datensätze abfragen, bei denen
billing_origin_product = 'SQL'
undusage_metadata.dlt_pipeline_id IS NOT NULL
zutreffen. -
Feinkörnige Zugriffskontrolle auf dedizierte Rechenleistung: Identifizierbar durch einen
billing_origin_product
Wert vonFINE_GRAINED_ACCESS_CONTROL
.
-
Saubere Räume: Der spezifische Reinraum im Zusammenhang mit der Nutzung wird unter
usage_metadata.central_clean_room_id
protokolliert.
Überlegungen für serverlose Verwendungsdatensätze
Berücksichtigen Sie bei der Analyse der serverlosen Nutzung Folgendes:
- Möglicherweise werden in einer bestimmten Stunde mehrere Datensätze angezeigt, die einer bestimmten serverlosen Computearbeitsauslastung zugeordnet sind. Beispielsweise werden möglicherweise mehrere Datensätze mit demselben Wert für
job_id
,job_run_id
oderjob_name
aber mit jeweils unterschiedlichen DBU-Verbrauchswerten dafür angezeigt. Die Summe dieser DBUs stellt den stündlichen DBU-Verbrauch für einen bestimmten Auftragslauf dar.
Verwenden von Budgets zur Überwachung der Ausgaben
Kontoadministratoren können Budgets einrichten, um Kosten zu gruppieren und Warnungen einzurichten. Siehe "Budgets erstellen und überwachen".
Importieren eines Nutzungsdashboards
Kontoadministratoren können Dashboards für das Cost Management in einen beliebigen Unity Catalog-fähigen Arbeitsbereich in ihrem Konto importieren. Siehe Importieren eines Verwendungsdashboards.
Suchen eines Jobs oder Notebooks auf der Benutzeroberfläche
Um einen Job oder ein Notebook auf der Benutzeroberfläche basierend auf einem Abrechnungsdatensatz zu suchen, kopieren Sie den usage_metadata.job_id
- oder usage_metadata.notebook_id
-Wert aus dem Verbrauchsdatensatz. Diese IDsP sind unveränderlich und können auch dann verwendet werden, wenn sich der Job-Name oder der Notebook-fad ändert.
So suchen Sie einen Auftrag auf der Benutzeroberfläche basierend auf deren job_id
:
- Kopieren Sie den
job_id
aus dem Verwendungsdatensatz. Gehen Sie in diesem Beispiel davon aus, dass die ID700809544510906
ist. - Navigieren Sie zur Benutzeroberfläche von Aufträgen und Pipelines im gleichen Azure Databricks-Arbeitsbereich wie der Auftrag.
- Wählen Sie den Filter "Zugriff durch mich" aus .
- Fügen Sie die ID (700809544510906) in die Suchleiste für Filteraufträge ein.
Verwenden Sie die folgenden Anweisungen, um ein Notizbuch auf der Benutzeroberfläche basierend auf dem notebook_id
zu finden:
- Kopieren Sie den
notebook_id
aus dem Verwendungsdatensatz. Gehen Sie in diesem Beispiel davon aus, dass die ID700809544510906
ist. - Navigieren Sie zur Arbeitsbereichsbenutzeroberfläche im selben Azure Databricks-Arbeitsbereich wie das Notebook.
- Klicken Sie auf ein beliebiges Notebook in der Liste.
- Nachdem Sie das Notizbuch geöffnet haben, überprüfen Sie die URL in der Adressleiste des Browsers. Er sollte wie folgt aussehen:
https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
. - Ersetzen Sie in der Adressleiste des Browsers die Notebook-ID durch die ID, die Sie im ersten Schritt kopiert haben, und löschen Sie dann alles nach der Notebook-ID. Er sollte wie folgt aussehen:
https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
. - Nachdem Sie das Notizbuch geöffnet haben, können Sie auf die Schaltfläche " Freigeben " klicken, um den Besitzer des Notizbuchs anzuzeigen.
Verwenden von Benachrichtigungen zum Nachverfolgen von serverlosen Ausgaben
Benachrichtigungen sind eine leistungsstarke Möglichkeit, um über Ihre serverlosen Ausgaben auf dem Laufenden zu bleiben. Sie können Benachrichtigungen empfangen, wenn bestimmte Bedingungen in Ihren Abfrageergebnissen erfüllt sind. Informationen zum Erstellen von Warnungen finden Sie unter Erstellen einer Warnung.
Sie können Benachrichtigungen zu den folgenden Abfragen hinzufügen, um Budgets zu überwachen. Ersetzen Sie in jeder Abfrage {budget}
durch Ihr ausgewähltes Budget.
Benachrichtigung, wenn ein Arbeitsbereich einen Schwellenwert in den letzten 30 Tagen überschreitet
Sie können eine Benachrichtigung festlegen, die ausgelöst wird, wenn diese Abfrage eine Zeile zurückgibt. Ersetzen Sie {budget}
durch Ihr ausgewähltes Budget.
SELECT
t1.workspace_id,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
t1.cloud = list_prices.cloud and
t1.sku_name = list_prices.sku_name and
t1.usage_start_time >= list_prices.price_start_time and
(t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS", "INTERACTIVE")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.workspace_id
HAVING
list_cost > {budget}
Benachrichtigung, wenn eine Benutzerin oder ein Benutzer den Schwellenwert in den letzten 30 Tagen überschreitet
Sie können eine Benachrichtigung festlegen, die ausgelöst wird, wenn diese Abfrage eine Zeile zurückgibt. Ersetzen Sie {budget}
durch Ihr ausgewähltes Budget.
SELECT
t1.identity_metadata.run_as,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
t1.cloud = list_prices.cloud and
t1.sku_name = list_prices.sku_name and
t1.usage_start_time >= list_prices.price_start_time and
(t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS", "INTERACTIVE")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.identity_metadata.run_as
HAVING
list_cost > {budget}
Benachrichtigung, wenn ein Auftrag den Schwellenwert in den letzten 30 Tagen überschreitet
Sie können eine Benachrichtigung festlegen, die ausgelöst wird, wenn diese Abfrage eine Zeile zurückgibt. Ersetzen Sie {budget}
durch Ihr ausgewähltes Budget.
SELECT
t1.workspace_id,
t1.usage_metadata.job_id,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
t1.cloud = list_prices.cloud and
t1.sku_name = list_prices.sku_name and
t1.usage_start_time >= list_prices.price_start_time and
(t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.workspace_id, t1.usage_metadata.job_id
HAVING
list_cost > {budget}
Beispielabfragen
Verwenden Sie die folgenden Abfragen, um Einblicke in die serverlose Nutzung in Ihrem Konto zu erhalten:
- Serverlose Notizbücher nach Gesamtausgaben sortieren
- Serverlose Aufträge nach Gesamtkosten sortieren
- Bericht über DBUs, die von einem bestimmten Benutzer verbraucht werden
- Bericht über serverlose Computing-DBUs, die von Workloads genutzt werden, die ein benutzerdefiniertes Tag gemeinsam nutzen
Serverlose Notizbücher nach gesamten Ausgaben sortieren
Diese Abfrage gibt eine Liste von Notebooks und die Anzahl der DBUs zurück, die jedes Notebook verbraucht hat, in absteigender Reihenfolge nach DBU-Verbrauch:
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
Sortieren von serverlosen Jobs nach den Gesamtausgaben
Diese Abfrage gibt eine Liste von Aufträgen und wie viele DBUs jeder Auftrag verbraucht hat, in absteigender Reihenfolge nach DBU-Verbrauch:
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
Bericht über dbUs, die von einem bestimmten Benutzer verwendet werden
Diese Abfrage gibt eine Liste von Notebooks und Aufträgen zurück, die serverlose Berechnung verwenden, die von einem bestimmten Benutzer oder Dienstprinzipal ausgeführt werden, und die Anzahl der von den einzelnen Arbeitslasten verbrauchten DBUs:
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 = '<emailaddress@domain.com>'
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
Bericht über serverlose Compute-DBUs, die von Workloads genutzt werden, die ein benutzerdefiniertes Tag gemeinsam nutzen
Diese Abfrage gibt eine Liste von Aufträgen zurück, die serverlose Compute verwenden, die dasselbe benutzerdefinierte Tag gemeinsam verwenden, und die Anzahl der von den einzelnen Arbeitslasten verbrauchten DBUs:
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