Ayrılmış hesaplamada ayrıntılı erişim denetimi (önceki adlandırmasıyla tek kullanıcılı hesaplama)
Bu makalede, ayrılmış işlem altyapısında (Ayrılmış erişim moduyla yapılandırılmış tüm amaçlı veya işler işlem) çalışan sorgular üzerinde ince ayarlı erişim kontrolüne olanak tanıyan veri filtreleme işlevi tanıtılmaktadır. Bkz. Erişim modları.
Bu veri filtreleme, sunucusuz işlem kullanılarak arka planda gerçekleştirilir.
Ayrılmış işlemdeki bazı sorgular neden veri filtreleme 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ı
- Standart işlem (eski adıyla paylaşılan işlem)
Ancak, bu tür sorguları çalıştırmak için ayrılmış işlem kullanıyorsanız işlem ve çalışma alanınız belirli gereksinimleri karşılamalıdır:
Ayrılmış işlem kaynağı Databricks Runtime 15.4 LTS veya üzerinde olmalıdır.
çalışma alanının işler, not defterleri ve DLT sunucusuz işlem içinetkinleştirilmesi gerekir.
Çalışma alanı bölgenizin sunucusuz işlem desteklediğini onaylamak için bkz . Sınırlı bölgesel kullanılabilirliğe sahip özellikler.
Ayrılmış 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 ayrılmış işlemde desteklenmeyen aşağıdaki görünümlerde ve tablolarda sorgular da sağlar:
Özel hesaplama üzerinde Databricks Runtime 15.3 ve altı sürümlerde, 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 SELECT
izinlerine sahip olması gerekir; bu da görünümleri kullanarak ayrıntılı erişim kontrolü sağlamanızı engeller. 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.
Veri filtreleme, ayrılmış işlem üzerinde nasıl çalışır?
Bir sorgu aşağıdaki veritabanı nesnelerine her eriştiğinde, ayrılmış işlem kaynağı veri filtrelemesi gerçekleştirmek için sorguyu sunucusuz işlemle birlikte geçirir:
- Kullanıcının üzerinde
SELECT
ayrıcalığına sahip olmadığı tablolar üzerinde oluşturulan 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
ve view_2
üzerinde, satır filtreleri uygulanmış olan table_w_rls
bulunmaktadır. Kullanıcının table_2
üzerinde, view_2
tarafından referans verilen SELECT
yoktur.
table_1
üzerindeki sorgu tamamen ayrılmış 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
Ayrılmış 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 çıktısı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.
- Depolamadan okunması gereken ve budanamayan kaç veri dosyası vardı? "Okunan dosyalar" ve "Okunan dosyaların boyutu" dosyalarını görüntüleyin.
- Okunacak dosyalardan kaçı zaten önbellekteydi? "Önbellek isabet boyutu" ve "Önbellek kaçırma boyutu"nu 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, ,
INSERT,
,DELETE
veUPDATE
gibiREFRESH TABLE
MERGE
DML işlemleri desteklenmez. Bu tablolardan yalnızca (SELECT
) okuyabilirsiniz.Kendi kendine birleşimler, veri süzme çağrıldığında varsayılan olarak engellenir, ancak bu komutları çalıştırdığınız hesaplamada
spark.databricks.remoteFiltering.blockSelfJoins
'yi false olarak ayarlayarak bunlara izin verebilirsiniz.Ayrılmış bir 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.
- Docker görüntülerinde destek yok.
- Çalışma alanınız Kasım 2024'den önce bir güvenlik duvarıyla dağıtıldıysa, ayrılmış işlemde ayrıntılı erişim denetimini etkinleştirmek için 8443 ve 8444 bağlantı noktalarını açmanız gerekir. bkz. Ağ güvenlik grubu kuralları.