Azure Databricks Delta Lake özellik uyumluluğunu nasıl yönetir?
Delta Lake, Linux Foundation idaresi altında bağımsız bir açık kaynak projesidir. Databricks, Databricks Runtime sürümlerinde Delta Lake'i temel alarak geliştirilen yeni Delta Lake özellikleri ve iyileştirmeleri için destek sunar.
Delta Lake özelliklerinden yararlanan Azure Databricks iyileştirmeleri, uyumluluk için OSS Delta Lake'te kullanılan protokollere uygundur.
Birçok Azure Databricks iyileştirmesi için bir tabloda Delta Lake özelliklerinin etkinleştirilmesi gerekir. Delta Lake özellikleri her zaman geriye dönük olarak uyumludur, bu nedenle daha düşük bir Databricks Runtime sürümü tarafından yazılan tablolar her zaman daha yüksek bir Databricks Runtime sürümü tarafından okunabilir ve yazılabilir. Bazı özelliklerin etkinleştirilmesi, daha düşük bir Databricks Runtime sürümünde çalışan iş yükleriyle uyumluluğu bozar. İleriye dönük uyumluluğu bozan özellikler için, uyumlu bir Databricks Runtime sürümünü kullanmak için yükseltilen tablolara başvuran tüm iş yüklerini güncelleştirmeniz gerekir.
Not
Azure Databricks'te deletionVectors
, v2Checkpoint
, columnMapping
, typeWidening-preview
ve collations-preview
bırakabilirsiniz.
Delta tablosu özelliklerini kaldırma.
Önemli
Tüm protokol değiştirme işlemleri tüm eşzamanlı yazma işlemleriyle çakışıyor.
Akış okumaları, tablo meta verilerini değiştiren bir işlemeyle karşılaştıklarında başarısız olur. Akışın devam etmesi için akışı yeniden başlatmanız gerekir. Önerilen yöntemler için bkz Yapılandırılmış Akış için Üretimde Dikkat Edilmesi Gerekenler.
Hangi Delta Lake özellikleri Databricks Runtime yükseltmeleri gerektirir?
Aşağıdaki Delta Lake özellikleri, ileriye dönük uyumluluğu bozar. Özellikler tablo bazında etkinleştirilir. Bu tabloda Azure Databricks tarafından hala desteklenen en düşük Databricks Runtime sürümü listelenmektedir.
Özellik | Databricks Runtime sürümünü veya daha yenisini gerektirir. | Belgeler |
---|---|---|
CHECK Kısıtlar |
Databricks Runtime 9.1 LTS |
Azure Databricks'da CHECK kısıtlaması ayarlama |
Veri akışını değiştirme | Databricks Runtime 9.1 LTS | Azure Databricks'te Delta Lake değişiklik veri akışını kullanma |
Oluşturulan sütunlar | Databricks Runtime 9.1 LTS | Delta Lake tarafından oluşturulan sütunlar |
Sütun eşleştirme | Databricks Runtime 10.4 LTS | Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve silme |
Kimlik sütunları | Databricks Runtime 10.4 LTS | Delta Lake'te kimlik sütunlarını kullanma |
Tablo özellikleri | Databricks Runtime 12.2 LTS | Tablo özellikleri nelerdir? |
Silme vektörleri | Databricks Runtime 12.2 LTS | Silme vektörleri nedir? |
Zaman DamgasıNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ tür |
UniForm | Databricks Runtime 13.3 LTS | Iceberg istemcileriyle Delta tablolarını okuma |
Sıvı kümeleme | Databricks Runtime 13.3 LTS | Delta tabloları için sıvı kümeleme kullanma |
Satır izleme | Databricks Runtime 14.1 | Delta tabloları için satır izlemeyi kullanma |
Tür genişletme | Databricks Runtime 15.2 | Tür genişletme |
Varyant | Databricks Runtime 15.3 | Delta Lake'te varyant desteği |
Sıralamalar | Databricks Runtime 16.1 | Delta Lake için Sıralama desteği |
Bkz Databricks Runtime sürüm notları, sürümler ve uyumluluk.
Not
DLT ve Databricks SQL, yeni özellikleri desteklemek için çalışma zamanı ortamlarını düzenli sürümlerle otomatik olarak yükseltmektedir. bkz. DLT sürüm notları ve sürüm yükseltme işlemi ve Databricks SQL sürüm notlarını.
Tablo protokolü belirtimi nedir?
Her Delta tablosunun, tablonun desteklediği özellik kümesini gösteren bir protokol belirtimi vardır. Protokol belirtimi, tabloyu okuyan veya yazan uygulamalar tarafından tablonun desteklediği tüm özellikleri işleyebileceklerini belirlemek için kullanılır. Bir uygulama, tablonun protokolünde desteklenen olarak listelenen bir özelliğin nasıl işleneceğini bilmiyorsa, bu uygulama bu tabloyu okuyamaz veya yazamaz.
Protokol belirtimi iki bileşene ayrılır: okuma protokolü ve yazma protokolü.
Uyarı
Çoğu protokol sürüm yükseltmesi geri döndürülemez ve protokol sürümünü yükseltmek mevcut Delta Lake tablo okuyucularını, yazarlarını veya her ikisini birden etkileyebilir. Databricks, delta Lake'teki yeni özelliklere katılma gibi belirli tabloları yalnızca gerektiğinde yükseltmenizi önerir. Ayrıca tüm geçerli ve gelecekteki üretim araçlarınızın yeni protokol sürümüyle Delta Lake tablolarını desteklediğinden emin olmanız gerekir.
Bazı özellikler için protokol seviyelerini düşürme kullanılabilir. Bakınız: Delta tablosu özelliklerinin kaldırılması.
Protokolü okuma
Okuma protokolü, bir tablonun desteklediği ve bir uygulamanın tabloyu doğru okumak için anlaması gereken tüm özellikleri listeler. Tablonun okuma protokolünü yükseltmek için tüm okuyucu uygulamalarının eklenen özellikleri desteklemesi gerekir.
Önemli
Delta tablosuna yazan tüm uygulamaların tablonun anlık görüntüsünü oluşturabilmesi gerekir. Bu nedenle, Delta tablolarına yazan iş yüklerinin hem okuyucu hem de yazıcı protokol gereksinimlerine uyması gerekir.
Azure Databricks'te bir iş yükü tarafından desteklenmeyen bir protokolle karşılaşırsanız, bu protokolü destekleyen daha yüksek bir Databricks Runtime'a yükseltmeniz gerekir.
Yazma protokolü
Yazma protokolü, bir tablonun desteklediği ve bir uygulamanın tabloya doğru yazabilmek için anlaması gereken tüm özellikleri listeler. Tablonun yazma protokolünü yükseltmek için tüm yazıcı uygulamalarının eklenen özellikleri desteklemesi gerekir. Bu durum, okuma protokolü de yükseltilmediği sürece salt okunur uygulamaları etkilemez.
Hangi protokoller yükseltilmelidir?
Bazı özellikler hem okuma protokollerini hem de yazma protokollerini yükseltmeyi gerektirir. Diğer özellikler yalnızca yazma protokollerini yükseltmeyi gerektirir.
Örneğin, CHECK
kısıtlamaları için destek bir yazma protokolü özelliğidir: yalnızca yazma uygulamalarının CHECK
kısıtlamalar hakkında bilgi sahibi olması ve bunları uygulaması gerekir.
Buna karşılık, sütun eşlemesi hem okuma hem de yazma protokollerini yükseltmeyi gerektirir. Veriler tabloda farklı depolandığından, okuyucu uygulamalarının verileri doğru okuyabilmeleri için sütun eşlemesini anlaması gerekir.
Asgari okuyucu ve yazıcı sürümleri
Not
Sütun eşlemeyi etkinleştirirken tablo protokolü sürümünü açıkça yükseltmeniz gerekir.
Bir tabloda Delta özelliklerini etkinleştirdiğinizde, tablo protokolü otomatik olarak yükseltilir. Databricks, minReaderVersion
ve minWriterVersion
tablo özelliklerinin değiştirilmesini önermemektedir. Bu tablo özelliklerinin değiştirilmesi protokol yükseltmesini engellemez. Bu değerlerin daha düşük bir değere ayarlanması tabloyu düşürmez. Bkz. Delta tablosu özelliklerini bırakma.
Tablo özellikleri nelerdir?
Databricks Runtime 12.2 LTS ve üzeri sürümlerde Delta Lake tablosu özellikleri, belirli bir tablo tarafından hangi özelliklerin destekleneceğini belirten ayrıntılı bayraklar sunar. Databricks Runtime 11.3 LTS ve altında, Delta Lake özellikleri protokol sürümleri olarak adlandırılan paketlerde etkinleştirildi. Tablo özellikleri, protokol sürümlerinin yerini alan özelliklerdir ve Delta Lake'i okuyan ve yazan istemcilere daha fazla esneklik sağlamak amacıyla tasarlanmıştır. Bkz. Protokol sürümü nedir?.
Not
Tablo özelliklerinin protokol sürümü gereksinimleri vardır. Bkz. Protokol sürümüne göre özellikler.
Delta tablosu özelliği, tablonun belirli bir özelliği desteklediğini gösteren bir işaretçidir. Her özellik bir yazma protokolü özelliğidir (yani yalnızca yazma protokollerini yükselter) veya bir okuma/yazma protokolü özelliğidir (özelliği etkinleştirmek için hem okuma hem de yazma protokollerinin yükseltileceği anlamına gelir).
Delta Lake'te desteklenen tablo özellikleri hakkında daha fazla bilgi edinmek için bkz. Delta Lake protokolü.
Tablo özellikleri Delta Lake özelliklerinin etkinleştirilme şeklini değiştirir mi?
Delta tablolarıyla yalnızca Azure Databricks aracılığıyla etkileşimde bulunuyorsanız, en düşük Databricks Runtime gereksinimlerini kullanarak Delta Lake özellikleri desteğini izlemeye devam edebilirsiniz. Azure Databricks, tablo tarafından kullanılan tüm özellikler bu sürüm tarafından desteklendiği sürece tüm Databricks Runtime LTS sürümlerinde tablo özelliklerine yükseltilmiş Delta tablolarının okunmasını destekler.
Diğer sistemleri kullanarak Delta tablolarını okur ve yazarsanız, sistemin yükseltilen protokol sürümlerini anlamama riski olduğundan tablo özelliklerinin uyumluluğu nasıl etkilediğini düşünmeniz gerekebilir.
Önemli
Tablo özellikleri, yazar sürüm 7 ve okuyucu sürüm 3 için Delta Lake biçimine sunulmuştur. Azure Databricks, tablo özelliklerine yönelik destek eklemek için desteklenen tüm Databricks Runtime LTS sürümlerine kod geri aktarmıştır, ancak yalnızca bu Databricks Runtime'nde zaten desteklenen özellikler içindir. Bu, oluşturulan sütunları etkinleştirmek ve Databricks Runtime 9.1 LTS'de bu tablolarla çalışmaya devam etmek için tablo özelliklerini kullanmayı tercih edebilirsiniz ancak kimlik sütunları etkinleştirilmiş (Databricks Runtime 10.4 LTS gerektirir) tabloların bu Databricks Runtime'da hala desteklenmediği anlamına gelir.
Protokol sürümü nedir?
Protokol sürümü, tablo özelliklerinin belirli bir gruplandırma işlemini gösteren bir protokol numarasıdır. Databricks Runtime 11.3 LTS ve altında tablo özelliklerini tek tek etkinleştiremezsiniz. Protokol sürümleri bir özellik grubu paketler.
Delta tabloları, okuma protokolü ve yazma protokolü için ayrı bir protokol sürümü belirtir. Delta tablosunun işlem günlüğü, Delta Lake evrimini destekleyen protokol sürüm oluşturma bilgilerini içerir. Delta Lake tablo ayrıntılarını gözden geçirin bölümüneaçıklamalarıyla bakın.
Protokol sürümleri, önceki protokollerdeki tüm özellikleri paketler. Bkz. Protokol sürümüne göre özellikler.
Not
Yazar sürüm 7 ve okuyucu sürüm 3'den başlayarak Delta Lake, tablo özellikleri kavramını kullanıma sunulmuştur. Tablo özelliklerini kullanarak artık yalnızca veri ekosisteminizdeki diğer istemciler tarafından desteklenen özellikleri etkinleştirmeyi seçebilirsiniz. Bkz. Tablo özellikleri nelerdir?.
Protokol sürümüne göre özellikler
Aşağıdaki tabloda Delta Lake özellikleri için gereken en düşük protokol sürümleri gösterilmektedir.
Not
Yalnızca Databricks Runtime uyumluluğuyla ilgileniyorsanız bkz . Hangi Delta Lake özellikleri Databricks Runtime yükseltmeleri gerektirir?. Delta Sharing yalnızca minReaderVersion
= 1
gerektiren özelliklere sahip tabloların okunmasını destekler.
Özellik | minWriterVersion |
minReaderVersion |
Belgeler |
---|---|---|---|
Temel işlevsellik | 2 | 1 | Delta Lake nedir? |
CHECK Kısıtlamalar |
3 | 1 |
Azure Databricks'da CHECK kısıtlaması ayarlama |
Veri akışını değiştirme | 4 | 1 | Azure Databricks'te Delta Lake değişiklik veri akışını kullanma |
Oluşturulan sütunlar | 4 | 1 | Delta Lake oluşturulan sütunlar |
Sütun eşleştirme | 5 | 2 | Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve silme |
Kimlik sütunları | 6 | 2 | Delta Lake'te kimlik sütunlarını kullanma |
Tablo özelliklerini oku | 7 | 1 | Tablo özellikleri nelerdir? |
Tablo özelliklerini yazma | 7 | 3 | Tablo özellikleri nelerdir? |
Satır izleme | 7 | 1 | Delta tabloları için satır izlemeyi kullanma |
Silme vektörleri | 7 | 3 | Silme vektörleri nedir? |
Zaman DamgasıNTZ | 7 | 3 |
TIMESTAMP_NTZ tür |
Sıvı kümeleme | 7 | 3 | Delta tabloları için sıvı kümeleme kullanma |
UniForm | 7 | 2 | Iceberg istemcileriyle Delta tablolarını okuma |
Tür genişletme | 7 | 3 | Tür genişletme |
Varyant | 7 | 3 | Delta Lake'te varyant desteği |
Sıralamalar | 7 | 3 | Delta Lake için Harmanlama desteği |