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 üzerinde derleyen 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, bir tabloda Delta Lake özelliklerinin etkinleştirilmesini gerektirir. Delta Lake özellikleri her zaman geriye dönük 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. Uyumluluğu ileriye götüren özellikler için, uyumlu bir Databricks Runtime sürümünü kullanmak üzere yükseltilmiş tablolara başvuran tüm iş yüklerini güncellemeniz gerekir.
Not
, , v2Checkpoint
columnMapping
ve typeWidening-preview
değerlerini Azure Databricks'e bırakabilirsinizdeletionVectors
. Bkz . Delta tablosu özelliklerini bırakma.
Ö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 temelinde etkinleştirilir. Bu tabloda Azure Databricks tarafından hala desteklenen en düşük Databricks Runtime sürümü listelenmektedir.
Özellik | Databricks Runtime veya sonraki bir sürümünü gerektirir | Belgeler |
---|---|---|
CHECK Kısıtlama -ları |
Databricks Runtime 9.1 LTS | Azure Databricks'te 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şleme | Databricks Runtime 10.4 LTS | Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma |
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ü |
Tekdüze | Databricks Runtime 13.3 LTS | Delta tablolarını Iceberg istemcileriyle okumak için UniForm kullanma |
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 |
Bkz . Databricks Runtime sürüm notları sürümleri ve uyumluluğu.
Not
Delta Live Tables ve Databricks SQL, yeni özellikleri desteklemek için çalışma zamanı ortamlarını düzenli sürümlerle otomatik olarak yükseltmektedir. Bkz . Delta Live Tables sürüm notları ve sürüm yükseltme işlemi ile Databricks SQL sürüm notları.
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 alınamaz ve protokol sürümünü yükseltmek mevcut Delta Lake tablo okuyucularını, yazarlarını veya her ikisini birden bozabilir. 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 düşürmeleri kullanılabilir. Bkz . Delta tablosu özelliklerini bırakma.
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. 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, kısıtlamalar için CHECK
destek bir yazma protokolü özelliğidir: yalnızca yazma uygulamalarının kısıtlamalar hakkında CHECK
bilgi sahibi olması ve bunları zorunlu kılması 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.
En düşük 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, ve minWriterVersion
tablo özelliklerinin değiştirilmesini minReaderVersion
önerir. 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 ardıllarıdır ve Delta Lake okuyan ve yazan istemciler için geliştirilmiş esneklik hedefiyle 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'da zaten desteklenen özelliklere yöneliktir. 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. Açıklama ayrıntılarıyla Delta Lake tablo ayrıntılarını gözden geçirme bölümüne 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 gerektiren minReaderVersion
= 1
özelliklere sahip tabloların okunmasını destekler.
Özellik | minWriterVersion |
minReaderVersion |
Belge |
---|---|---|---|
Temel işlevsellik | 2 | 1 | Delta Lake nedir? |
CHECK Kısıtlama -ları |
3 | 1 | Azure Databricks'te 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 tarafından oluşturulan sütunlar |
Sütun eşleme | 5 | 2 | Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma |
Kimlik sütunları | 6 | 2 | Delta Lake'te kimlik sütunlarını kullanma |
Tablo özellikleri okundu | 7 | 1 | Tablo özellikleri nelerdir? |
Tablo özellikleri 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 |
Tekdüze | 7 | 2 | Delta tablolarını Iceberg istemcileriyle okumak için UniForm kullanma |
Tür genişletme | 7 | 3 | Tür genişletme |
Varyant | 7 | 3 | Delta Lake'te varyant desteği |