Auditoría y supervisión del uso compartido de datos
En este artículo se describe cómo los proveedores de datos y los destinatarios pueden usar registros de auditoría para supervisar los eventos de Delta Sharing. Los registros de auditoría del proveedor registran las acciones realizadas por el proveedor y las acciones realizadas por los destinatarios en los datos compartidos del proveedor. Los registros de auditoría de los destinatarios registran eventos relacionados con el acceso a recursos compartidos y la administración de objetos de proveedor.
Para ver la lista de eventos de registro de auditoría de Delta Sharing, consulte Eventos de Delta Sharing.
Requisitos
Para acceder a los registros de auditoría, un administrador de la cuenta debe habilitar la tabla del sistema de registro de auditoría para la cuenta de Azure Databricks. Consulte Habilitar tablas del sistema. Para obtener información sobre la tabla del sistema de registros de auditoría, consulte Referencia de tabla del sistema de registros de auditoría.
Si no es administrador de cuenta o administrador de metastore, debe tener acceso a system.access.audit
para leer los registros de auditoría.
Visualización de eventos de uso compartido de Delta en el registro de auditoría
Si la cuenta tiene habilitadas tablas del sistema, los registros de auditoría se almacenan en system.access.audit
. Si, como alternativa, la cuenta tiene una configuración de entrega del registro de auditoría, debe conocer el cubo y la ruta de acceso donde se entregan los registros.
Eventos registrados
Para ver la lista de eventos de registro de auditoría de Delta Sharing, consulte Eventos de Delta Sharing.
Ver detalles del resultado de la consulta de un destinatario
En los registros del proveedor, los eventos devueltos como deltaSharingQueriedTableChanges
y deltaSharingQueriedTable
se registran después de que la consulta de un destinatario de datos obtenga una respuesta. Los proveedores pueden ver el campo response.result
de estos registros para ver más detalles sobre lo que se ha compartido con el destinatario. El campo puede incluir los siguientes valores. Esta lista no es exhaustiva.
"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"
Errores registrados
Si se produce un error en una acción de Delta Sharing, la acción se registra con el mensaje de error en el campo response.error_message
del registro. Los elementos entre <
y >
representan texto de marcador de posición.
Mensajes de error en los registros del proveedor
Delta Sharing registra los errores siguientes para los proveedores de datos:
Delta Sharing no está habilitado en el metastore seleccionado.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
Se intentó realizar una operación en un catálogo que no existe.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
Un usuario que no es administrador de cuenta o administrador de metastore intentó realizar una operación con privilegios.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
Se intentó realizar una operación en un metastore desde un área de trabajo a la que no se ha asignado el metastore.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
Faltaba el nombre del destinatario o el nombre del recurso compartido en una solicitud.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
Una solicitud incluía un nombre de destinatario o un nombre de recurso compartido no válidos.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
Un usuario intentó compartir una tabla que no está en un metastore de Unity Catalog.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
Un usuario intentó rotar un destinatario que ya estaba en estado rotado y cuyo token anterior aún no había expirado.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
Un usuario intentó crear un nuevo destinatario o recurso compartido con el mismo nombre que uno existente.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
Un usuario intentó realizar una operación en un destinatario o recurso compartido que no existe.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
Un usuario intentó agregar una tabla a un recurso compartido, pero la tabla ya se había agregado.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
Un usuario intentó realizar una operación que hace referencia a una tabla que no existe.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
Un usuario intentó realizar una operación que hacía referencia a un esquema que no existía.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
Un usuario intentó acceder a un recurso compartido que no existe.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Mensajes de error en los registros de los destinatarios
Delta Sharing registra los errores siguientes para los destinatarios de datos:
El usuario intentó acceder a un recurso compartido al que no tiene permiso de acceso.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
El usuario intentó acceder a un recurso compartido que no existe.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
El usuario intentó acceder a una tabla que no existe en el recurso compartido.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.