Gegevens delen controleren en bewaken
In dit artikel wordt beschreven hoe gegevens providers en recipients auditlogboeken kunnen gebruiken om gebeurtenissen van Delta Sharing te bewaken. Auditlogboeken van provider registreren acties die door de provider zijn uitgevoerd en acties die door recipients op de gedeelde gegevens van de provider worden uitgevoerd. In auditlogs van recipiënten worden gebeurtenissen vastgelegd die betrekking hebben op de toegang tot shares en het beheer van providerobjecten.
Zie listom de auditlogboekgebeurtenissen van Delta Sharing weer te geven.
Vereisten
Voor toegang tot auditlogboeken moet een accountbeheerder het auditlogboeksysteem inschakelen table voor uw Azure Databricks-account. Zie Systeem tablesinschakelen. Zie tablevoor meer informatie over het auditlogboeksysteem .
Als u geen accountbeheerder of metastore-beheerder bent, moet u toegang krijgen tot system.access.audit
het lezen van auditlogboeken.
Delta Sharing-gebeurtenissen weergeven in het auditlogboek
Als uw account systeem tables heeft ingeschakeld, worden auditlogboeken opgeslagen in system.access.audit
. Als uw account een alternatieve leveringconfiguratie voor auditlogboeken heeft, moet u weten naar welke bucket en pad where de logboeken worden geleverd.
Vastgelegde gebeurtenissen
Zie de list van Delta Sharing-auditlogboekgebeurtenissen door naar Delta Sharing-gebeurtenissente kijken.
Details van het queryresultaat van een geadresseerde weergeven
Delta Sharing ondersteunt het delen van activatypen zoals tables, views, gerealiseerde views, streamingtabellen en volumes. Delta Sharing biedt tijdelijke leestoegang tot de onderliggende gegevens van vooraf ondertekende URL's of van beperkte STS-tokens. In de volgende table wordt beschreven hoe het type delen overeenkomt met de vastgelegde gebeurtenissen in het auditlogboek:
Scenario | Auditlogboekgebeurtenissen |
---|---|
Tables gedeeld met recipients en tables open zonder geschiedenis gedeeld met Databricks recipients |
-
deltaSharingQueriedTable (voor table queries)- deltaSharingQueriedTableChanges (voor CDF-queries) |
Table waarvan de geschiedenis is gedeeld met Databricks recipients | - generateTemporaryTableCredential |
Volume delen (STS-token gebaseerde toegang) | - generateTemporaryVolumeCredential |
Details weergeven over vooraf ondertekende URL shares
In de providerlogboeken worden de gebeurtenissen deltaSharingQueriedTableChanges
en deltaSharingQueriedTable
geregistreerd nadat de query van een gegevensontvanger een antwoord krijgt voor vooraf ondertekend delen op basis van url's.
Providers kunt het response.result
veld van deze logboeken bekijken voor meer informatie over wat er met de ontvanger is gedeeld. Het veld kan de volgende valuesbevatten. Deze list is niet uitputtend.
"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"
Bekijk de details van STS-token shares
In de logboeken van de provider worden de gebeurtenissen generateTemporaryTableCredentials
en generateTemporaryVolumeCredentials
vastgelegd nadat de query van een gegevensontvanger een antwoord krijgt op basis van STS-token delen.
Providers kunt de request_params
column van deze logboeken bekijken voor meer informatie over wat er met de ontvanger is gedeeld. Het veld kan de volgende valuesbevatten. Deze list is niet uitputtend.
"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"
Vastgelegde fouten
Als een poging tot delta delen mislukt, wordt de actie geregistreerd met het foutbericht in het response.error_message
veld van het logboek. Items tussen <
en >
tekens vertegenwoordigen tijdelijke tekst.
Foutberichten in providerlogboeken
Delta Sharing registreert de volgende fouten voor gegevens providers:
Delta Sharing is niet ingeschakeld voor de geselecteerde metastore.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
Er is een bewerking uitgevoerd op een catalog die niet bestaat.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
Een gebruiker die geen accountbeheerder of metastore-beheerder is, heeft geprobeerd een bevoegde bewerking uit te voeren.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
Er is een bewerking uitgevoerd op een metastore vanuit een werkruimte waaraan de metastore niet is toegewezen.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
Er ontbreekt een aanvraag in de naam van de ontvanger of de gedeelde naam.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
Een aanvraag bevat een ongeldige naam van de ontvanger of de gedeelde naam.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
Een gebruiker heeft geprobeerd een table te delen die zich niet in een Unity Catalog metastore bevindt.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
Een gebruiker heeft geprobeerd een ontvanger te draaien die al een gedraaide status heeft en waarvan het vorige token nog niet is verlopen.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
Een gebruiker heeft geprobeerd een nieuwe ontvanger te maken of te delen met dezelfde naam als een bestaande.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
Een gebruiker heeft geprobeerd een bewerking uit te voeren op een ontvanger of share die niet bestaat.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
Een gebruiker heeft geprobeerd een table toe te voegen aan een share, maar de table is al toegevoegd.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
Een gebruiker heeft geprobeerd een bewerking uit te voeren die verwijst naar een table die niet bestaat.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
Een gebruiker heeft geprobeerd een bewerking uit te voeren die verwijst naar een schema die niet bestond.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
Een gebruiker heeft geprobeerd toegang te krijgen tot een share die niet bestaat.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Foutberichten in logboeken van geadresseerden
Delta Sharing registreert de volgende fouten voor gegevens recipients:
De gebruiker heeft geprobeerd toegang te krijgen tot een share die geen toegangsmachtiging heeft.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
De gebruiker heeft geprobeerd toegang te krijgen tot een share die niet bestaat.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
De gebruiker heeft geprobeerd toegang te krijgen tot een table die niet in de share bestaat.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.