Dela via


Granska och övervaka datadelning

Den här artikeln beskriver hur dataleverantörer och mottagare kan använda granskningsloggar för att övervaka Delta Sharing-händelser. Providerns granskningsloggar registrerar åtgärder som vidtagits av providern och åtgärder som vidtagits av mottagarna på leverantörens delade data. Mottagargranskningsloggar registrerar händelser som rör åtkomst till resurser och hantering av providerobjekt.

För att se listan över Delta Sharing granskningslogghändelser, se Deltadelningshändelser.

Krav

För att få åtkomst till granskningsloggar måste en kontoadministratör aktivera systemtabellen för granskningsloggar för ditt Azure Databricks-konto. Se Aktivera systemtabeller. Information om systemtabellen för granskningsloggar finns i Tabellreferens för granskningsloggsystem.

Om du inte är kontoadministratör eller metaarkivadministratör måste du få åtkomst till system.access.audit att läsa granskningsloggar.

Visa händelser för Delta-delnings i granskningsloggen

Om ditt konto har systemtabeller aktiverade lagras granskningsloggar i system.access.audit. Om ditt konto också har en konfiguration för leverans av granskningsloggar måste du känna till bucketen och sökvägen till var loggarna levereras.

Loggade händelser

För att visa listan över granskningshändelser i loggen för Delta Sharing, se Deltadelningshändelser.

Visa information om en mottagares frågeresultat

Deltadelning stöder delning av tillgångstyper som tabeller, vyer, materialiserade vyer, strömningsfunktioner och volymer. Deltadelning ger tillfällig läsåtkomst till underliggande data från antingen försignerade URL:er eller från begränsade STS-token. I följande tabell beskrivs hur delningstypen motsvarar de loggade granskningslogghändelserna:

Scenario Granskningslogghändelser
Tabeller som delas med öppna mottagare och tabeller utan historik som delas med Databricks-mottagare
  • deltaSharingQueriedTable (för tabellfrågor)
  • deltaSharingQueriedTableChanges (för CDF-frågor)
Tabell med historik som delas med Databricks-mottagare
  • generateTemporaryTableCredential
Volymdelning (STS-tokenbaserad åtkomst)
  • generateTemporaryVolumeCredential

Visa detaljer om försignerade URL-delningar

I providerloggarna loggas händelserna deltaSharingQueriedTableChanges och deltaSharingQueriedTable när en datamottagares fråga får ett svar på försignerad URL-baserad delning. Leverantörer kan visa fältet i response.result dessa loggar för att se mer information om vad som delades med mottagaren. Fältet kan innehålla följande värden. Den här listan är inte fullstä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"

Visa information om STS-tokenresurser

I providerloggarna loggas händelserna generateTemporaryTableCredentials och generateTemporaryVolumeCredentials när en datamottagares fråga får ett svar för STS-tokenbaserad delning. Leverantörer kan visa kolumnen request_params i dessa loggar för att se mer information om vad som delades med mottagaren. Fältet kan innehålla följande värden. Den här listan är inte fullstä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"

Loggade fel

Om en Delta Sharing-åtgärd misslyckas loggas åtgärden med felmeddelandet i response.error_message-fältet i loggen. Objekt mellan < och > tecken representerar platshållartext.

Felmeddelanden i providerloggar

Delta Sharing loggar följande fel för dataleverantörer:

  • Delta-delning är inte aktiverat i det valda metaarkivet.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • Man försökte utföra en operation på en katalog som inte finns.

    DatabricksServiceException: CATALOG_DOES_NOT_EXIST:
    Catalog ‘<catalog>’ does not exist.
    
  • En användare som inte är kontoadministratör eller metaarkivadministratör försökte utföra en privilegierad åtgärd.

    DatabricksServiceException: PERMISSION_DENIED:
    Only administrators can <operation-name> <operation-target>
    
  • En åtgärd försökte utföras på ett metaarkiv från en arbetsyta som metaarkivet inte har tilldelats till.

    DatabricksServiceException: INVALID_STATE:
    Workspace <workspace-name> is no longer assigned to this metastore
    
  • En begäran saknade mottagarnamnet eller delningsnamnet.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
    
  • En begäran innehöll ett ogiltigt mottagarnamn eller delningsnamn.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
    
  • En användare försökte dela en tabell som inte finns i ett Unity Catalog-metaarkiv.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
    
  • En användare försökte rotera en mottagare som redan var i ett roterat tillstånd och vars tidigare token ännu inte hade upphört att gälla.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
    
  • En användare försökte skapa en ny mottagare eller delning med samma namn som en befintlig.

    DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
    
  • En användare försökte utföra en åtgärd på en mottagare eller delning som inte finns.

    DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
    
  • En användare försökte lägga till en tabell i en delning, men tabellen hade redan lagts till.

    DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
    
  • En användare försökte utföra en åtgärd som refererade till en tabell som inte finns.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
    
  • En användare försökte utföra en åtgärd som refererade till ett schema som inte fanns.

    DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
    
  • En användare försökte komma åt en delning som inte finns.

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

Felmeddelanden i mottagarloggar

Delta Sharing loggar följande fel för datamottagare:

  • Användaren försökte komma åt en delning som de inte har behörighet att komma åt.

    DatabricksServiceException: PERMISSION_DENIED:
    User does not have SELECT on Share <share-name>
    
  • Användaren försökte komma åt en delning som inte finns.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    
  • Användaren försökte komma åt en tabell som inte finns i delningen.

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