Delta Lake özellik uyumluluğu ve protokolleri

Delta Lake tablo protokolleri, bir istemcinin tabloyu okumak veya yazmak için hangi özellikleri desteklemesi gerektiğini belirtir. Bu sayfa protokol sürümlerini, tablo özelliklerini, uyumluluk gereksinimlerini ve Azure Databricks protokol yükseltmelerini nasıl yönettiğini kapsar. Ayrıca bkz . Açıklama ayrıntılarıyla tablo ayrıntılarını gözden geçirme.

Tablo protokolü ve uyumluluk

Her Delta Lake tablosunun, tablodan okumak ve tabloya yazmak için gereken yetenek kümesini gösteren bir protokol belirtimi vardır. Uygulamalar, tablonun kullandığı tüm özellikleri destekleyebileceklerini belirlemek için protokol belirtimini kullanır. Bir uygulama tablonun geçerli protokolündeki bir özelliği destekleyemezse, bu uygulama bu tabloyu okuyamaz veya yazamaz.

Delta Lake'in çoğu yeni özelliği, tablo protokollerini yükseltmenizi gerektirir.

Aşağıdaki tabloda Delta Lake protokollerini açıklayan önemli terimler listelanmaktadır:

Süre Description
Delta Lake istemcisi Delta Lake tablosunu okuyan veya bu tabloya yazan herhangi bir sistem.
Protokolü okuma Delta Lake istemcisinin tabloyu okuması için gereken desteği belirtir.
Yazma protokolü Delta Lake istemcisinin tabloya yazması için gereken desteği belirtir.
minReaderVersion Okuyucu protokolünün tamsayı değeri. Geçerli değerler 1, 2veya 3.
minWriterVersion Yazıcı protokolünün tamsayı değeri. Geçerli değerler aracılığıyla 2tamsayılardır7.
Tablo özelliği = 3 ve minReaderVersion = 7 olduğunda minWriterVersion kullanılan protokol sürümlerine ayrıntılı bir alternatif. Tablo özellikleri isteğe bağlı etkinleştirilebilen Delta Lake özellikleriyle eşleşir.
Yazar özelliği Yazma istemcisi desteği gerektiren ancak salt okunur erişimi engellemeyen bir tablo özelliği.
Okuyucu özelliği Hem okuma hem de yazma istemcisi desteği gerektiren bir tablo özelliği. Bkz . Protokol sürümleri ve tablo özellikleri.

Yazma protokolleri ve yazıcı özellikleri yalnızca yazıcı istemcileriyle uyumluluğu etkileyerek eski iş yüklerinden tabloya salt okunur erişim sağlar.

Delta Lake özelliklerinin tümü birbiriyle uyumlu değildir.

Bazı tablo özellikleri etkinleştirildikten sonra bırakılamaz. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.

Protokol sürümleri ve tablo özellikleri

Tüm Delta Lake tabloları ve minReaderVersionile minWriterVersion temsil edilen tamsayı tabanlı bir protokol sürümü içerir. Her sürüm birden çok özelliği birlikte paketlemektedir ve özellikler sürümler arasında birikmelidir. Delta Lake protokolüne uymak için istemcilerin, daha önce yayımlanan tüm özellikler de dahil olmak üzere belirli bir sürümdeki tüm özellikler için destek uygulaması gerekir.

Databricks Runtime 12.2 LTS ve üzeri sürümlerin tablo özellikleri , tamsayı tabanlı protokolü bir tablonun hangi özellikleri kullandığını gösteren ayrıntılı bayraklarla değiştirir. Bu, istemciler ve tablolar arasında daha ayrıntılı uyumluluk denetimleri yapılmasını sağlar.

Tablo yazıcı özellikleri , verilerin yazılma biçimini etkiler. Okuyucu istemcilerini gerektirir minWriterVersion=7 ancak engellemez.

Tablo okuyucu özellikleri , verilerin okunma şeklini etkiler. Tüm okuyucu özellikleri de yazıcı özellikleridir ve ve minReaderVersion=3gerektirirminWriterVersion=7. İstemci, okuyamıyor olduğu bir tabloya yazamaz.

