稽核和監視資料共用
本文說明數據 providers 和 recipients 如何使用稽核記錄來監控 Delta 共享事件。 提供者稽核記錄紀錄提供者的操作動作,以及 recipients 在提供者共享資料上所採取的操作。 收件者稽核日誌會記錄與存取 shares 和管理提供者物件相關的事件。
若要檢視 list Delta Sharing 稽核記錄事件,請參閱 Delta Sharing 事件。
需求
若要存取稽核記錄,帳戶管理員必須為您的 Azure Databricks 帳戶啟用稽核記錄系統 table。 請參閱 啟用系統 tables。 如需稽核記錄系統 table的資訊,請參閱 稽核記錄系統 table 參考。
如果您不是帳戶管理員或中繼存放區管理員,則必須獲得讀取稽核記錄的 system.access.audit
存取權。
在稽核記錄中檢視差異共用事件
如果您的帳戶已啟用系統 tables,稽核記錄會儲存在 system.access.audit
中。 或者,如果您的帳戶設有 稽核日誌傳遞設定,您必須知道用於傳遞日誌的貯存貯體和路徑 where。
記錄的事件
若要檢視 Delta Sharing 稽核記錄事件的 list,請參閱 Delta Sharing 事件。
檢視收件者查詢結果的詳細數據
在提供者記錄中,傳回為 deltaSharingQueriedTableChanges
和 deltaSharingQueriedTable
的事件會在數據收件者的查詢取得響應之後記錄。
Providers 可以檢視這些記錄的 [response.result
] 欄位,以查看與收件者共用之內容的詳細資訊。 欄位可以包含下列 values。 此 list 並不詳盡。
"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"
記錄的錯誤
如果嘗試的 Delta Sharing 動作失敗,則會記錄動作,並在記錄的欄位中顯示錯誤訊息 response.error_message
。 和 <
字元之間的>
專案代表佔位元文字。
提供者記錄中的錯誤訊息
Delta Sharing 會記錄以下與資料 providers相關的錯誤:
選取的中繼存放區中未啟用差異共用。
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
嘗試在不存在的 catalog 上進行操作。
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
並非帳戶管理員或中繼存放區管理員的使用者嘗試執行特殊權限作業。
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
嘗試從未指派中繼存放區的工作區對中繼存放區進行作業。
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
要求遺漏收件者名稱或共用名稱。
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
要求包含無效的收件者名稱或共用名稱。
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
用戶嘗試共用 table,但該對象不在 Unity 的 Catalog 中繼存放區。
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
使用者嘗試輪替已經處於輪替狀態且先前的權杖尚未過期的收件者。
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
使用者嘗試建立新的收件者,或共用與現有收件者相同的名稱。
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
使用者嘗試對不存在的收件者或共用執行作業。
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
用戶嘗試將 table 新增至共享,但 table 已經新增過。
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
用戶嘗試執行參考不存在之 table 的作業。
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
有一位使用者嘗試執行引用不存在之 schema 的操作。
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
使用者嘗試存取不存在的共用。
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
收件者記錄中的錯誤訊息
Delta Sharing 記錄以下資料 recipients的錯誤:
使用者嘗試存取沒有存取權限的共用。
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
使用者嘗試存取不存在的共用。
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
用戶嘗試存取不存在於共享中的 table。
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.