Auditer et surveiller le partage de données.
Cet article décrit comment les fournisseurs de données et les destinataires peuvent utiliser les journaux d’audit pour surveiller les événements de partage Delta. Les journaux d’audit du fournisseur enregistrent les actions effectuées par le fournisseur et les actions effectuées par les destinataires sur les données partagées du fournisseur. Les journaux d’audit des destinataires enregistrent les événements liés à l’accès aux partages et à la gestion des objets fournisseur.
Pour afficher la liste des événements du journal d’audit Delta Sharing, consultez Événements de partage Delta.
Spécifications
Pour accéder aux journaux d’audit, un administrateur de compte doit activer la table système du journal d’audit pour votre compte Azure Databricks. Consultez Activer les tables système. Pour plus d’informations sur la table système du journal d’audit, consultez Analyser la table système du journal d’audit.
Si vous n’êtes pas administrateur de compte ou administrateur de metastore, vous devez avoir accès à system.access.audit
pour lire les journaux d’audit.
Afficher les événements Delta Sharing dans le journal d’audit
Si les tables système de votre compte sont activées, les journaux d’audit sont stockés dans system.access.audit
. Si votre compte dispose d’une configuration de remise des journaux d’audit, vous devez connaître le compartiment et le chemin d’accès où les journaux sont remis.
Événements enregistrés
Pour afficher la liste des événements du journal d’audit de partage Delta, consultez Événements de partage Delta.
Afficher les détails du résultat de la requête d’un destinataire
Dans les journaux du fournisseur, les événements retournés comme deltaSharingQueriedTableChanges
et deltaSharingQueriedTable
sont enregistrés après que la requête d’un destinataire de données a reçu une réponse. Les fournisseurs peuvent afficher le champ response.result
de ces journaux pour voir plus d’informations sur ce qui a été partagé avec le destinataire. Le champ peut inclure les valeurs suivantes. Cette liste n’est pas exhaustive.
"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"
Erreurs journalisées
Si une tentative d’action de partage delta échoue, l’action est enregistrée avec le message d’erreur dans le champ response.error_message
du journal. Les éléments entre les caractères <
et >
représentent le texte d’espace réservé.
Messages d’erreur dans les journaux du fournisseur
Delta Sharing enregistre les erreurs suivantes pour les fournisseurs de données :
Delta Sharing n’est pas activé sur le metastore sélectionné.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
Une opération a été tentée sur un catalogue qui n’existe pas.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
Un utilisateur qui n’est pas un administrateur de compte ou un administrateur de metastore a tenté d’effectuer une opération privilégiée.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
Une opération a été tentée sur un metastore à partir d’un espace de travail auquel le metastore n’est pas affecté.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
Il manque le nom du destinataire ou le nom du partage dans une requête.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
Une requête inclut un nom de destinataire ou un nom de partage non valide.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
Un utilisateur a tenté de partager une table qui n’est pas dans un metastore Unity Catalog.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
Un utilisateur a tenté de permuter un destinataire qui était déjà dans un état permuté et dont le jeton précédent n’avait pas encore expiré.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
Un utilisateur a tenté de créer un nouveau destinataire ou un nouveau partage avec le même nom qu’un autre.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
Un utilisateur a tenté d’effectuer une opération sur un destinataire ou un partage qui n’existe pas.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
Un utilisateur a essayé d’ajouter une table à un partage, mais la table avait déjà été ajoutée.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
Un utilisateur a tenté d’effectuer une opération faisant référence à une table qui n’existe pas.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
Un utilisateur a tenté d’effectuer une opération faisant référence à un schéma qui n’existait pas.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
Un utilisateur a tenté d’accéder à un partage qui n’existe pas.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Messages d’erreur dans les journaux des destinataires
Delta Sharing enregistre les erreurs suivantes pour les destinataires de données :
L’utilisateur a tenté d’accéder à un partage auquel il n’a pas l’autorisation d’accéder.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
L’utilisateur a tenté d’accéder à un partage qui n’existe pas.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
L’utilisateur a tenté d’accéder à une table qui n’existe pas dans le partage.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.