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.
Important
Unity Kataloğu tarafından yönetilen Iceberg tabloları, Databricks Runtime 16.4 LTS ve üzeri sürümlerin Genel Önizleme sürümünde kullanılabilir. Yabancı Buzdağı tabloları da Databricks Runtime 16.4 LTS ve üzerinde Genel Önizleme aşamasındadır.
Iceberg v3 özellikleri Databricks Runtime 18.0 ve sonraki sürümlerin Genel Önizleme sürümünde kullanılabilir. Bkz. Apache Iceberg v3 özelliklerini kullanma.
Apache Iceberg , analiz iş yükleri için açık kaynak bir tablo biçimidir. Şema evrimi, zaman yolculuğu ve gizli bölümleme gibi özellikleri destekler. Delta Lake gibi Iceberg de nesne depolamada depolanan veriler üzerinde ACID işlemlerini etkinleştiren bir soyutlama katmanı sağlar. Azure Databricks, Apache Parquet dosya biçimini kullanan Iceberg tablolarını destekler. Iceberg, her tablo değişikliği için yeni meta veri dosyaları yazarak bölünmezliği ve tutarlılığı korur.
Iceberg kataloğu, Iceberg tablo mimarisinin en üst düzey katmanıdır. Tabloları oluşturma, bırakma ve yeniden adlandırma gibi işlemleri işler. Asıl sorumluluğu, bir tablo yüklendiğinde geçerli meta verileri sağlamaktır. Azure Databricks tarafından yönetilen Iceberg tabloları desteklemektedir:
- Unity Kataloğu
- AWS Glue, Hive meta veri deposu veya Snowflake Horizon Kataloğu gibi yabancı kataloglar
Azure Databricks içindeki tüm Iceberg tabloları açık Iceberg tablo biçimi belirtimini izler. Bkz. Iceberg tablosu belirtimi.
Unity Kataloğu'nda Buzdağı tabloları oluşturma
Unity Kataloğu'nda oluşturulan buzdağı tabloları yönetilen Iceberg tablolarıdır. Şu tabloları kullanarak oluşturabilirsiniz:
- Databricks Runtime veya Databricks SQL
- Apache Spark, Flink, Trino veya Kafka gibi Iceberg REST Katalog API'sini destekleyen dış Iceberg uyumlu altyapılar. Bkz. Apache Iceberg istemcilerinden Access Azure Databricks tabloları.
Yönetilen Iceberg tabloları, Azure Databricks platform özellikleriyle tamamen tümleşiktir. Unity Kataloğu, bu tablolarda anlık görüntü süre sonu ve dosya sıkıştırma gibi yaşam döngüsü görevlerini yönetir. Yönetilen Iceberg tabloları, sorgu performansını geliştiren sıvı kümelemeyi de destekler. Tahmine dayalı iyileştirme , depolama maliyetlerini azaltmak ve sorgu hızını artırmak için bu görevleri otomatikleştirir. Databricks, Unity Kataloğu'nu okumak ve yazmak için Iceberg istemcilerinin 1.9.2 ve üzerini kullanmanızı önerir.
Diğer kataloglar tarafından yönetilen Iceberg tablolarını okuma
Yabancı Iceberg tablosu, Unity Kataloğu dışındaki bir katalog tarafından yönetilen bir Iceberg tablosudur. Dış katalog tablonun geçerli meta verilerini depolar. Azure Databricks meta verileri almak ve tabloyu nesne depolamadan okumak için Lakehouse Federation kullanır.
Yabancı Buzdağı tabloları Azure Databricks salt okunur ve sınırlı platform desteğine sahiptir.
Dış sistemleri kullanarak Iceberg tablolarına erişme
Unity Kataloğu'ndaki tüm Iceberg tablolarına Iceberg REST Kataloğu API'sini kullanarak erişebilirsiniz. Bu açık API, farklı diller ve platformlarda dış Iceberg altyapılarından okuma ve yazma işlemlerini destekler. Bkz. Apache Iceberg istemcilerinden Access Azure Databricks tabloları.
REST Kataloğu, temel depolamaya erişim sağlamak için dış motorlara geçici kimlik bilgileri sunan kimlik bilgisi sağlama hizmetini destekler. Daha fazla bilgi için bkz. Dış sistem erişimi için Unity Kataloğu kimlik bilgileri sağlanması.
Uyarı
Kimlik bilgisi otomatları, varsayılan depolamayı kullanan çalışma alanlarında desteklenmez. Bkz. Sınırlamalar.
Bölüm evrimi
Bölüm evrimi ile, verileri yeniden yazmadan mevcut bir Apache Iceberg tablosunun bölümleme düzenini değiştirebilirsiniz. Yeni veriler güncelleştirilmiş bölüm düzeniyle yazılır ve mevcut veriler özgün bölüm düzenini korur. Apache Iceberg bölüm belirtimlerini izler ve sorgu zamanında doğru filtreyi uygular. Bkz. Apache Iceberg için bölüm evrimi.
Uyarı
Bölüm evrimi, Databricks SQL aracılığıyla değil, Iceberg REST Kataloğu kullanılarak dış Iceberg altyapıları aracılığıyla yönetilen Iceberg tablolarında desteklenir. gibi years()bucket() ifade tabanlı bölüm dönüşümleri yönetilen Iceberg tablolarında desteklenmez. Bkz. Iceberg tablo sınırlamaları.
Dış erişimi yapılandırmak için bkz. Apache Iceberg istemcilerinden Access Azure Databricks tabloları.
Aşağıdaki örneklerde Spark SQL ve Iceberg uzantısı ile bölüm evriminin nasıl kullanılacağı gösterilmektedir. Apache Iceberg bölüm evrimi söz dizimi ve desteklenen dönüşümler için bkz. Apache Iceberg Spark DDL.
Bölüm alanı ekle
Var olan bir tabloya yeni bölüm alanı eklemek için:
ALTER TABLE catalog.schema.table ADD PARTITION FIELD column_name;
Bir bölüm alanını sil
Tablodan var olan bir bölüm alanını kaldırmak için:
ALTER TABLE catalog.schema.table DROP PARTITION FIELD column_name;
Bölüm alanını değiştirme
Ara yeniden bölümleme olmadan bir bölüm alanını başka bir bölüm alanıyla değiştirmek için:
ALTER TABLE catalog.schema.table REPLACE PARTITION FIELD old_column WITH new_column;
Buzdağı tablo sınırlamaları
Azure Databricks'daki Iceberg tabloları için aşağıdaki sınırlamalar geçerlidir ve değiştirilebilir:
- Iceberg tabloları yalnızca Apache Parquet dosya biçimini destekler.
- Azure Databricks Iceberg belirtiminin 1, 2 ve 3 sürümlerini destekler.
- v3'e özgü sınırlamalar için bkz. Sınırlamalar.
- Iceberg v2 konum silmeleri ve eşitlik tabanlı silmeler desteklenmez. Bunun yerine Azure Databricks, satır düzeyi silme işlemleri için Iceberg v3 silme vektörlerini destekler.
- Dallanma ve etiketleme desteklenmez. Yabancı Iceberg tablolarını okurken yalnızca ana dala erişilebilir.
- Bölümleme:
- Yalnızca dış Iceberg motorlarından etkileşim kurulduğunda, yönetilen Iceberg tablolarında bölüm evrimi desteklenir.
- Yabancı Iceberg tabloları bölümlendirme evrimini desteklemez.
- Türe göre
BINARYbölümleme desteklenmez.
- Görünümler desteklenmez.
- Aşağıdaki veri türleri desteklenmez:
UUIDFixed(L)TIME- Gerekli alanlar ile iç içe geçmiş
STRUCT
Yönetilen Iceberg tablolarının sınırlamaları
Aşağıdaki sınırlamalar özellikle yönetilen Iceberg tabloları için geçerlidir:
- Vektör araması desteklenmez.
- Iceberg değişiklik veri yayını desteklemez. Sonuç olarak, yönetilen Iceberg tabloları aşağıdakiler için kaynak olarak okunurken artımlı işleme desteklenmez:
- Gerçekleştirilmiş görünümler ve akış tabloları
- Veri profili oluşturma
- Çevrimiçi tablolar
- Lakebase
- Veri sınıflandırma
- Yönetilen Iceberg tabloları yalnızca tablo bakımı için tahmine dayalı iyileştirme etkinleştirildiğinde oluşturulabilir.
- Aşağıdaki tablo özellikleri Unity Kataloğu tarafından yönetilir ve el ile ayarlanamaz:
write.location-provider.implwrite.data.pathwrite.metadata.pathwrite.format.defaultwrite.delete.format.default
- Tablo sıkıştırmasını değiştirmek için sıkıştırma codec'i desteklenmez. Tüm tablolar varsayılan olarak Zstd kullanır.
- İfadelere göre bölümleme (örneğin,
years(),months()days(), ,hours()),bucket()desteklenmez. - Apache Iceberg'de desteklenmeyen özellikler yönetilen Iceberg tablolarında da kullanılamaz. Buna Delta Lake tarafından oluşturulan kolonlar, Azure Databricks üzerindeki kısıtlamalar ve Delta Lake için sıralama desteği dahildir.
Yurtdışı Buzdağı tablo sınırlamaları
Aşağıdaki sınırlamalar özellikle yabancı Iceberg tabloları için geçerlidir:
- Zaman yolculuğu yalnızca daha önce Azure Databricks'te okunan Iceberg anlık görüntüleri (yani
SELECTdeyiminin yürütüldüğü anlık görüntüler) için desteklenir. - Iceberg bölümleme için demet dönüştürme işlevlerinin kullanılması, koşullu filtreler kullanıldığında sorgu performansını düşürebilir.
- Bulut depolama katmanlama ürünleri, Amazon S3 gibi, yabancı Iceberg tablolarıyla entegre edilmemiştir. Azure Databricks'de yabancı Iceberg tablolarına erişmek, daha düşük maliyetli depolama katmanlarında arşivlenen verileri geri yükleyebilir.
- Özel erişim modu kümelerinde, Iceberg tablolarındaki okumalar ve
REFRESH FOREIGN TABLEişlemleriALL PRIVILEGESgerektirir.