Azure Databricks'te Delta Lake ve Apache Iceberg için Unity Catalog tarafından yönetilen tablolar

Bu sayfada, Azure Databricks'te varsayılan ve önerilen tablo türü olan Delta Lake ve Apache Iceberg'deki Unity Kataloğu yönetilen tabloları açıklanmaktadır. Yönetilen tablolar okuma ve yazma desenlerinizden ders çıkardığından, bu tablolar Unity Kataloğu tarafından tamamen yönetilir ve iyileştirilir. Bu tablolar, dış ve yabancı tablolara kıyasla performans, operasyonel avantajlar ve daha düşük depolama ve işlem maliyetleri sunar. Unity Kataloğu yönetilen tablolar için tüm okuma, yazma, depolama ve iyileştirme sorumluluklarını yönetir. Bkz. Harici bir Delta tablosunu yönetilen bir Unity Catalog tablosuna dönüştürme.

Yönetilen tablolar için veri dosyaları, bunları içeren şemada veya katalogda depolanır. Unity Kataloğu'nda yönetilen bir depolama konumu belirtme hakkında bilgi için bkz. ....

Databricks, aşağıdakilerden yararlanmak için yönetilen tabloların kullanılmasını önerir:

  • Daha düşük depolama ve işlem maliyetleri.
  • Tüm istemci türlerinde daha hızlı sorgu performansı.
  • Otomatik tablo bakımı ve iyileştirme.
  • Açık API'ler aracılığıyla Databricks olmayan istemciler için güvenli erişim.
  • Delta Lake ve Iceberg biçimleri için destek.
  • En son platform özelliklerine otomatik yükseltmeler.

Yönetilen tablolar Delta Lake ve Iceberg istemcilerinden erişime izin vererek birlikte çalışabilirliği destekler. Unity Catalog, açık API'ler ve kimlik bilgisi sağlama yoluyla Trino, DuckDB, Apache Spark, Daft gibi dış altyapıların ve Iceberg REST gibi Dremio gibi katalogla entegre motorların yönetilen tablolara erişmesini sağlar. Açık API'leri desteklemeyen dış istemciler için Uyumluluk Modu'nu kullanarak herhangi bir Delta Lake veya Iceberg istemcisini kullanarak yönetilen tabloları okuyabilirsiniz. Açık kaynak bir protokol olan Delta Sharing, dış iş ortakları ve platformlarla güvenli, yönetilen veri paylaşımı sağlar.

Azure Databricks'te desteklenen tüm dillerde ve ürünlerde yönetilen tablolarla çalışabilirsiniz. Yönetilen tabloları oluşturmak, güncelleştirmek, silmek veya sorgulamak için belirli ayrıcalıklara sahip olmanız gerekir. Bkz. Unity Kataloğu'nda ayrıcalıkları yönetme.

Note

Bu sayfada yalnızca Unity Kataloğu yönetilen tabloları açıklanmaktadır. Eski Hive meta veri deposundaki yönetilen tablolar için bkz. Eski Hive meta veri deposundaki veritabanı nesneleri.

Unity Kataloğu yönetilen tablolarını neden kullanmalısınız?

Unity Kataloğu yönetilen tabloları depolama maliyetlerini ve sorgu hızlarını iyileştirir ve Delta Lake ve Apache Iceberg için üçüncü taraf araçlarla birlikte çalışabilirlik sağlar. Bu yönetilen tablolar, veri yönetimini ve performansı basitleştirmek için dosya boyutu sıkıştırma ve akıllı istatistik toplama gibi yapay zeka destekli teknolojileri kullanır.

Aşağıdaki özellikler Unity Kataloğu yönetilen tablolarında benzersizdir ve dış tablolar ile yabancı tablolar için kullanılamaz:

