Überwachen des Verbrauchs mit Systemtabellen
Wichtig
Dieses Feature befindet sich in der Public Preview. Es fallen derzeit keine Gebühren für die Verwendung dieses Features an. In Zukunft könnten einige dieser Nutzungsgebühren anfallen.
In diesem Artikel wird das Konzept der Systemtabellen in Azure Databricks erläutert und Ressourcen beleuchtet, mit deren Hilfe Sie Ihre Systemtabellendaten optimal nutzen können.
Was sind Systemtabellen?
Systemtabellen sind ein von Azure Databricks gehosteter Analysespeicher der operativen Daten Ihres Kontos im system
-Katalog. Systemtabellen können für die Verlaufsbeobachtung Ihres Kontos verwendet werden.
Hinweis
Dokumentation zu system.information_schema
finden Sie im Informationsschema.
Anforderungen
Um auf Systemtabellen zuzugreifen, muss Ihr Arbeitsbereich für Unity Catalog aktiviert sein. Weitere Informationen finden Sie unter Aktivieren des Systemtabellenschemas.
Systemtabellen sind in den folgenden Regionen nicht verfügbar:
- Azure China-Regionen
- Azure Government-Regionen
- Indien, Westen
- Schweiz, Westen
Welche Systemtabellen sind verfügbar?
Derzeit hostet Azure Databricks die folgenden Systemtabellen:
Tabelle | Beschreibung | Location | Unterstützt Streaming | Aufbewahrung | Einschließen globaler oder regionaler Daten |
---|---|---|---|---|---|
Überwachungsprotokolle | Enthält Datensätze für alle Überwachungsereignisse aus Arbeitsbereichen in Ihrer Region. Eine Liste der verfügbaren Überwachungsereignisse finden Sie unter Referenz zu Diagnoseprotokollen. | system.access.audit |
Ja | 365 Tage | Regional für Ereignisse auf Arbeitsbereichsebene. Global für Ereignisse auf Kontoebene. |
Tabellendatenherkunft | Enthält einen Datensatz für jedes Lese- oder Schreibereignis in einer Unity Catalog-Tabelle oder einem Unity Catalog-Pfad. | system.access.table_lineage |
Ja | 365 Tage | Länderspezifisch |
Spaltenherkunft | Enthält einen Datensatz für jedes Lese- oder Schreibereignis in einer Unity Catalog-Spalte (enthält jedoch keine Ereignisse, die keine Quelle haben). | system.access.column_lineage |
Ja | 365 Tage | Länderspezifisch |
Abrechenbare Nutzung | Enthält Datensätze für alle abrechenbaren Nutzungen in Ihrem Konto. Jeder Nutzungsdatensatz ist eine stündliche Zusammenfassung der abrechenbaren Nutzung einer Ressource. | system.billing.usage |
Ja | 365 Tage | Global |
Preise | Ein historisches Protokoll der SKU-Preise. Jedes Mal, wenn eine Änderung an einem SKU-Preis erfolgt, wird ein Datensatz hinzugefügt. | system.billing.list_prices |
No | – | Global |
Cluster | Eine sich langsam ändernde Dimensionstabelle, die den vollständigen Verlauf der Computekonfigurationen im Lauf der Zeit für jeden Cluster enthält | system.compute.clusters |
Ja | Keine | Regional |
Knotenzeitachse | Erfasst die Nutzungsmetriken Ihrer universellen und auftragsbezogenen Computeressourcen | system.compute.node_timeline |
Ja | 30 Tage | Regional |
Knotentypen | Erfasst die derzeit verfügbaren Knotentypen mit ihren grundlegenden Hardwareinformationen. | system.compute.node_types |
No | – | Länderspezifisch |
SQL Warehouse-Ereignisse | Erfasst Ereignisse im Zusammenhang mit SQL Warehouses. Zum Beispiel Starten, Beenden, Ausführen, Hoch- und Herunterskalieren. | system.compute.warehouse_events |
Ja | 365 Tage | Regional |
Aufträge | Verfolgt alle Aufträge, die im Konto erstellt wurden. | system.lakeflow.jobs |
Ja | 365 Tage | Regional |
Auftragsaufgaben | Verfolgt alle Auftragsaufgaben, die im Konto ausgeführt werden. | system.lakeflow.job_tasks |
Ja | 365 Tage | Regional |
Auftragsausführungszeitachse | Verfolgt die Start- und Endzeiten des Auftragsausführungen. | system.lakeflow. job_run_timeline |
Ja | 365 Tage | Regional |
Auftragsaufgabenzeitachse | Verfolgt die Start- und Endzeiten und berechnet Ressourcen, die für Ausführungen für Auftragsaufgaben verwendet werden. | system.lakeflow. job_task_run_timeline |
Ja | 365 Tage | Länderspezifisch |
Marketplace-Trichterereignisse | Enthält Verbrauchereindruck- und Trichterdaten für Ihre Angebote. | system.marketplace.listing_ funnel_events |
Ja | 365 Tage | Länderspezifisch |
Marketplace-Auflistungszugriff | Enthält Consumerinformationen für abgeschlossene Datenanforderungs- oder Datenabruf-Ereignisse. | system.marketplace.listing_ access_events |
Ja | 365 Tage | Länderspezifisch |
Prädiktive Optimierung | Verfolgt den Betriebsverlauf des Features für die prädiktive Optimierung. | system.storage.predictive_ optimization_operations_history |
No | 180 Tage | Regional |
Ereignisse des Databricks-Assistenten | Verfolgt Benutzernachrichten, die an den Databricks-Assistenten gesendet wurden. | system.access.assistant_events |
No | 365 Tage | Regional |
Abfrageverlauf | Erfasst Datensätze für alle Abfragen, die in SQL-Warehouses ausgeführt werden. | system.query.history |
Ja | 90 Tage | Länderspezifisch |
Reinraumereignisse | Erfasst Ereignisse, die mit Reinräumen in Zusammenhang stehen | system.access.clean_room_events |
Ja | 365 Tage | Regional |
Hinweis
Möglicherweise werden in Ihrem Konto neben den oben aufgeführten auch andere Systemtabellen angezeigt. Diese Tabellen befinden sich derzeit in der privaten Vorschau und sind standardmäßig leer. Wenn Sie eine dieser Tabellen verwenden möchten, wenden Sie sich an Ihr Databricks-Kontoteam.
Aktivieren von Systemtabellenschematas
Da Systemtabellen von Unity Catalog gesteuert werden, benötigen Sie mindestens einen Unity Catalog-fähigen Arbeitsbereich in Ihrem Konto, um Systemtabellen aktivieren und öffnen zu können. Systemtabellen enthalten Daten aus allen Arbeitsbereichen in Ihrem Konto, auf sie kann jedoch nur über einen Unity Catalog-fähigen Arbeitsbereich zugegriffen werden.
Systemtabellen werden auf Schemaebene aktiviert. Wenn Sie ein Systemschema aktivieren, aktivieren Sie alle Tabellen innerhalb dieses Schemas. Wenn neue Schemas freigegeben werden, muss ein Kontoadministrator oder eine Kontoadministratorin das Schema manuell aktivieren.
Systemtabellen müssen von einem Kontoadmin aktiviert werden. Sie können Systemtabellen mithilfe der SystemSchemas-API aktivieren.
Hinweis
Das billing
-Schema ist standardmäßig aktiviert. Andere Schemas müssen manuell aktiviert werden.
Auflisten verfügbarer Systemschemata
Verwenden Sie den folgenden curl-Befehl, um verfügbare Systemschemata aufzulisten:
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
Es folgt ein Beispiel für den Befehl GET
:
{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}
state: AVAILABLE
: Das Systemschema ist verfügbar, wurde aber noch nicht aktiviert.
state: EnableCompleted
: Sie haben das Systemschema aktiviert, und es ist im Katalog-Explorer sichtbar.
Aktivieren eines Systemschemas
Verwenden Sie den folgenden curl-Befehl, um ein Systemschema zu aktivieren:
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Wenn das Systemschema erfolgreich aktiviert wurde, wird der Ergebniscode 200
zurückgegeben.
Wenn Sie versuchen, ein Systemschema erneut zu aktivieren, wird Folgendes zurückgegeben: "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"
.
Deaktivieren eines Systemschemas
Verwenden Sie den folgenden curl-Befehl, um ein Systemschema zu deaktivieren:
curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Gewähren von Zugriff auf Systemtabellen
Der Zugriff auf Systemtabellen wird von Unity Catalog gesteuert. Standardmäßig haben keine Benutzer*innen Zugriff auf Systemtabellen. Um Zugriff zu gewähren, muss ein Metastore-Administrator oder ein anderer privilegierter Benutzer den Systemschemas die Berechtigungen USE
und SELECT
erteilen. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.
Systemtabellen sind schreibgeschützt und können nicht geändert werden.
Hinweis
Wenn Ihr Konto nach dem 9. November 2023 erstellt wurde, verfügen Sie möglicherweise nicht standardmäßig über einen Metastore-Administrator. Weitere Informationen finden Sie unter Einrichten und Verwalten von Unity Catalog.
Enthalten Systemtabellen Daten für alle Arbeitsbereiche in Ihrem Konto?
Die Überwachungsprotokoll- und Herkunftstabellen enthalten operative Daten für alle Arbeitsbereiche in Ihrem Konto, die in derselben Cloudregion bereitgestellt werden. Die Abrechnungssystemtabelle (system.billing.usage
) enthält Daten für alle Arbeitsbereiche in Ihrem Konto, unabhängig davon, in welcher Region sie bereitgestellt werden.
Obwohl auf Systemtabellen nur über einen Unity Catalog-Arbeitsbereich zugegriffen werden kann, enthalten die Tabellen auch operative Daten für Nicht-Unity Catalog-Arbeitsbereiche in Ihrem Konto.
Wo befinden sich die Systemtabellen?
Die Systemtabellen in Ihrem Konto befinden sich in einem Katalog namens system
, der in jedem Unity Catalog-Metastore enthalten ist. Im Katalog system
finden Sie Schemata wie access
und billing
, die die Systemtabellen enthalten.
Hinweis
Während der öffentlichen Vorschau der Systemtabellen behält Azure Databricks alle Daten Ihrer Systemtabellen bei.
Überlegungen zu Streamingsystemtabellen
Azure Databricks verwendet Delta Sharing, um Systemtabellendaten für Kunden freizugeben. Beachten Sie beim Streamen mit Delta Sharing die folgenden Überlegungen:
- Wenn Sie Streaming mit Systemtabellen verwenden, legen Sie die Option
skipChangeCommits
auftrue
fest. Dadurch wird sichergestellt, dass der Streamingauftrag nicht durch Löschvorgänge in den Systemtabellen unterbrochen wird. Weitere Informationen finden Sie unter Ignorieren von Updates und Löschungen. Trigger.AvailableNow
wird beim Delta Sharing-Streaming nicht unterstützt. Die Option wird inTrigger.Once
konvertiert.
Wenn Sie einen Trigger in Ihrem Streamingauftrag verwenden und feststellen, dass er nicht die neueste Systemtabellenversion nutzt, empfiehlt Databricks, die geplante Häufigkeit des Auftrags zu erhöhen.
Inkrementelle Änderungen aus Streamingsystemtabellen lesen
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
Bekannte Probleme
Derzeit gibt es keine Unterstützung für Echtzeitüberwachung. Die Daten werden den ganzen Tag über aktualisiert. Wenn kein Protokoll für ein aktuelles Ereignis angezeigt wird, überprüfen Sie das Protokoll später noch einmal.
Zum Aktivieren von Systemtabellen müssen Sie möglicherweise Netzwerkzugriff auf den Blob Storage-Endpunkt der Systemtabellen gewähren. Eine Liste der Speicherendpunkte der Systemtabellen jeder Region finden Sie unter IP-Adressen des Speicherendpunkts.
Die Systemschemas
system.operational_data
undsystem.lineage
sind veraltet und enthalten leere Tabellen.