Aracılığıyla paylaş


Unity Kataloğu'nu Lakeflow Bildirimli İşlem Hatlarınızla kullanma

Databricks, Unity Kataloğu ile Lakeflow Bildirimli İşlem Hatlarının yapılandırılmasını önerir.

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.

Not

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. Bkz. LIVE şeması (eski)

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 CATALOG hedef katalog üzerinde ayrıcalıklara sahiptir.
  • İşlem hattınız CREATE MATERIALIZED VIEWgerçekleştirilmiş görünümler oluşturursa, hedef şemada USE SCHEMA ve ayrıcalıklarına sahip olursunuz.
  • Eğer işlem hattınız CREATE TABLE oluşturuyorsa, hedef şemada USE SCHEMA ve ayrıcalıklarına sahip olun.

İşlem hattınız yeni şemalar oluşturuyorsa, hedef katalogda USE CATALOG ve CREATE SCHEMA ayrıcalıklarına sahip olmanız gerekir.

Unity Kataloğu özellikli işlem hattını çalıştırmak için gereken işlem:

Unity Kataloğu kullanılarak Lakeflow Bildirimli İş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ırlamalar

Unity Kataloğu'nu Lakeflow Bildirimli İşlem Hatları ile kullanırken sınırlamalar şunlardır:

  • 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 devralmaya yükseltme.
  • JAR'ler desteklenmez. Yalnızca üçüncü taraf Python kitaplıkları desteklenir. Bkz. Lakeflow Bildirimli İş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.

Not

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ştirilmiş görünüm şemasına dahil olmayan yukarı akış tablolarından verilerin açığa çıkarma riski taşıyabileceğinden, Databricks, alttaki depolamanın güvenilmeyen aşağı akış tüketicilerle paylaşılmamasını önerir.

Ö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, temel dosyalar field_a'in gerçek değerlerinden oluşan bir liste 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 Lakeflow Bildirimli İşlem Hatları işlevleri desteklenir. Hem Python hem de SQL arabirimleri Unity Kataloğu kullanan işlem hatlarıyla desteklenir.

Mevcut işlevlerde yapılan değişiklikler

Lakeflow Bildirimli İşlem Hatları 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. Sonuç olarak:

  • Bir tablo işlem hattı tanımından kaldırıldığında, sonraki işlem hattı güncelleştirmesi, karşılık gelen materyalize edilmiş görünümü veya akış tablosu girişini etkin değil olarak işaretler. Etkin olmayan tablolar yine sorgulanabilir ancak güncelleştirilmez. Gerçekleştirilmiş görünümleri veya akış tablolarını temizlemek için tabloyu açıkça DROP kullanarak işlemi gerçekleştirebilirsiniz.
    • UNDROP komutunu kullanarak bı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 silinmesi, bu işlem hattında tanımlanan tüm tabloların silinmesine neden olur. Bu değişiklik nedeniyle Lakeflow Bildirimli İşlem Hatları kullanıcı arabirimi, işlem hattının silinmesini onaylamanızı isteyecek şekilde güncelleştirilir.
  • AUTO CDC ... INTOdesteklemek için kullanılanlar da dahil olmak üzere iç yedekleme tablolarına kullanıcılar tarafından doğrudan erişilemez.

Lakeflow Bildirimli İşlem Hatları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

@dlt.table
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

@dlt.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

@dlt.table
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

@dlt.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

Lakeflow Deklaratif Boru Hatlarındaki tabloların 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.

Not

  • 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. skipChangeCommits ayarlandığı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

Önemli

Bu özellik Genel Önizleme aşamasındadır.

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 maskeleriyle tabloları tanımlama hakkında ayrıntılı söz dizimi için bkz. Lakeflow Bildirimli İşlem Hatları SQL dil başvurusu ve Lakeflow Bildirimli İşlem Hatları Python dil başvurusu.

Davranış

Lakeflow Bildirimli İşlem Hatlarında satır filtrelerini veya sütun maskelerini kullanırken aşağıdaki önemli ayrıntılar aşağıdadı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_USER ve IS_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.

Gözlemlenebilirlik

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.