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 beschrieben, wie Datenanbieter und Empfänger Überwachungsprotokolle verwenden können, um Delta Sharing-Ereignisse zu überwachen. Die Anbieterüberwachungsprotokolle zeichnen Aktionen auf, die vom Anbieter ausgeführt werden, und Aktionen, die von Empfängern für die freigegebenen Daten des Anbieters ausgeführt werden. Empfängerüberwachungsprotokolle erfassen Ereignisse im Zusammenhang mit dem Zugriff auf Freigaben und der Verwaltung von Anbieterobjekten.
Anforderungen
Um auf Überwachungsprotokolle zuzugreifen, muss ein Kontoadministrator die Überwachungsprotokollsystemtabelle für Ihr Azure Databricks-Konto aktivieren. Weitere Informationen finden Sie unter Aktivieren von Systemtabellen. Informationen zur Systemtabelle für Überwachungsprotokolle finden Sie unter Referenz zur Systemtabelle für Überwachungsprotokolle.
Wenn Sie kein Kontoadministrator oder Metastoreadministrator sind, müssen Sie Zugriff auf system.access.audit erhalten, um Überwachungsprotokolle zu lesen.
Anzeigen von Delta-Freigabeereignissen im Überwachungsprotokoll
Wenn in Ihrem Konto Systemtabellen aktiviert sind, werden Überwachungsprotokolle in system.access.audit gespeichert. Wenn Ihr Konto alternativ über eine Einrichtung zur Bereitstellung von Überwachungsprotokollen verfügt, müssen Sie den Bucket und den Pfad kennen, in den die Protokolle geliefert werden.
Protokollierte Ereignisse
Um die Liste der Delta Sharing-Überwachungsprotokollereignisse anzuzeigen, siehe Delta Sharing-Ereignisse.
Anzeigen von Details des Abfrageergebnisses eines Empfängers
Die Delta-Freigabe unterstützt die Freigabe von Objekttypen wie Tabellen, Sichten, materialisierten Sichten, Streamingtabellen und Volumes. Die Delta-Freigabe bietet temporären Lesezugriff auf die zugrunde liegenden Daten aus vorsignierten URLs oder aus bereichsbezogenen STS-Token. In der folgenden Tabelle ist dargestellt, in welchem Verhältnis der Freigabetyp zu den protokollierten Überwachungsprotokollereignissen steht:
| Szenario | Prüfprotokollereignisse |
|---|---|
| Tabellen, die für offene Empfänger freigegeben wurden, und Tabellen ohne Verlauf, die für Databricks-Empfänger freigegeben wurden |
|
| Tabelle mit dem für Databricks-Empfänger freigegebenen Verlauf |
|
| Volumefreigabe (STS-tokenbasierter Zugriff) |
|
Anzeigen von Details zu Freigaben mit vorsignierten URLs
In den Anbieterprotokollen werden die Ereignisse deltaSharingQueriedTableChanges protokolliert und deltaSharingQueriedTable protokolliert, nachdem die Abfrage eines Datenempfängers eine Antwort für die vorab signierte URL-basierte Freigabe erhält. Anbieter können das response.result-Feld dieser Protokolle anzeigen, um weitere Details dazu anzuzeigen, was für den Empfänger freigegeben wurde. Das Feld kann die folgenden Werte enthalten. Diese Liste ist nicht vollständig.
"checkpointBytes": "0",
"earlyTermination": "false",
"maxRemoveFiles": "0",
"path": "file: example/s3/path/golden/snapshot-data0/_delta_log",
"deltaSharingPartitionFilteringAccessed": "false",
"deltaSharingRecipientId": "<redacted>",
"deltaSharingRecipientIdHash": "<recipient-hash-id>",
"jsonLogFileNum": "1",
"scannedJsonLogActionNum": "5",
"numRecords": "3",
"deltaSharingRecipientMetastoreId": "<redacted>",
"userAgent": "Delta-Sharing-Unity-Catalog-Databricks-Auth/1.0 Linux/4.15.0-2068-azure-fips OpenJDK_64-Bit_Server_VM/11.0.7+10-jvmci-20.1-b02 java/11.0.7 scala/2.12.15 java_vendor/GraalVM_Community",
"jsonLogFileBytes": "2846",
"checkpointFileNum": "0",
"metastoreId": "<redacted>",
"limitHint": "Some(1)",
"tableName": "cookie_ingredients",
"tableId": "1234567c-6d8b-45fd-9565-32e9fc23f8f3",
"activeAddFiles": "2", // number of AddFiles returned in the query
"numAddFiles": "2", // number of AddFiles returned in the query
"numAddCDCFiles": "2", // number of AddFiles returned in the CDF query
"numRemoveFiles": "2", // number of RemoveFiles returned in the query
"numSeenAddFiles": "3",
"scannedAddFileSize": "1300", // file size in bytes for the AddFile returned in the query
"scannedAddCDCFileSize": "1300", // file size in bytes for the AddCDCFile returned in the CDF query
"scannedRemoveFileSize": "1300", // file size in bytes for the RemoveFile returned in the query
"scannedCheckpointActionNum": "0",
"tableVersion": "0"
Anzeigen von Details zu STS-Token-Freigaben
In den Anbieterprotokollen werden die Ereignisse generateTemporaryTableCredentials und generateTemporaryVolumeCredentials protokolliert, nachdem die Abfrage eines Datenempfängers eine Antwort für die STS-Token-basierte Freigabe erhält. Anbieter können die request_params Spalte dieser Protokolle anzeigen, um weitere Details darüber anzuzeigen, was für den Empfänger freigegeben wurde. Das Feld kann die folgenden Werte enthalten. Diese Liste ist nicht vollständig.
"recipient_name": "someRecipientName"
"share_id": "ea7a4555-43d9-4cbd-a5df-f4f5193f297e"
"credential_type": "StorageCredential"
"is_permissions_enforcing_client": "true"
"table_full_name": "someTableName"
"operation": "READ"
"share_name": "someShareName"
"table_id": "someTableId"
"share_owner": "someShareOwner"
"recipient_id": "someRecipientId"
"table_url": "s3://somePath"
"metastore_id": "someMetastoreId"
Protokollierte Fehler
Wenn eine versuchte Delta Sharing-Aktion fehlschlägt, wird die Aktion mit der Fehlermeldung im response.error_message-Feld des Protokolls protokolliert. Elemente zwischen den Zeichen < und > stellen einen Platzhaltertext dar.
Fehlermeldungen in Anbieterprotokollen
Delta Sharing protokolliert die folgenden Fehler für Datenanbieter:
Delta Sharing ist nicht für den ausgewählten Metastore aktiviert.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabledEs wurde versucht, einen Vorgang für einen nicht vorhandenen Katalog auszuführen.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog '<catalog>' does not exist.Benutzer*innen, die keine Kontoadministrator*innen oder Metastoreadministrator*innen sind, haben versucht, einen privilegierten Vorgang auszuführen.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>Es wurde versucht, über einen dem Metastore nicht zugewiesenen Arbeitsbereich einen Vorgang für den Metastore auszuführen.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastoreIn einer Anforderung fehlte der Empfänger- oder Freigabename.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>Eine Anforderung enthielt einen ungültigen Empfänger- oder Freigabenamen.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid nameEin*e Benutzer*in hat versucht, eine Tabelle freizugeben, die sich nicht in einem Unity Catalog-Metastore befindet.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a shareEin*e Benutzer*in hat versucht, einen Empfänger zu rotieren, der sich bereits in einem rotierten Zustand befand und dessen vorheriges Token noch nicht abgelaufen war.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>Benutzende haben versucht, einen neuen Empfänger oder eine neue Freigabe mit dem gleichen Namen eines bereits vorhandenen Empfängers oder einer bereits vorhandenen Freigabe zu erstellen.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`Ein*e Benutzer*in hat versucht, einen Vorgang für einen Empfänger oder eine Freigabe auszuführen, der bzw. die nicht vorhanden ist.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not existBenutzende haben versucht, einer Freigabe eine Tabelle hinzuzufügen, die bereits hinzugefügt wurde.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already existsEin*e Benutzer*in hat versucht, einen Vorgang auszuführen, der auf eine nicht vorhandene Tabelle verweist.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not existEin*e Benutzer*in hat versucht, einen Vorgang auszuführen, der auf ein nicht vorhandenes Schema verweist.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not existBenutzende haben versucht, auf eine Freigabe zuzugreifen, die nicht vorhanden ist.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Fehlermeldungen in Empfängerprotokollen
Delta Sharing protokolliert die folgenden Fehler für Datenempfänger:
Ein Benutzer hat versucht, auf einen Bereich zuzugreifen, auf den keine Berechtigung besteht.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>Es wurde versucht, auf eine Freigabe zuzugreifen, die nicht vorhanden ist.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.Benutzende haben versucht, auf eine Tabelle zuzugreifen, die in der Freigabe nicht vorhanden ist.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.