Tablo özellikleri etkinleştirildiğinde, protokolde veya readerFeaturesolarak writerFeatures görünür. Delta Lake, tablo protokolünü tüm etkin özellikleri destekleyen en düşük sürüme çözümler. Bkz. Mümkün olan en düşük protokol.

Note

Azure Databricks, desteklenen tüm Databricks Runtime sürümlerinde tablo özellikleri için kesintisiz kısmi destek içerir. OSS Delta Lake istemcileri, belirli özellikler için desteğin nasıl uygulaneceğini seçer.

Protokol değişiklikleri

Bir tablonun protokolü aşağıdaki koşullar altında değişir:

  • Yeni bir özellik etkinleştirilirse protokol yükseltilir.
  • Bir tablo özelliği bırakılırsa protokol düşürülmüş olur.

Bir tablo özelliğinin kapatılması protokolün düşürülmesiyle sonuçlanmaz. Özelliği protokolden tamamen kaldırmak için bırakmanız gerekir. Tüm tablo özellikleri bırakılamaz. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.

Tüm protokol değiştirme işlemleri 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. Devam etmek için etkilenen akışları yeniden başlatın. Önerilen yöntemler için bkz Yapılandırılmış Akış Üretimi için Dikkat Edilmesi Gereken Hususlar.

Note

Databricks, ve minReaderVersion tablo özelliklerini hiçbir zaman doğrudan değiştirmenizi minWriterVersion önerir. Bu özelliklerin değiştirilmesi protokol yükseltmelerini engellemez ve bunları daha düşük bir değere ayarlamak tabloyu düşürmez. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.

Protokol yükseltmeyi tetikleyenler

Bir özelliği etkinleştirdiğinizde, tablo protokolü otomatik olarak yükseltilir.

Protokol yükseltmeleri aşağıdaki yollarla tetiklenir:

  • veya CREATE deyimlerinde ALTER kullanılan söz dizimine göre otomatik olarak etkinleştirin. Örneğin, CLUSTER BY bir CREATE TABLE deyiminde sıvı kümeleme otomatik olarak etkinleştirir ve GENERATED ALWAYS AS oluşturulan sütunları etkinleştirir.
  • Tablo özellikleri aracılığıyla açıkça etkinleştirin. Örneğin, ayarı 'delta.enableDeletionVectors' = true silme vektörlerini etkinleştirir.
  • Bir özelliğin etkinleştirilmesi, gerekli özellikleri otomatik olarak etkinleştirebilir. Örneğin, Iceberg okumalarını etkinleştirmek otomatik olarak sütun eşlemesini etkinleştirir ve sıvı kümeleme otomatik olarak kontrol noktası V2'yi etkinleştirir. Belirli bir özelliğin hangi tablo özelliklerini gerektirdiğini belirlemek için ilgili Azure Databricks belgelerini gözden geçirin.

Okuyucu özellikleri hem okuma hem de yazma protokollerini yükseltmektedir. Örneğin, sütun eşleme bir okuyucu özelliğidir ve veriler depolama alanında farklı depolandığından her iki protokolün de yükseltilmesi gerekir.

Kısıtlamalar gibi CHECK yazıcı özellikleri yalnızca yazma protokollerini yükseltin.

Warning

Çoğu protokol sürümü yükseltmesi geri alınamaz ve mevcut Delta Lake tablo okuyucularını, yazarlarını veya her ikisini birden bozabilir. Belirli tabloları yalnızca gerektiğinde yükseltin ve tüm geçerli ve gelecekteki üretim araçlarının yeni protokol sürümünü desteklediğini doğrulayın.

Bazı özellikler için protokol seviyelerini düşürme kullanılabilir. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.

Mümkün olan en düşük protokol

Delta Lake, tablo protokolünü tüm etkin özellikleri destekleyen en düşük sürüme çözümler. Bu yalnızca veya 'yi düşürebilir minReaderVersionminWriterVersionve hiçbir zaman yükseltmez. Tablo özellikleri hiçbir zaman otomatik olarak kaldırılmaz. Protokolden tablo özelliğini kaldırmak için kullanın DROP FEATURE .

Tüm etkin özellikler daha düşük tamsayı tabanlı bir protokol sürümünde tam olarak destekleniyorsa, tablo bu sürüme geri dönebilir ve protokolden çıkabilir readerFeatures veya writerFeatures bırakabilirsiniz. Bu işlem hiçbir özelliği devre dışı bırakmaz. Tüm istemcilerin bunlara saygı göstermesi gerektiğinden düşük protokol sürümleri uyumluluğu artırır.

