Bagikan melalui


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.