Feature Benefits Varsayılan olarak etkinleştirilsin mi? Yapılandırılabilir?
Katalog taahhütleri Tablolar arasında çok deyimli işlemlere , meta verileri doğrudan Unity Kataloğu'ndan sunarak daha hızlı sorgu planlamasına, zorunlu kılınabilir şema ve kısıtlama değişikliklerine ve dış altyapılardan güvenli yazma işlemlerine olanak tanır. Hayır. Evet.
delta.feature.catalogManaged tablo özelliğini ayarlayın. Bkz. Katalog işlemelerini etkinleştirme.
Tahmine dayalı iyileştirme Öngörücü optimizasyon, yapay zeka kullanarak veri düzeninizi ve işlem kaynaklarınızı, manuel bakım işlemleri gerektirmeden otomatik olarak optimize eder. Databricks, depolama ve işlem maliyetlerini azaltmak için tüm yönetilen tablolar için tahmine dayalı iyileştirmenin etkinleştirilmesini önerir.
Tahmine dayalı iyileştirme otomatik olarak çalışır:
Evet, 11 Kasım 2024 tarihinde veya sonrasında oluşturulan tüm yeni hesaplar için.
Geçerli hesaplar için Azure Databricks varsayılan olarak tahmine dayalı iyileştirmeyi aşamalı olarak etkinleştirir. Bkz. Tahmine dayalı iyileştirmenin etkinleştirilip etkinleştirilmediğini doğrulama.
Evet. Bkz . Tahmine dayalı iyileştirmeyi etkinleştirme.
Çok deyimli işlemler ACID garantileri ile bir veya daha fazla tabloda birden çok SQL deyimini tek bir atomik işleme olarak çalıştırmanıza olanak tanır. Değişikliklerin tümü ya birlikte başarılı olur ya da birlikte geri alınır. Kritik öneme sahip veri ambarı iş yüklerinde saklı yordamlar ve SQL betikleri için kullanın.
Yönetilen Delta Lake tablolarına yazan işlemler Genel Önizleme aşamasındadır.
Yönetilen Apache Iceberg tablolarına yazan işlemler Özel Önizleme aşamasındadır.
Hayır. Evet. Etkileşimli olmayan işlemler için BEGIN ATOMIC ... END; veya etkileşimli işlemler için BEGIN TRANSACTION; ... COMMIT; kullanın. Bkz. İşlem modları.
Otomatik sıvı kümeleme prediktive optimization içeren tablolarda otomatik sıvı kümeleme, Azure Databricks kümeleme anahtarlarını akıllı bir şekilde seçmesine olanak tanır. Sorgu desenleri değiştikçe Azure Databricks, performansı artırmak ve maliyetleri düşürmek için kümeleme anahtarlarını otomatik olarak güncelleştirir. Hayır. Evet. Bkz . Sıvı kümelemasını etkinleştirme.
Meta veri önbelleğe alma İşlem meta verilerinin bellek içi önbelleğe alınmasını, bulutta depolanan işlem günlüğüne yönelik istekleri en aza indirerek sorgu performansını artırır. Evet. Hayır. Meta verileri önbelleğe alma, yönetilen tablolar için her zaman etkindir.
Tam metin arama dizinleri Tam metin arama dizinleri, yönetilen tabloların metin sütunlarında alt dize ve anahtar sözcük aramalarını hızlandırır. Bir dizin uygulandığında Azure Databricks, eşleşen satırlar içeremeyecek dosyaları atlayarak taranan veri miktarını azaltır.
Tam metin arama dizinleri, search ve isearch işlevlerini kullanarak alt dize ve sözcük aramalarını hızlandırır.
Tam metin arama dizinleri Beta sürümündedir ve Databricks Runtime 18.2 ve üzerini gerektirir.
Hayır. Evet. CREATE INDEX (ikincil) veya CREATE SEARCH INDEX (tam metin) ile oluşturun.
Komut sonrasında DROP TABLE otomatik dosya silme Bir yönetilen tabloyu DROP ederseniz, Azure Databricks depolama maliyetlerinizi azaltmak için bulut depolama alanındaki verileri 8 gün sonra siler. Dış tablolar için dosyaları depolama demetinden el ile silmeniz gerekir. Evet. Hayır. Yönetilen tablolar için dosyalar her zaman 8 gün sonra otomatik olarak silinir.

Dış sistemleri kullanarak Databricks verilerine erişme

Yönetilen tablolar Delta Lake ve Iceberg istemcilerinden erişime izin vererek birlikte çalışabilirliği destekler. Unity Catalog, açık API'ler ve kimlik bilgisi dağıtımı aracılığıyla Trino, DuckDB, Apache Spark, Daft ve Iceberg REST gibi dış altyapılar ile Dremio ve Snowflake gibi REST katalogla bütünleşik motorların yönetilen tablolara erişmesini sağlar. Desteklenen harici motorların listesi için tümleştirmelere bakın veya bu listede yer almıyorsa motorunuzun belgelerine göz atın.