Azure Databricks ve Databricks Runtime uyumluluğu

Azure Databricks, Databricks Runtime sürümlerindeki yeni Delta Lake özellikleri için destek sunar:

  • Daha düşük bir Databricks Runtime sürümü tarafından yazılan tablolar, daha yüksek Databricks Runtime sürümlerinde tam okuma ve yazma desteğine sahiptir.
  • Daha yüksek bir Databricks Runtime sürümü tarafından yazılan tablolar, düşük Databricks Runtime sürümlerinde desteklenmeyen tablo özelliklerini kullanabilir.
  • Bazı özellikler, etkin özellik için tüm iyileştirmeleri tam olarak uygulamadan düşük Databricks Runtime sürümlerinden yazma işlemlerine izin verir.

Delta Lake tablolarını yalnızca Azure Databricks aracılığıyla kullanıyorsanız, en düşük Databricks Runtime gereksinimlerini kullanarak özellik desteğini izlemeniz yeterlidir. Dış sistemlerden tabloları okur veya yazarsanız, bu istemcilerin tablolarınızda etkinleştirilen tablo özelliklerini desteklediğini doğrulamanız gerekir.

Geri aktarılan tablo özelliği desteği

Databricks Runtime 12.2 LTS ve üzerinde tablo özellikleri , tamsayı tabanlı protokolün yerini tablonun hangi özellikleri kullandığını gösteren ayrıntılı bayraklarla değiştirdi.

Azure Databricks yalnızca tamsayı protokolü sürümlerini desteklemek yerine databricks runtime 11.3 LTS ve altına yönelik geri aktarılan tablo özelliği desteğine sahiptir, ancak yalnızca bu sürümde zaten desteklenen özellikler için geçerlidir.

Örneğin, Databricks Runtime 9.1 LTS'deki tablo özelliklerini kullanarak oluşturulan sütunların etkinleştirildiği bir tablodan okuyabilir ve tabloya yazabilirsiniz. Ancak, kimlik sütunları Databricks Runtime 10.4 LTS ve üzerini gerektirdiğinden, tablo özelliklerini kullanarak kimlik sütunları etkinleştirilmiş bir tablodan okumak ve tabloya yazmak için Databricks Runtime 9.1 LTS'yi kullanamazsınız.

Geri aktarılan destekle tablo özellikleri kullanılırken, belirli bir Databricks Runtime sürümünde kullanılabilen bazı işlemler ilgili OSS Delta Lake sürümünde kullanılamayabilir. Mimariniz OSS Delta Lake istemcileri içeriyorsa, üretim tablolarında tablo özelliklerini etkinleştirmeden önce uyumluluğu test edin.

Delta Lake özellikleri ve gerekli Databricks Runtime sürümleri

Aşağıdaki tabloda her özellik için tam desteğe sahip en düşük Databricks Runtime sürümü listelenmektedir; böylece hem okuma hem de yazma işlemleri için genel olarak kullanılabilen tüm özellikler desteklenmektedir.

Feature Databricks Runtime sürümünü veya daha yenisini gerektirir. Documentation
CHECK Kısıtlar Desteklenen tüm Databricks Runtime sürümleri CHECK Kısıtlama
Veri akışını değiştir Desteklenen tüm Databricks Runtime sürümleri Azure Databricks değişiklik veri akışını kullanma
Oluşturulan sütunlar Desteklenen tüm Databricks Runtime sürümleri Delta Lake tarafından oluşturulan sütunlar
Sütun eşlemesi Desteklenen tüm Databricks Runtime sürümleri Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve silme
Kimlik sütunları Desteklenen tüm Databricks Runtime sürümleri Kimlik sütunları
Tablo özellikleri Desteklenen tüm Databricks Runtime sürümleri Protokol sürümleri ve tablo özellikleri
Silme vektörleri Desteklenen tüm Databricks Runtime sürümleri Databricks'te silme vektörleri
TimestampNTZ Databricks Runtime 13.3 LTS TIMESTAMP_NTZ tür
Iceberg okuyor Databricks Runtime 13.3 LTS Iceberg istemcileri ile Delta Lake tablolarını okuma
Sıvı kümeleme Databricks Runtime 13.3 LTS Tablolar için sıvı kümeleme kullanma
Satır takibi Databricks Runtime 14.3 LTS sürümü Azure Databricks satır izleme
Veri türü genişletme Databricks Runtime 15.4 LTS Tür genişletme
Variant Databricks Runtime 15.4 LTS Apache Iceberg ve Delta Lake için değişken türü desteği
Sıralamalar Databricks Çalışma Zamanı 16.1 Delta Lake için Sıralama desteği
Korumalı denetim noktaları Databricks Runtime 16.3 Delta Lake tablo özelliğini bırakma ve tablo protokolünü düşürme
Katalog taahhütleri Databricks Runtime 16.4 LTS Katalog taahhütleri

