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 Delta Sharing-gebeurtenissenom de list 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 Audit log system table referencevoor meer informatie over het auditlogboeksysteem table.
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
In de providerlogboeken worden de gebeurtenissen die worden geretourneerd als deltaSharingQueriedTableChanges
en deltaSharingQueriedTable
geregistreerd nadat de query van een gegevensontvanger een antwoord krijgt.
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"
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.