Condividi tramite


Controllare e monitorare la condivisione dei dati

Questo articolo descrive come i dati providers e recipients possono utilizzare i log di verifica per monitorare gli eventi di Delta Sharing. I log di controllo del provider registrano le azioni eseguite dal provider e dalle azioni eseguite da recipients sui dati condivisi del provider. I registri di controllo dei destinatari registrano gli eventi relativi all'accesso di shares e alla gestione degli oggetti del fornitore.

Per visualizzare gli eventi del registro di controllo di Delta Sharing list, vedere gli eventi di Delta Sharing .

Requisiti

Per accedere ai log di controllo, un amministratore dell'account deve abilitare il sistema di log di controllo table per l'account Azure Databricks. Vedere Abilita tablesil sistema. Per informazioni sul sistema di registro di audit table, vedere la sezione di riferimento table sul sistema di registro di audit.

Se non si è un amministratore dell'account o un amministratore del metastore, è necessario avere accesso a per system.access.audit leggere i log di controllo.

Visualizzare gli eventi di condivisione differenziale nel log di controllo

Se il tuo account ha il sistema tables abilitato, i log di controllo vengono archiviati in system.access.audit. Se, in alternativa, l'account dispone di un configurazione del recapito del log di controllo, è necessario conoscere il bucket e il percorso where i log vengono recapitati.

Eventi registrati

Per visualizzare la list degli eventi del log di controllo di Condivisione Delta, vedere eventi di Condivisione Delta.

Visualizzare i dettagli del risultato della query di un destinatario

Delta Sharing supporta tipi di asset come tables, views, viewsmaterializzati, tabelle di streaming e volumes. Delta Sharing fornisce l'accesso in lettura temporaneo ai dati sottostanti tramite URL pre-signed o token STS con ambito. Nell'table seguente viene descritto il modo in cui il tipo di condivisione corrisponde agli eventi del log di controllo registrati:

Scenario Eventi del log di controllo
Tables condiviso con recipients aperto e tables, senza cronologia, condiviso con Databricks recipients - deltaSharingQueriedTable (per le query di table)
- deltaSharingQueriedTableChanges (per le query CDF)
Table con cronologia condivisa con Databricks recipients - generateTemporaryTableCredential
Condivisione dei volumi (accesso basato su token STS) - generateTemporaryVolumeCredential

Visualizzare i dettagli sull'URL prefirmato shares

Nei log del provider gli eventi deltaSharingQueriedTableChanges e deltaSharingQueriedTable vengono registrati dopo che la query di un destinatario dati ottiene una risposta per la condivisione basata su URL prefirmato. Providers possibile visualizzare il campo response.result di questi log per visualizzare altri dettagli su ciò che è stato condiviso con il destinatario. Il campo può includere il seguente values. Questo list non è esaustivo.

"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"

Visualizzare i dettagli sul token STS shares

Nei log del provider gli eventi generateTemporaryTableCredentials e generateTemporaryVolumeCredentials vengono registrati dopo che la query di un destinatario dati ottiene una risposta per la condivisione basata su token STS. Providers è possibile visualizzare il request_paramscolumn di questi log per vedere dettagli aggiuntivi su ciò che è stato condiviso con il destinatario. Il campo può includere il seguente values. Questo list non è esaustivo.

"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"

Errori registrati

Se un'azione di condivisione differenziale tentata ha esito negativo, l'azione viene registrata con il messaggio di errore nel response.error_message campo del log. Gli elementi tra < e > i caratteri rappresentano il testo segnaposto.

Messaggi di errore nei log del provider

Delta Sharing registra i seguenti errori per i dati providers:

  • Delta Sharing non è abilitato nel metastore selezionato.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • È stata tentata un'operazione su un catalog che non esiste.

    DatabricksServiceException: CATALOG_DOES_NOT_EXIST:
    Catalog ‘<catalog>’ does not exist.
    
  • Un utente che non è un amministratore dell'account o un amministratore del metastore ha tentato di eseguire un'operazione con privilegi.

    DatabricksServiceException: PERMISSION_DENIED:
    Only administrators can <operation-name> <operation-target>
    
  • È stata tentata un'operazione in un metastore da un'area di lavoro a cui il metastore non è assegnato.

    DatabricksServiceException: INVALID_STATE:
    Workspace <workspace-name> is no longer assigned to this metastore
    
  • A una richiesta mancava il nome del destinatario o il nome della condivisione.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
    
  • Una richiesta includeva un nome di destinatario o un nome condivisione non valido.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
    
  • Un utente ha tentato di condividere un table che non si trova in un metastore Unity Catalog.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
    
  • Un utente ha tentato di ruotare un destinatario già in uno stato ruotato e il cui token precedente non era ancora scaduto.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
    
  • Un utente ha tentato di creare un nuovo destinatario o una nuova condivisione con lo stesso nome di uno/a esistente.

    DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
    
  • Un utente ha tentato di eseguire un'operazione su un destinatario o una condivisione che non esiste.

    DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
    
  • Un utente ha tentato di aggiungere un table a una condivisione, ma il table era già stato aggiunto.

    DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
    
  • Un utente ha tentato di eseguire un'operazione che ha fatto riferimento a un table che non esiste.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
    
  • Un utente ha tentato di eseguire un'operazione che ha fatto riferimento a un schema che non esisteva.

    DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
    
  • Un utente ha tentato di accedere a una condivisione che non esiste.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    

Messaggi di errore nei log dei destinatari

Delta Sharing registra i seguenti errori per i dati recipients:

  • L'utente ha tentato di accedere a una condivisione di cui non dispone dell'autorizzazione per accedere.

    DatabricksServiceException: PERMISSION_DENIED:
    User does not have SELECT on Share <share-name>
    
  • L'utente ha tentato di accedere a una condivisione che non esiste.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    
  • L'utente ha tentato di accedere a un table che non esiste nella condivisione.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.