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.
Databricks, Unity Kataloğu ile Lakeflow Spark Bildirimli İşlem Hatlarının yapılandırılmasını önerir. Unity Kataloğu'nu kullanmak yeni oluşturulan işlem hatları için varsayılan değerdir.
Unity Kataloğu ile yapılandırılan işlem hatları, tanımlı tüm gerçekleştirilmiş görünümleri ve akış tablolarını belirtilen katalog ve şemada yayımlar. Unity Kataloğu işlem hatları diğer Unity Kataloğu tablolarından ve birimlerinden okuyabilir.
Unity Kataloğu işlem hattı tarafından oluşturulan tablolardaki izinleri yönetmek için ve GRANTkullanınREVOKE.
Uyarı
Bu makalede, işlem hatları için geçerli varsayılan yayımlama modunun işlevselliği açıklanır. 5 Şubat 2025'den önce oluşturulan işlem hatları, eski yayımlama modunu ve LIVE sanal şemayı kullanabilir.
LIVE şeması (eski) sayfasına bakın.
Gereksinimler
Unity Kataloğu'nda bir hedef şemada akış tabloları ve gerçekleştirilmiş görünümler oluşturmak için şema ve üst katalog üzerinde aşağıdaki izinlere sahip olmanız gerekir:
-
USE CATALOGhedef katalog üzerinde ayrıcalıklara sahiptir. - İşlem hattınız
CREATE MATERIALIZED VIEWgerçekleştirilmiş görünümler oluşturursa, hedef şemadaUSE SCHEMAve ayrıcalıklarına sahip olursunuz. - Eğer işlem hattınız
CREATE TABLEoluşturuyorsa, hedef şemadaUSE SCHEMAve ayrıcalıklarına sahip olun. - İşlem hattınız yeni şemalar oluşturuyorsa, hedef katalogda
USE CATALOGveCREATE SCHEMAayrıcalıklarına sahip olmanız gerekir.
Unity Kataloğu özellikli işlem hattını çalıştırmak için işlem gereksinimleri:
- İşlem kaynağınız standart erişim moduyla yapılandırılmalıdır. Ayrılmış işlem desteklenmez. Bkz. Erişim modları.
Unity Kataloğu kullanılarak işlem hatları tarafından oluşturulan tabloları sorgulamak için gereken işlem (akış tabloları ve gerçekleştirilmiş görünümler dahil) aşağıdakilerden herhangi birini içerir:
- SQL ambarları
- Standart erişim modu, Databricks Runtime 13.3 LTS veya üstü sürümlerde işlem yapma.
- Ayrılmış erişim modunda işlem, ayrılmış işlem üzerinde ayrıntılı erişim denetimi etkinleştirilmişse (yani Databricks Runtime 15.4 veya üzerinde çalışıyorsa ve çalışma alanı için sunucusuz işlem etkinleştirilmişse). Daha fazla bilgi için bkz. Ayrılmış hesaptaki ince erişim denetimi.
- Tablo sahibi sorguyu çalıştırdığı takdirde, yalnızca 13.3 LTS'den 15.3'e kadar olan sürümlerde ayrılmış erişim modu işlemcisi kullanılır.
Ek işlem sınırlamaları geçerlidir. Aşağıdaki bölüme bakın.
Sınırlama
İşlem hatlarıyla Unity Kataloğu'nu kullanırken sınırlamalar şunlardır:
- Varsayılan olarak, Unity Kataloğu etkin işlem hattını çalıştıran işlemden sürücü günlüklerini yalnızca işlem hattı sahibi ve çalışma alanı yöneticileri görüntüleyebilir. Diğer kullanıcıların sürücü günlüklerine erişmesine izin vermek için bkz. Yönetici olmayan kullanıcıların Unity Kataloğu etkin işlem hattından sürücü günlüklerini görüntülemesine izin verme.
- Hive meta veri deposu kullanan mevcut işlem hatları Unity Kataloğu'nu kullanacak şekilde yükseltilemez. Hive meta veri deposuna yazan mevcut bir işlem hattını geçirmek için yeni bir işlem hattı oluşturmanız ve veri kaynağından/veya veri kaynaklarından verileri yeniden almanız gerekiyor. Bkz. Hive meta veri deposu işlem hattını kopyalayarak Unity Kataloğu işlem hattı oluşturma.
- Unity Kataloğu Genel Önizlemesi sırasında oluşturulmuş bir meta veri deposuna bağlı bir çalışma alanında Unity Kataloğu etkin işlem hattı oluşturamazsınız. Bkz. Ayrıcalık devralma yükseltmesi.
- JAR'ler desteklenmez. Yalnızca üçüncü taraf Python kitaplıkları desteklenir. Bkz. İşlem hatları için Python bağımlılıklarını yönetme.
- Akış tablosunun şemasını değiştiren veri işleme dili (DML) sorguları desteklenmez.
- Bir işlem hattında oluşturulan gerçekleştirilmiş görünüm, başka bir işlem hattı veya aşağı doğru bilgi aktaran bir not defteri gibi bu işlem hattının dışında bir akış kaynağı olarak kullanılamaz.
- Gerçekleştirilmiş görünümler ve akış tabloları için veriler, içeren şemanın depolama konumunda depolanır. Şema depolama konumu belirtilmezse tablolar katalog depolama konumunda depolanır. Şema ve katalog depolama konumları belirtilmezse, tablolar meta veri deposunun kök depolama konumunda depolanır.
- Katalog Gezgini Geçmişi sekmesi gerçekleştirilmiş görünümlerin geçmişini göstermez.
- tablo tanımlanırken
LOCATIONözelliği desteklenmez. - Unity Catalog etkinleştirilmiş işlem hatları Hive meta veri deposuna yayımlanamaz.
- Python UDF desteği Genel Önizleme aşamasındadır.
Uyarı
Gerçekleştirilmiş görünümleri destekleyen temel dosyalar, gerçekleştirilmiş görünüm tanımında görünmeyen yukarı akış tablolarındaki verileri (olası kişisel bilgiler dahil) içerebilir. Bu veriler, materyalize edilmiş görünümlerin artımlı olarak yenilenmesini desteklemek için temel alınan depolamaya otomatik olarak eklenir.
Gerçekleştirilmiş bir görünümün temel dosyaları, gerçekleştirilen görünüm şemasının parçası olmayan yukarı akış tablolarından verileri açığa çıkarabileceğinden, bu yüzden Databricks, temel depolamanın güvenilmeyen aşağı akış tüketicileriyle paylaşılmaması gerektiğini önermektedir.
Örneğin, gerçekleştirilmiş görünüm tanımının bir COUNT(DISTINCT field_a) klausul içerdiğini varsayalım. Gerçekleştirilmiş görünüm tanımı yalnızca toplama COUNT DISTINCT yan tümcesini içerse de, altındaki dosyalar gerçek değerlerinin field_a listesini içerir.
Hive meta veri deposu ve Unity Kataloğu işlem hatlarını birlikte kullanabilir miyim?
Çalışma alanınız Unity Kataloğu ve eski Hive meta veri depolarını kullanan işlem hatları içerebilir. Ancak, tek bir işlem hattı Hive meta veri deposuna ve Unity Kataloğu'na yazamaz. Hive meta veri deposuna yazan mevcut işlem hatları Unity Kataloğu'nu kullanacak şekilde yükseltilemez. Hive meta veri deposuna yazan mevcut bir işlem hattını geçirmek için yeni bir işlem hattı oluşturmanız ve veri kaynağından/veya veri kaynaklarından verileri yeniden almanız gerekiyor. Bkz. Hive meta veri deposu işlem hattını kopyalayarak Unity Kataloğu işlem hattı oluşturma.
Unity Kataloğu kullanmayan mevcut işlem hatları, Unity Kataloğu ile yapılandırılmış yeni işlem hatları oluşturulmasından etkilenmez. Bu boru hatları, yapılandırılmış depolama konumunu kullanarak Hive meta veri deposuna verileri aktarmaya devam eder.
Bu belgede aksi belirtilmedikçe, Unity Kataloğu kullanan işlem hatlarında tüm mevcut veri kaynakları ve işlem hattı işlevleri desteklenir. Hem Python hem de SQL arabirimleri Unity Kataloğu kullanan işlem hatlarıyla desteklenir.
Etkin olmayan tablolar
İşlem hattı verileri Unity Kataloğu'na kalıcı hale getirmek üzere yapılandırıldığında, işlem hattı tablonun yaşam döngüsünü ve izinlerini yönetir.
Tabloların tanımı bir işlem hattından kaldırılırsa, tablolar devre dışı olabilir. Sonraki işlem hattı güncelleştirmesi, karşılık gelen gerçekleştirilmiş görünümü veya akış tablosu girişini etkin değil olarak işaretler.
İşlem hattının varsayılan kataloğunu veya şemasını değiştirir ve işlem hattı kaynak kodunda tam tablo adlarını kullanmazsanız, sonraki işlem hattı çalıştırması yeni katalog veya şemada gerçekleştirilmiş görünümü veya akış tablosunu oluşturur ve eski konumdaki önceki gerçekleştirilmiş görünüm veya akış tablosu etkin değil olarak işaretlenir.
Etkin olmayan tabloları sorgulamaya devam edebilirsiniz, ancak işlem hattı artık bunları güncelleştirmez. Gerçekleştirilmiş görünümleri veya akış tablolarını temizlemek için, tabloyu DROP açıkça temizleyin. İşlem hattı silindiğinde etkin olmayan tablolar silinir.
- komutunu kullanarak
UNDROPbırakılan tabloları 7 gün içinde kurtarabilirsiniz. - Bir sonraki veri hattı güncellemesinde gerçekleştirilmiş görünüm veya akış tablosu girişinin Unity Kataloğu'ndan kaldırıldığı eski davranışı korumak için veri hattı yapılandırmasını
"pipelines.dropInactiveTables": "true"olarak ayarlayın. Gerçek veriler bir süre boyunca saklanır, böylece yanlışlıkla silinirse kurtarılabilir. Gerçekleştirilmiş görünüm veya akış tablosu işlem hattı tanımına geri eklenerek veriler 7 gün içinde kurtarılabilir.
İşlem hattının tamamen silinmesi (işlem hattı kaynağından bir tablo tanımını kaldırmanın aksine) söz konusu işlem hattında tanımlanan tüm tabloları da siler. Kullanıcı arabirimi, bir işlem hattının silinmesini onaylamanızı ister.
İşlem hattından Unity Kataloğu'na tablo yazma
Tablolarınızı Unity Kataloğu'na yazmak için işlem hattınızı çalışma alanınız aracılığıyla onunla çalışacak şekilde yapılandırmanız gerekir. İşlem hattı oluştururkenDepolama seçenekleri'nin altında Unity Kataloğu'nu seçin, Katalog açılan menüsünden bir katalog seçin ve var olan bir şemayı seçin veya Hedef şema açılan menüsünde yeni şemanın adını girin. Unity Kataloğu katalogları hakkında bilgi edinmek için bkz. Azure Databricks'te kataloglar nelerdir?. Unity Kataloğu'ndaki şemalar hakkında bilgi edinmek için bkz. Azure Databricks'te şemalar nelerdir?.
Unity Kataloğu işlem hattına veri aktarma
Unity Kataloğu'nu kullanacak şekilde yapılandırılmış işlem hattınız şu kaynaklardan veri okuyabilir:
- Unity Kataloğu yönetilen ve dış tablolar, tablo görünümleri, maddileştirilmiş görünümler ve akış tabloları.
- Hive meta veri deposu tabloları ve görünümleri.
- Unity Kataloğu dış konumlarından okumak için
read_files()işlevini kullanan otomatik yükleyici. - Apache Kafka ve Amazon Kinesis.
Aşağıda Unity Kataloğu ve Hive meta veri deposu tablolarından okuma örnekleri verilmiştir.
Unity Kataloğu tablosundan toplu veri yükleme
SQL
CREATE OR REFRESH MATERIALIZED VIEW
table_name
AS SELECT
*
FROM
my_catalog.my_schema.table1;
Piton
@dp.materialized_view
def table_name():
return spark.read.table("my_catalog.my_schema.table")
Unity Kataloğu tablosundan değişiklikleri akışla aktarma
SQL
CREATE OR REFRESH STREAMING TABLE
table_name
AS SELECT
*
FROM
STREAM(my_catalog.my_schema.table1);
Piton
@dp.table
def table_name():
return spark.readStream.table("my_catalog.my_schema.table")
Hive metastore'dan veri alma
Unity Kataloğu kullanan bir işlem hattı, hive_metastore kataloğunu kullanarak Hive meta veri deposu tablolarındaki verileri okuyabilir:
SQL
CREATE OR REFRESH MATERIALIZED VIEW
table_name
AS SELECT
*
FROM
hive_metastore.some_schema.table;
Piton
@dp.materialized_view
def table3():
return spark.read.table("hive_metastore.some_schema.table")
Otomatik Yükleyiciden veri alma
SQL
CREATE OR REFRESH STREAMING TABLE table_name
AS SELECT *
FROM STREAM read_files(
"/path/to/uc/external/location",
format => "json"
)
Piton
@dp.table(table_properties={"quality": "bronze"})
def table_name():
return (
spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "json")
.load(f"{path_to_uc_external_location}")
)
Gerçekleştirilmiş görünümleri paylaşın
Varsayılan olarak, yalnızca işlem hattı sahibinin işlem hattı tarafından oluşturulan veri kümelerini sorgulama izni vardır. Diğer kullanıcılara GRANT deyimlerini kullanarak tablo sorgulama olanağı verebilir ve REVOKE deyimlerini kullanarak sorgu erişimini iptal edebilirsiniz. Unity Kataloğu'ndaki ayrıcalıklar hakkında daha fazla bilgi için bkz. Unity Kataloğu'nda ayrıcalıkları yönetme.
Bir tablo üzerinde seçme yetkisi verme
GRANT SELECT ON TABLE
my_catalog.my_schema.table_name
TO
`user@databricks.com`
Bir tabloda SELECT yetkisini geri alma
REVOKE SELECT ON TABLE
my_catalog.my_schema.table_name
FROM
`user@databricks.com`
Tablo oluşturma veya maddileştirilmiş görünüm oluşturma ayrıcalıkları verme
GRANT CREATE { MATERIALIZED VIEW | TABLE } ON SCHEMA
my_catalog.my_schema
TO
{ principal | user }
İşlem hattı köken bilgilerini görüntüleme
İşlem hatlarında bulunan tablolar için köken bilgisi Katalog Gezgini'nde görünür. Katalog Gezgini soy kullanıcı arabirimi, Unity Catalog özellikli bir işlem hattındaki materyalize edilmiş görünümler veya akış tabloları için yukarı ve aşağı akış tablolarını gösterir. Unity Kataloğu kökeni hakkında daha fazla bilgi edinmek için bkz. Unity Kataloğu kullanarak veri kökenini görüntüleme.
Unity Kataloğu etkin bir boru hattında materyalize edilmiş bir görünüm veya akış tablosu için, Katalog Gezgini köken arayüzü, mevcut çalışma alanından erişilebiliyorsa, materyalize edilmiş görünümü veya akış tablosunu oluşturan boru hattına da bağlanır.
Akış tablosunda veri ekleme, değiştirme veya silme
Unity Kataloğu'nda yayımlanan Akış tablolarını değiştirmek için ekleme, güncelleştirme, silme ve birleştirme deyimleri dahil olmak üzere veri işleme dili (DML) deyimlerini kullanabilirsiniz. Akış tablolarına yönelik DML sorguları desteği, Genel Veri Koruma Yönetmeliği (GDPR) ile uyumluluk için tabloları güncelleştirme gibi kullanım örneklerini etkinleştirir.
Uyarı
- Akış tablosunun tablo şemasını değiştiren DML deyimleri desteklenmez. DML deyimlerinizin tablo şemasını geliştirmeye çalışmadığından emin olun.
- Akış tablosunu güncelleştiren DML deyimleri, Databricks Runtime 13.3 LTS ve üzeri kullanılarak yalnızca paylaşılan unity kataloğu kümesinde veya SQL ambarında çalıştırılabilir.
- Akış, yalnızca eklemeye izin veren veri kaynakları gerektirdiğinden, işlemeniz bir kaynak akış tablosundan değişiklikler içeren akış gerektiriyorsa (örneğin, DML deyimleri kullanılarak), kaynak akış tablosunu okurken skipChangeCommits bayrağını ayarlayın.
skipChangeCommitsayarlandığında, kaynak tablodaki kayıtları silen veya değiştiren işlemler yoksayılır. İşlemeniz bir akış tablosu gerektirmiyorsa, ekleme kısıtlaması olmayan gerçekleştirilmiş bir görünümü hedef tablo olarak kullanabilirsiniz.
Aşağıda, akış tablosundaki kayıtları değiştirmeye yönelik DML deyimlerine örnekler verilmiştir.
Belirli bir kimlik numarasına sahip kayıtları silin:
DELETE FROM my_streaming_table WHERE id = 123;
Kayıtları belirli bir kimlikle güncelleştirin:
UPDATE my_streaming_table SET name = 'Jane Doe' WHERE id = 123;
Satır filtreleri ve sütun maskeleriyle tablo yayımlama
Satır filtreleri , tablo taraması satırları her getirdiğinde filtre olarak uygulanan bir işlev belirtmenize olanak tanır. Bu filtreler, izleyen sorguların yalnızca filtre koşulunun true olarak değerlendirildiği satırları döndürmesini sağlar.
Sütun maskeleri, bir tablo taraması satırları geri getirdiğinde sütun değerlerini maskelemenizi sağlar. Bu sütun için gelecekteki sorgular, sütunun özgün değeri yerine değerlendirilen işlevin sonucunu döndürür. Satır filtrelerini ve sütun maskelerini kullanma hakkında daha fazla bilgi için bkz. Satır filtreleri ve sütun maskeleri.
Satır Filtrelerini ve Sütun Maskelerini Yönetme
Gerçekleştirilmiş görünümlerde ve akış tablolarında satır filtreleri ve sütun maskeleri CREATE OR REFRESH deyimi aracılığıyla eklenmeli, güncellenmeli veya kaldırılmalıdır.
Satır filtreleri ve sütun maskeleri kullanarak tabloları tanımlama hakkında ayrıntılı söz dizimi için İşlem Hattı SQL dil başvurusu ve Lakeflow Spark Bildirimli İşlem Hatları Python dil başvurusu başvurularına bkz.
Davranış
İşlem hattında satır filtreleri veya sütun maskeleri kullanılırken önemli ayrıntılar şunlardır:
-
Sahip olarak yenile: İşlem hattı güncellemesi, malzeme görünümünü veya akış tablosunu yenilediğinde, satır filtresi ve sütun maskesi işlevleri işlem hattı sahibinin haklarıyla çalışır. Bu, tablo yenileme işleminin işlem hattını oluşturan kullanıcının güvenlik bağlamını kullandığı anlamına gelir. Kullanıcı bağlamını (örneğin
CURRENT_USERveIS_MEMBER) denetleyen işlevler, işlem hattı sahibinin kullanıcı bağlamı kullanılarak değerlendirilir. -
Sorgu: Gerçekleştirilmiş bir görünümü veya akış tablosunu sorgularken, kullanıcı bağlamını (ve gibi
CURRENT_USERIS_MEMBER) denetleen işlevler çağıranın kullanıcı bağlamı kullanılarak değerlendirilir. Bu yaklaşım, geçerli kullanıcının bağlamını temel alarak kullanıcıya özgü veri güvenliği ve erişim denetimlerini zorunlu kılıp uygular. - Satır filtreleri ve sütun maskeleri içeren kaynak tablolar üzerinde gerçekleştirilmiş görünümler oluştururken, gerçekleştirilmiş görünümün yenilenmesi her zaman tam bir yenilemedir. Tam yenileme, kaynakta bulunan tüm verileri en son tanımlarla yeniden işler. Bu süreç, kaynak tablolardaki güvenlik ilkelerinin en güncel veri ve tanımlarla değerlendirildiğini ve uygulandığını kontrol eder.
Observability
Belirli bir gerçekleştirilmiş görünüme veya Akış tablosuna uygulanan mevcut satır filtrelerini ve sütun maskelerini incelemek için DESCRIBE EXTENDED, INFORMATION_SCHEMAveya Katalog Gezgini'ni kullanın. Bu işlevsellik, kullanıcıların gerçekleştirilmiş görünümler ve akış tablolarında veri erişimi ve koruma ölçülerini denetlemesine ve gözden geçirmesine olanak tanır.