Aracılığıyla paylaş


Unity Kataloğu'nu DLT işlem hatlarınızla kullanma

Önemli

Unity Kataloğu için DLT desteği, Genel Önizlemeaşamasında.

Databricks, Unity Kataloğu ile DLT iş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 GRANT ve REVOKEkullanın.

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:

İş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:

  • Standart erişim modu (eski adıyla paylaşılan erişim modu). Unity Kataloğu özellikli bir işlem hattı özel hesaplama biriminde (eski adıyla tek kullanıcı hesaplama birimi) çalıştırılamaz. Bkz. Unity Kataloğu Standart erişim modu sınırlamaları.

Unity Kataloğu kullanılarak DLT işlem hattı 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ış işlem (eski adıyla tek kullanıcılı işlem) üzerinde ayrıntılı 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 DLT 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 devralmanın yükseltilmesi.
  • JAR'ler desteklenmez. Yalnızca üçüncü taraf Python kitaplıkları desteklenir. bkz. DLT iş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.
  • DLT işlem hattında oluşturulan gerçekleştirilmiş görünüm, bu işlem hattının dışında, örneğin başka bir işlem hattında veya aşağı yönde bir not defterinde, 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ş sekmesi malzemeleş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.
  • Delta Sharing, Unity Kataloğu'na yayımlanan DLT tarafından oluşturulan malzeme görünümü veya akış tablosuyla kullanılamaz.

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ı taşımak için yeni bir işlem hattı oluşturmanız ve verileri veri kaynaklarından yeniden almalısınız. 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 belirtilmediği sürece, Unity Kataloğu'nu kullanan işlem hatlarında tüm mevcut veri kaynakları ve DLT 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

DLT verileri Unity Kataloğu'na kalıcı hale getirmek üzere yapılandırıldığında, DLT 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.
  • DLT işlem hattının silinmesi, bu işlem hattında tanımlanan tüm tabloların silinmesine neden olur. Bu değişiklik nedeniyle DLT kullanıcı arabirimi, işlem hattının silinmesini onaylamanızı isteyecek şekilde güncelleştirilir.
  • APPLY CHANGES INTOdesteklemek için kullanılanlar da dahil olmak üzere iç yedekleme tablolarına kullanıcılar tarafından doğrudan erişilemez.

DLT iş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. bir işlem hattı oluşturduğunuzda, Depolama seçeneklerialtında Unity Kataloğu seçin, Kataloğu açılan menüsünde 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 nedir?. Unity Kataloğu'ndaki şemalar hakkında bilgi edinmek için bkz. Azure Databricks'te şemalar nedir?.

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 alma

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 meta veri deposundan 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ökenini görüntüleme

DLT işlem hattındaki tabloların kökeni Katalog Gezgini'nde görünür. Katalog Gezgini köken kullanıcı arabirimi, Unity Kataloğu özellikli bir işlem hattında gerçekleştirilmiş 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 Unity Kataloğu'nu kullanarak veri kökenini yakalama ve görüntülemebölümüne bakın.

Unity Kataloğu etkinleştirilmiş DLT işlem hattında gerçekleştirilmiş görünüm veya akış tablosu için Katalog Gezgini köken kullanıcı arabirimi, işlem hattına geçerli çalışma alanından erişilebiliyorsa gerçekleştirilmiş görünümü veya akış tablosunu oluşturan işlem 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 gibi 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 ekleme veri kaynakları gerektirdiğinden, işlemeniz bir kaynaktan, değişiklik içeren bir akış tablosundan akış gerektiriyorsa (örneğin, DML deyimleri aracılığıyla), kaynak akış tablosunu okurken skipChangeCommits bayrağını olarak 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 Önizlemesürümündedir.

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, tablo taraması sırasında satırlar getirildiğinde sütun değerlerini maskelemeye olanak tanır. 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 filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme.

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 tablo tanımlama hakkında ayrıntılı söz dizimi için bkz. DLT SQL dil başvurusu ve DLT Python dil başvurusu.

Davranış

DLT işlem hatlarında satır filtrelerini veya sütun maskelerini kullanırken önemli ayrıntılar şunlardır:

  • Sahip olarak yenile: Bir işlem hattı güncellemesi materyalize edilmiş bir görüşü veya akış tablosunu yenilediğinde, satır filtresi ve sütun maskesi işlevleri, işlem hattı sahibinin haklarıyla birlikte ç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ı denetleen işlevler (CURRENT_USER ve IS_MEMBERgibi) işlem hattı sahibinin kullanıcı bağlamı kullanılarak değerlendirilir.
  • Sorgu: Gerçekleştirilmiş bir görünüm veya akış tablosu sorgulandığında, kullanıcı bağlamını denetleen işlevler (CURRENT_USER ve IS_MEMBERgibi) ç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 işlem, kaynak tablolardaki güvenlik ilkelerinin en up-totarih verileri ve tanımlarıyla değerlendirilip uygulandığını denetler.

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.