Tek kullanıcı işlemlerinde ayrıntılı erişim denetimi
Bu makalede, tek kullanıcı işlemi üzerinde çalışan sorgularda ayrıntılı erişim denetimi sağlayan veri filtreleme işlevi tanıtılır (tek kullanıcı erişim moduyla yapılandırılmış tüm amaçlı veya işler işlem). Bkz. Erişim modları.
Bu veri filtreleme, sunucusuz işlem kullanılarak arka planda gerçekleştirilir.
Tek kullanıcı işlemindeki bazı sorgular neden veri filtrelemesi gerektirir?
Unity Kataloğu, aşağıdaki özellikleri kullanarak sütun ve satır düzeyinde (ayrıntılı erişim denetimi olarak da bilinir) tablosal verilere erişimi denetlemenizi sağlar:
Kullanıcılar, filtre ve maske uygulayan başvuruda bulunılan tablolardan veya sorgu tablolarından veri dışlayan görünümleri sorguladığında, sınırlama olmadan aşağıdaki işlem kaynaklarından herhangi birini kullanabilir:
- SQL ambarları
- Paylaşılan işlem
Ancak, bu tür sorguları çalıştırmak için tek kullanıcı işlemi kullanıyorsanız işlem ve çalışma alanınız belirli gereksinimleri karşılamalıdır:
Tek kullanıcı işlem kaynağı Databricks Runtime 15.4 LTS veya üzerinde olmalıdır.
İşler, not defterleri ve Delta Live Tabloları için sunucusuz işlem için çalışma alanı etkinleştirilmelidir.
Çalışma alanı bölgenizin sunucusuz işlem desteklediğini onaylamak için bkz . Sınırlı bölgesel kullanılabilirliğe sahip özellikler.
Tek kullanıcı işlem kaynağınız ve çalışma alanınız bu gereksinimleri karşılıyorsa, ayrıntılı erişim denetimi kullanan bir görünümü veya tabloyu her sorguladığınızda veri filtreleme otomatik olarak çalıştırılır.
Gerçekleştirilmiş görünümler, akış tabloları ve standart görünümler için destek
Dinamik görünümler, satır filtreleri ve sütun maskelerine ek olarak veri filtreleme, Databricks Runtime 15.3 ve altında çalışan tek kullanıcı işlemlerinde desteklenmeyen aşağıdaki görünümlerde ve tablolarda sorgular da sağlar:
-
Databricks Runtime 15.3 ve sonraki bir sürümünü çalıştıran tek kullanıcı işlemlerinde, görünümde sorguyu çalıştıran kullanıcının görünüm tarafından başvurulan tablolarda ve görünümlerde olması
SELECT
gerekir; bu, ayrıntılı erişim denetimi sağlamak için görünümleri kullanamamanızı sağlar. Veri filtreleme ile Databricks Runtime 15.4'te, görünümü sorgulayan kullanıcının başvuruda bulunan tablolara ve görünümlere erişmesi gerekmez.
Tek kullanıcı işlemlerinde veri filtreleme nasıl çalışır?
Bir sorgu aşağıdaki veritabanı nesnelerine her eriştiğinde, tek kullanıcı işlem kaynağı veri filtrelemesi gerçekleştirmek için sorguyu sunucusuz işlemle birlikte geçirir:
- Kullanıcının üzerinde ayrıcalığı olmayan
SELECT
tablolar üzerinde oluşturulmuş görünümler - Dinamik görünümler
- Satır filtrelerinin veya sütun maskelerinin tanımlandığı tablolar
- Gerçekleştirilmiş görünümler ve akış tabloları
Aşağıdaki diyagramda, bir kullanıcının SELECT
table_1
view_2
üzerinde satır filtreleri uygulanmış olan , ve table_w_rls
vardır. Kullanıcı, tarafından view_2
başvurulan üzerinde table_2
sahip SELECT
değildir.
Üzerindeki sorgu table_1
tamamen tek kullanıcı işlem kaynağı tarafından işlenir, çünkü filtreleme gerekmez. üzerinde yapılan sorgular view_2
ve table_w_rls
kullanıcının erişimi olan verileri döndürmek için veri filtrelemesi gerektirir. Bu sorgular sunucusuz işlemdeki veri filtreleme özelliği tarafından işlenir.
Hangi maliyetler tahakkuk eder?
Müşteriler, veri filtreleme işlemlerini gerçekleştirmek için kullanılan sunucusuz işlem kaynakları için ücretlendirilir. Fiyatlandırma bilgileri için bkz . Platform Katmanları ve Eklentiler.
Ne kadar ücretlendirildiğinize bakmak için sistem faturalama kullanım tablosunu sorgulayabilirsiniz. Örneğin, aşağıdaki sorgu işlem maliyetlerini kullanıcıya göre ayırır:
SELECT usage_date,
sku_name,
identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by FGAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2024-08-01' AND '2024-09-01'
AND billing_origin_product = 'FINE_GRAINED_ACCESS_CONTROL'
GROUP BY 1, 2, 3 ORDER BY 1;
Veri filtreleme etkin olduğunda sorgu performansını görüntüleme
Tek kullanıcılı işlem için Spark kullanıcı arabirimi, sorgularınızın performansını anlamak için kullanabileceğiniz ölçümleri görüntüler. İşlem kaynağında çalıştırdığınız her sorgu için SQL/Dataframe sekmesi sorgu grafiği gösterimini görüntüler. Veri filtrelemeye bir sorgu dahil edildiyse, kullanıcı arabirimi grafiğin alt kısmında RemoteSparkConnectScan işleci düğümünü görüntüler. Bu düğüm, sorgu performansını araştırmak için kullanabileceğiniz ölçümleri görüntüler. Bkz. Apache Spark kullanıcı arabiriminde işlem bilgilerini görüntüleme.
Aşağıdaki gibi soruları ele alan ölçümleri görmek için RemoteSparkConnectScan işleç düğümünü genişletin:
- Veri filtreleme ne kadar sürdü? "Toplam uzaktan yürütme süresi" öğesini görüntüleyin.
- Veri filtrelemeden sonra kaç satır kaldı? "Satır çıkışını" görüntüleyin.
- Veri filtrelemeden sonra ne kadar veri (bayt cinsinden) döndürüldü? "Satır çıktı boyutu"nu görüntüleyin.
- Bölüm ayıklaması yapılmış ve depolama alanından okunması gerekmeyen veri dosyası sayısını öğrenin. "Ayıklaması yapılan dosyalar" ve "Ayıklama yapılan dosyaların boyutu" dosyalarını görüntüleyin.
- Kaç veri dosyası çıkarılamadı ve depolama alanından okunması gerekti? "Okunan dosyalar" ve "Okunan dosyaların boyutu" dosyalarını görüntüleyin.
- Okunacak dosyalardan kaçı zaten önbellekteydi? "Önbellek isabet boyutu" ve "Önbelleğin boyutunu kaçırır"ı görüntüleyin.
Sınırlamalar
Satır filtreleri veya sütun maskeleri uygulanmış tablolarda tablo yazma veya yenileme işlemleri için destek yoktur.
Özellikle, ,
UPDATE
,REFRESH TABLE
veMERGE
gibiINSERT,
DELETE
DML işlemleri desteklenmez. Bu tablolardan yalnızca (SELECT
) okuyabilirsiniz.Veri filtreleme çağrıldığında kendi kendine birleşimler varsayılan olarak engellenir, ancak bu komutları çalıştırdığınız işlemde false olarak ayarlayarak
spark.databricks.remoteFiltering.blockSelfJoins
bunlara izin vekleyebilirsiniz.Tek bir kullanıcı işlem kaynağında kendi kendine birleştirmeleri etkinleştirmeden önce, veri filtreleme özelliği tarafından işlenen bir kendi kendine birleştirme sorgusunun aynı uzak tablonun farklı anlık görüntülerini döndürebileceğini unutmayın.