Mengaudit dan memantau berbagi data
Artikel ini menjelaskan bagaimana penyedia data dan penerima dapat menggunakan log audit untuk memantau peristiwa Berbagi Delta. Log audit penyedia mencatat tindakan yang diambil oleh penyedia dan tindakan yang diambil oleh penerima pada data bersama penyedia. Log audit penerima merekam peristiwa yang terkait dengan akses berbagi dan pengelolaan objek penyedia.
Untuk melihat daftar peristiwa log audit Berbagi Delta, lihat Peristiwa Berbagi Delta.
Persyaratan
Untuk mengakses log audit, admin akun harus mengaktifkan tabel sistem log audit untuk akun Azure Databricks Anda. Lihat Mengaktifkan tabel sistem. Untuk informasi tentang tabel sistem log audit, lihat Referensi tabel sistem log audit.
Jika Anda bukan admin akun atau admin metastore, Anda harus diberi akses untuk system.access.audit
membaca log audit.
Menampilkan peristiwa Berbagi Delta di log audit
Jika akun Anda mengaktifkan tabel sistem, log audit disimpan di system.access.audit
. Jika, atau, akun Anda memiliki penyiapan pengiriman log audit, Anda perlu mengetahui wadah dan jalur tempat log dikirimkan.
Peristiwa yang dicatat
Untuk melihat daftar peristiwa log audit Berbagi Delta, lihat Peristiwa Berbagi Delta.
Menampilkan detail hasil kueri penerima
Dalam log penyedia, peristiwa yang dikembalikan sebagai deltaSharingQueriedTableChanges
dan deltaSharingQueriedTable
dicatat setelah kueri penerima data mendapatkan respons. Penyedia dapat melihat response.result
bidang log ini untuk melihat detail selengkapnya tentang apa yang dibagikan dengan penerima. Bidang dapat menyertakan nilai berikut. Daftar ini tidak lengkap.
"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"
Kesalahan yang dicatat
Jika upaya tindakan Berbagi Delta gagal, tindakan dicatat dengan pesan kesalahan di response.error_message
bidang log. Item antara <
dan >
karakter mewakili teks tempat penampung.
Pesan kesalahan dalam log penyedia
Berbagi Delta mencatat kesalahan berikut untuk penyedia data:
Delta Sharing tidak diaktifkan pada metastore yang dipilih.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
Operasi dicoba pada katalog yang tidak ada.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
Pengguna yang bukan admin akun atau admin metastore berusaha melakukan operasi istimewa.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
Operasi dicoba pada metastore dari ruang kerja tempat metastore tidak ditugaskan.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
Permintaan tidak memiliki nama penerima atau nama saham.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
Permintaan menyertakan nama penerima yang tidak valid atau nama berbagi.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
Pengguna mencoba membagikan tabel yang tidak ada dalam metastore Katalog Unity.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
Seorang pengguna mencoba untuk memutar penerima yang sudah dalam keadaan diputar dan yang token sebelumnya belum kedaluwarsa.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
Pengguna mencoba membuat penerima baru atau berbagi dengan nama yang sama dengan yang sudah ada.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
Pengguna mencoba melakukan operasi pada penerima atau berbagi yang tidak ada.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
Pengguna mencoba menambahkan tabel ke berbagi, tetapi tabel telah ditambahkan.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
Pengguna mencoba melakukan operasi yang mereferensikan tabel yang tidak ada.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
Pengguna mencoba melakukan operasi yang mereferensikan skema yang tidak ada.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
Pengguna mencoba mengakses berbagi yang tidak ada.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Pesan kesalahan dalam log penerima
Berbagi Delta mencatat kesalahan berikut untuk penerima data:
Pengguna berusaha mengakses berbagi yang tidak memiliki izin untuk mereka akses.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
Pengguna mencoba mengakses berbagi yang tidak ada.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Pengguna mencoba mengakses tabel yang tidak ada di berbagi.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.