Überwachen der Kontoaktivität mit Systemtabellen
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 | Kostenfreier Aufbewahrungszeitraum | Einschließlich globaler oder regionaler Daten |
---|---|---|---|---|---|
Überwachungsprotokolle (Public Preview) | 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. |
Tabellenlinie (Public Preview) | 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 |
Spaltenlinie (Public Preview) | 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 | Unbegrenzt | Global |
Cluster (Public Preview) | 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 | N/V | Länderspezifisch |
Zeitleiste für Nodes (Public Preview) | Erfasst die Nutzungsmetriken Ihrer universellen und auftragsbezogenen Computeressourcen | system.compute.node_timeline |
Ja | 30 Tage | Länderspezifisch |
Knotentypen (Public Preview) | Erfasst die derzeit verfügbaren Knotentypen mit ihren grundlegenden Hardwareinformationen. | system.compute.node_types |
No | – | Länderspezifisch |
SQL-Lagerhäuser (Öffentliche Vorschau) | Enthält den vollständigen Verlauf der Konfigurationen im Laufe der Zeit für ein beliebiges SQL Warehouse. | system.compute.warehouses |
Ja | 365 Tage | Länderspezifisch |
SQL Warehouse-Ereignisse (Public Preview) | Erfasst Ereignisse im Zusammenhang mit SQL Warehouses. Zum Beispiel Starten, Beenden, Ausführen, Hoch- und Herunterskalieren. | system.compute.warehouse_events |
Ja | 365 Tage | Länderspezifisch |
Jobs (Public Preview) | Verfolgt alle Aufträge, die im Konto erstellt wurden. | system.lakeflow.jobs |
Ja | 365 Tage | Länderspezifisch |
Auftragsaufgaben (Public Preview) | Verfolgt alle Auftragsaufgaben, die im Konto ausgeführt werden. | system.lakeflow.job_tasks |
Ja | 365 Tage | Länderspezifisch |
Zeitleiste für Auftragsausführung (Public Preview) | Verfolgt die Start- und Endzeiten des Auftragsausführungen. | system.lakeflow. job_run_timeline |
Ja | 365 Tage | Länderspezifisch |
Zeitleiste für Auftragsaufgaben (Public Preview) | 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-Verkaufstrichterereignisse (Public Preview) | Enthält Verbrauchereindruck- und Trichterdaten für Ihre Angebote. | system.marketplace.listing_ funnel_events |
Ja | 365 Tage | Länderspezifisch |
Marketplace-Listing-Zugriff (Public Preview) | Enthält Consumerinformationen für abgeschlossene Datenanforderungs- oder Datenabruf-Ereignisse. | system.marketplace.listing_ access_events |
Ja | 365 Tage | Länderspezifisch |
Prädiktive Optimierung (Public Preview) | Verfolgt den Betriebsverlauf des Features für die prädiktive Optimierung. | system.storage.predictive_ optimization_operations_history |
No | 180 Tage | Länderspezifisch |
Databricks-Assistent Ereignisse (Public Preview) | Verfolgt Benutzernachrichten, die an den Databricks-Assistenten gesendet wurden. | system.access.assistant_events |
No | 365 Tage | Länderspezifisch |
Abfrageverlauf (Public Preview) | Erfasst Datensätze für alle Abfragen, die in SQL-Warehouses ausgeführt werden. | system.query.history |
Ja | 90 Tage | Länderspezifisch |
Clean Room-Ereignisse (Public Preview) | Erfasst Ereignisse, die mit Reinräumen in Zusammenhang stehen | system.access.clean_room_events |
Ja | 365 Tage | Länderspezifisch |
Modell zur Endpunktverwendung (Public Preview) | Erfasst die Tokenanzahl für jede Anforderung an einen Modellbereitstellungsendpunkt und seine Antworten. Um die Endpunktnutzung in dieser Tabelle zu erfassen, müssen Sie die Verwendungsnachverfolgung auf Ihrem Dienstendpunkt aktivieren. | system.serving.endpoint_usage . |
Ja | 90 Tage | Länderspezifisch |
Modell zur Bereitstellung von Endpunktdaten (Public Preview) | Eine sich langsam verändernde Dimensionstabelle, die Metadaten für jedes bereitgestellte externe Modell in einem Modellbereitstellungsendpunkt speichert. | system.serving.served_entities |
Ja | 365 Tage | Länderspezifisch |
Die abrechnungsfähigen Nutzungs- und Preistabellen können kostenlos verwendet werden. Tabellen in der Public Preview können auch während der Vorschau verwendet werden, in Zukunft könnten hierfür aber Gebühren anfallen.
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. Kein Benutzer hat standardmäßig Zugriff auf diese Systemschemas. Um Zugriff zu gewähren, muss ein Benutzer, der sowohl ein Metastore-Administrator als auch ein Kontoadministrator ist, 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?
Systemtabellen enthalten operative Daten für alle Arbeitsbereiche in Ihrem Konto, die in derselben Cloud-Region bereitgestellt werden. Abrechnungssystemtabellen enthalten kontoweite Daten.
Obwohl der Zugriff auf Systemtabellen nur über einen Unity Catalog-Arbeitsbereich möglich ist, enthalten die Tabellen auch operative Daten für die Nicht-Unity Catalog-Arbeitsbereiche in Ihrem Konto.
Wo werden die Daten der Systemtabelle gespeichert?
Die Systemtabellendaten Ihres Kontos werden in einem von Azure Databricks gehosteten Speicherkonto gespeichert, das sich in derselben Region wie Ihr Metaspeicher befindet. Die Daten werden über Delta Sharing sicher mit Ihnen geteilt.
Jede Tabelle verfügt über einen kostenlosen Aufbewahrungszeitraum für Daten. Informationen zur Verlängerung des Aufbewahrungszeitraums erhalten Sie von Ihrem Azure Databricks-Kundenteam.
Wo befinden sich Systemtabellen im Katalog-Explorer?
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.
Ü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.Das
__internal_logging
-System-Tabellenschema wird zur Unterstützung der Nutzlastprotokollierung mit Hilfe von Inferenztabellen verwendet. Dieses Schema ist für Kontoadministratoren sichtbar, kann aber nicht aktiviert werden und sollte nicht für Kunden-Workflows verwendet werden.