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

, , v2CheckpointcolumnMappingve 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