Bkz Databricks Runtime sürüm notlarının versiyonları ve uyumluluğu.

Note

Lakeflow işlem hatları ve Databricks SQL, yeni özellikleri desteklemek için çalışma zamanı ortamlarını normal sürümlerle otomatik olarak yükseltmektedir. Bkz . Lakeflow işlem hatları sürüm notları, sürüm yükseltme işlemi ve Databricks SQL sürüm notları.

Protokol sürümüne göre özellikler

Note

Databricks Runtime uyumluluğu için bkz. Azure Databricks ve Databricks Runtime uyumluluğu.

Delta Lake, protokol özelliklerini belirtmek için ayrı minReaderVersion ve minWriterVersion değerleri kullanır. Açık kaynak Delta Lake protokolü tablo özelliklerinde standartlaştırıldı, ancak bazı istemciler eski protokol sürümünü kullanmaya devam ediyor. Bazı istemciler tüm özellikleri desteklemeyebileceği için Databricks, üretim tablolarında yeni özellikleri etkinleştirmeden önce istemci belgelerinizle doğrulamanızı ve uyumluluğu test etmenizi önerir.

Apache Iceberg, ayrı okuyucu ve yazar sürümleri yerine tek format-version bir sürüm kullanır. Iceberg biçimli sürüm, hangi özelliklerin kullanılabilir olduğunu gösterir ancak bunların kullanılmasını zorunlu yapmaz. Sürüm 3'te zorunlu olan satır izleme dışında, özellikler isteğe bağlıdır. Bir özellik Iceberg sütununda Yok değerini gösterdiğinde, doğrudan Iceberg eşdeğeri olmayan Delta'ya özgü bir özelliktir.

Aşağıdaki tabloda Delta Lake ve Apache Iceberg tablo özellikleri için protokol sürümü gereksinimleri listelenmiştir. Özellik türü, bir özelliğin yalnızca yazma işlemleri için mi yoksa hem okuma hem de yazma işlemleri için mi dikkate alınması gerektiğini gösterir.

Feature Delta minWriterVersion Delta minReaderVersion Buzdağı format-version Özellik türü
Temel işlevsellik 2 1 1 Yazar
CHECK Kısıtlamalar 3 1 N/A Yazar
Veri akışını değiştirme 4 1 N/A Yazar
Oluşturulan sütunlar 4 1 N/A Yazar
Sütun haritalama 5 2 N/A Okuyucu ve yazar
Kimlik sütunları 6 1 N/A Yazar
Satır izleme 7 1 3 Yazar
Silme vektörleri 7 3 3 Okuyucu ve yazar
Zaman DamgasıNTZ 7 3 1 Okuyucu ve yazar
Sıvı kümeleme 7 3 1 Okuyucu ve yazar (1)
Iceberg okuyor 7 2 N/A Yazıcı (2)
Tür genişletme 7 3 N/A Okuyucu ve yazar
Varyant 7 3 3 Okuyucu ve yazar
Değişken parçalama 7 3 3 Okuyucu ve yazar
Sıralamalar 7 3 N/A Okuyucu ve yazar
Korumalı denetim noktaları 7 1 N/A Yazar
Katalog taahhütleri 7 3 N/A Okuyucu ve yazar

(1): Sıvı kümeleme gizli bölümleme uygular.

(2): Sütun eşlemenin etkinleştirilmesini gerektirir.