Delen via


Gegevens delen controleren en bewaken

In dit artikel wordt beschreven hoe gegevensproviders en ontvangers auditlogboeken kunnen gebruiken voor het bewaken van Delta Sharing-gebeurtenissen. Auditlogboeken van provider registreren acties die door de provider worden uitgevoerd en acties die door ontvangers worden uitgevoerd op de gedeelde gegevens van de provider. Auditlogboeken van geadresseerden registreren gebeurtenissen met betrekking tot het openen van shares en het beheer van providerobjecten.

Zie Delta Sharing-gebeurtenissen om de lijst met auditlogboekgebeurtenissen van Delta Sharing weer te geven.

Vereisten

Voor toegang tot auditlogboeken moet een accountbeheerder de systeemtabel voor het auditlogboek inschakelen voor uw Azure Databricks-account. Zie Systeemtabellen inschakelen. Zie Referentie voor systeemtabel auditlogboeken voor informatie over de tabel 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 systeemtabellen heeft ingeschakeld, worden auditlogboeken opgeslagen in system.access.audit. Als uw account ook een installatie voor de levering van auditlogboeken heeft, moet u de bucket en het pad weten waar de logboeken worden bezorgd.

Vastgelegde gebeurtenissen

Zie Delta Sharing-gebeurtenissen om de lijst met auditlogboekgebeurtenissen van Delta Sharing weer te geven.

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 kunnen het response.result veld van deze logboeken bekijken voor meer informatie over wat er met de ontvanger is gedeeld. Het veld kan de volgende waarden bevatten. Dit is geen volledige lijst.

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

  • Delta Sharing is niet ingeschakeld voor de geselecteerde metastore.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • Er is een bewerking uitgevoerd in een catalogus 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 tabel 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 tabel toe te voegen aan een share, maar de tabel 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 tabel 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 dat 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 gegevensontvangers:

  • 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 tabel die niet in de share bestaat.

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