Aşağıdaki açık API'ler, dış sistemlere Unity Kataloğu yönetilen tablolarına erişim sağlar:

  • Unity REST API: Delta istemcileri için yönetilen Delta tablolarına okuma, yazma ve oluşturma erişimi sağlar.
  • Iceberg REST Kataloğu (IRC): Iceberg istemcileri için yönetilen Iceberg tablolarına okuma, yazma ve oluşturma erişimi sağlar ve Iceberg okumaları etkin (UniForm) ile Delta tablolarına salt okunur erişim sağlar.

Her iki API de, idare ve güvenlik denetimlerini koruyarak, istekte bulunan Azure Databricks sorumlusunun ayrıcalıklarını devralan, geçici ve kapsamlı kimlik bilgileri sağlayan kimlik bilgisi dağıtımını destekler.

Ayrıca Delta Sharing , dış iş ortaklarına ve platformlara güvenli ve yönetilen veri erişimi sağlayan açık kaynak bir protokoldür. Delta Sharing'i kullanarak iş ortaklarına geçici, salt okunur erişim vekleyebilirsiniz.

Yönetilen tablolara yapılan tüm okuma ve yazma işlemleri, var oldukları yerde tablo adlarını, katalog ve şema adlarını kullanmalıdır. Örneğin, catalog_name.schema_name.table_name. Unity Kataloğu erişim denetimlerini atladığı ve yönetilen tablo özelliklerinin düzgün çalışmasını önlediği için Unity Kataloğu yönetilen tablolarına yol tabanlı erişim desteklenmez ( Uyumluluk Modu dışında).

Yönetilen tablo oluşturma

Yönetilen tablo oluşturmak için aşağıdakilere sahip olmanız gerekir:

  • USE SCHEMA tablonun üst şemasında.
  • Tablo'nun üst katalogunda USE CATALOG.
  • CREATE TABLE tablonun üst şemasında.

SQL kullanarak boş bir yönetilen tablo oluşturmak için aşağıdaki SQL söz dizimini kullanın. Yer tutucu değerlerini değiştirin:

  • <catalog-name>: Tabloyu içerecek kataloğun adı.
  • <schema-name>: Tabloyu içeren şemanın adı.
  • <table-name>: Tablonun adı.
  • <column-specification>: Her sütunun adı ve veri türü.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
);

-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
)
USING iceberg;

Okuma ve yazma işlemlerinin performansını korumak için Azure Databricks, yönetilen Iceberg tablosu meta verilerini iyileştirmek için düzenli aralıklarla işlemler çalıştırır. Bu görev, Iceberg tablosunda izinleri olan MODIFY sunucusuz işlem kullanılarak gerçekleştirilir. Bu işlem yalnızca tablonun meta verilerine yazar ve hesaplama, yalnızca görev süresi boyunca tabloya yönelik izinleri korur.

Note

Bir Iceberg tablosu oluşturmak için açıkça belirtin USING iceberg. Aksi takdirde Azure Databricks varsayılan olarak bir Delta Lake tablosu oluşturur.

Sorgu sonuçlarından veya DataFrame yazma işlemlerinden yönetilen tablolar oluşturabilirsiniz. Aşağıdaki makalelerde, Azure Databricks'te yönetilen tablo oluşturmak için kullanabileceğiniz birçok desenden bazıları gösterilmektedir:

Yönetilen tabloyu bırak.

Yönetilen bir tabloyu silmek için aşağıdakilere sahip olmanız gerekir:

  • MANAGE veya tablo sahibi olmanız gerekir.
  • USE SCHEMA tablonun üst şemasında.
  • Tablo'nun üst katalogunda USE CATALOG.

Yönetilen tabloyu bırakmak için aşağıdaki SQL komutunu çalıştırın:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

Unity Kataloğu, 8 gün boyunca bırakılan yönetilen tabloları kurtarmak için UNDROP TABLE komutunu destekler. 8 gün sonra Azure Databricks, temel alınan verileri bulut kiracınızdan silinmek üzere işaretler ve otomatik tablo bakımı sırasında dosyaları kaldırır. Bkz. UNDROP.