Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, veri sağlayıcılarının ve alıcıların OpenSharing olaylarını izlemek için denetim günlüklerini nasıl kullanabileceği açıklanmaktadır. Sağlayıcı denetim günlükleri, sağlayıcı tarafından yapılan eylemleri ve sağlayıcının paylaşılan verilerinde alıcılar tarafından yapılan eylemleri kaydeder. Alıcı denetim günlükleri, paylaşımlara erişme ve sağlayıcı nesnelerinin yönetimiyle ilgili olayları kaydeder.
Requirements
Denetim günlüklerine erişmek için hesap yöneticisinin Azure Databricks hesabınız için denetim günlüğü sistem tablosunu etkinleştirmesi gerekir. Bkz. Sistem tablolarını etkinleştirme. Denetim günlüğü sistemi tablosu hakkında bilgi için Denetim günlüğü sistemi tablo referansı'na bakınız.
Hesap yöneticisi veya meta veri deposu yöneticisi değilseniz denetim günlüklerini okuma erişimine sahip system.access.audit olmanız gerekir.
Denetim günlüğünde OpenSharing olaylarını görüntüleme
Hesabınızda sistem tabloları etkinleştirilmişse denetim günlükleri içinde system.access.auditdepolanır. Alternatif olarak, hesabınızda bir denetim günlüğü iletim kurulumu varsa, günlüklerin iletildiği depo ve dosya yolunu bilmeniz gerekir.
Günlüğe kaydedilen olaylar
OpenSharing denetim günlüğü olaylarının listesini görüntülemek için bkz. OpenSharing olayları.
Alıcının sorgu sonucunun ayrıntılarını görüntüleme
OpenSharing, tablolar, görünümler, somutlaştırılmış görünümler, akış tabloları ve birimler gibi varlık türlerinin paylaşımını destekler. OpenSharing, önceden imzalanmış URL'ler ya da kapsamı daraltılmış STS belirteçleri aracılığıyla temeldeki verilere geçici okuma erişimi sağlar. Aşağıdaki tabloda, paylaşım türünün günlüğe kaydedilen denetim günlüğü olaylarına nasıl karşılık olduğu özetlenmiştir:
| Scenario | Denetim günlüğü olayları |
|---|---|
| Açık alıcılarla paylaşılan tablolar (önceden imzalı URL erişimi) ve Databricks alıcılarıyla paylaşılan geçmişi olmayan tablolar |
|
| Açık alıcılarla paylaşılan uygun tablolar (bulut belirteci erişimi, dizin tabanlı erişim modu). Bkz. Bulut belirteçleri ve dizin tabanlı erişim. |
|
| Databricks alıcılarıyla paylaşılan veri geçmişine sahip tablolar |
|
| Hacim paylaşımı (STS belirteci tabanlı erişim) |
|
Önceden imzalanan URL paylaşımlarıyla ilgili ayrıntıları görüntüleme
Sağlayıcı günlüklerinde, bir veri alıcısının önceden imzalanmış URL tabanlı paylaşım sorgusuna yanıt aldıktan sonra olaylar deltaSharingQueriedTableChanges ve deltaSharingQueriedTable günlüğe kaydedilir. Sağlayıcılar, alıcıyla nelerin paylaşıldığı hakkında daha fazla ayrıntı görmek için bu günlüklerin alanını görüntüleyebilir response.result . alanı aşağıdaki değerleri içerebilir. Bu liste kapsamlı değil.
"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"
STS jetonu paylaşımları hakkında ayrıntıları görüntüle
Olaylar, sağlayıcı günlüklerinde bir veri alıcısının sorgusu token tabanlı STS paylaşımı için yanıtlandıktan sonra generateTemporaryTableCredentials ve generateTemporaryVolumeCredentials olarak günlüğe kaydedilir. Sağlayıcılar, alıcıyla paylaşılanlar hakkında daha fazla ayrıntı görmek için bu günlüklerin request_params sütununu görüntüleyebilir. alanı aşağıdaki değerleri içerebilir. Bu liste kapsamlı değil.
"recipient_name": "someRecipientName"
"share_id": "ea7a4555-43d9-4cbd-a5df-f4f5193f297e"
"credential_type": "StorageCredential"
"is_permissions_enforcing_client": "true"
"table_full_name": "someTableName"
"operation": "READ"
"share_name": "someShareName"
"table_id": "someTableId"
"share_owner": "someShareOwner"
"recipient_id": "someRecipientId"
"table_url": "s3://somePath"
"metastore_id": "someMetastoreId"
Log hataları
Gerçekleştirilmeye çalışılan bir OpenSharing eylemi başarısız olursa, eylem hata iletisiyle birlikte günlüğün response.error_message alanına kaydedilir. ve < karakterleri arasındaki > öğeler yer tutucu metni temsil eden öğelerdir.
Sağlayıcı günlüklerinde hata iletileri
OpenSharing, veri sağlayıcıları için aşağıdaki hataları kaydeder:
OpenSharing seçili meta veri deposunda etkin değil.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabledVar olmayan bir katalogda bir işlem denendi.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog '<catalog>' does not exist.Hesap yöneticisi veya meta veri deposu yöneticisi olmayan bir kullanıcı ayrıcalıklı bir işlem gerçekleştirmeye çalıştı.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>Meta veri deposunun atanmadığı bir çalışma alanından meta veri deposunda bir işlem denendi.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastoreBir istekte alıcı adı veya paylaşım adı eksikti.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>İstekte geçersiz bir alıcı adı veya paylaşım adı vardı.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid nameBir kullanıcı Unity Kataloğu meta veri deposunda olmayan bir tabloyu paylaşmaya çalıştı.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a shareKullanıcı zaten döndürülmüş durumda olan ve önceki belirtecinin süresi henüz dolmamış bir alıcıyı döndürmeye çalıştı.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>Kullanıcı yeni bir alıcı oluşturmaya veya mevcut alıcıyla aynı ada sahip bir paylaşım oluşturmaya çalıştı.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`Kullanıcı, var olmayan bir alıcı veya paylaşım üzerinde işlem yapmaya çalıştı.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not existKullanıcı bir paylaşıma tablo eklemeyi denedi ancak tablo daha önce eklenmişti.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already existsKullanıcı, var olmayan bir tabloya başvuran bir işlem gerçekleştirmeye çalıştı.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not existKullanıcı, var olmayan bir şemaya başvuran bir işlem gerçekleştirmeye çalıştı.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not existKullanıcı var olmayan bir paylaşıma erişmeye çalıştı.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Alıcı günlüklerinde hata iletileri
OpenSharing, veri alıcıları için aşağıdaki hataları günlüğe kaydeder:
Kullanıcı erişim izni olmayan bir paylaşıma erişmeye çalıştı.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>Kullanıcı var olmayan bir paylaşıma erişmeye çalıştı.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.Kullanıcı paylaşımda var olmayan bir tabloya erişmeye çalıştı.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.