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.
Bu makalede, Delta Lake protokollerine, tablo özelliklerine ve okuma ve yazma işlemleri için Delta Lake istemcileriyle uyumluluğa genel bir bakış sağlanmaktadır.
Delta tablosunun işlem günlüğü, protokol sürüm oluşturma bilgilerini içerir. Review tablosu ayrıntılarını detaylarla açıklayın bölümüne bakın.
Tablo protokolü okuma ve yazma uyumluluğunu nasıl belirtir?
Her Delta tablosunun, tabloyu okumak ve tabloya yazmak için gereken yetenek kümesini gösteren bir protokol belirtimi vardır. Protokol belirtimi, tablonun desteklediği tüm özellikleri işleyebileceklerini belirlemek için tablodan okuyan veya tabloya yazan uygulamalar tarafından 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.
Delta Lake'e eklenen yeni özelliklerin ve işlevlerin çoğu için tablo protokollerinin yükseltilmesi gerekir.
Aşağıdaki tabloda Delta Lake protokollerini açıklamak için kullanılan temel terimlere genel bir bakış sağlanmaktadır:
| Süre | Açıklama |
|---|---|
| Delta Lake istemcisi | Delta 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 bileşeni. Geçerli değerler 1, 2veya 3. |
minWriterVersion |
Yazıcı protokolünün bileşeni. Geçerli değerler 2 ile 7 arasında tamsayılardır. |
| Tablo özelliği | Protokol sürümlerine detaylı bir alternatif. Tablo özellikleri isteğe bağlı etkinleştirilebilen Delta Lake özellikleriyle eşleşir. |
| Yazar özelliği | Yazma protokolüne bağlı bir tablo özelliği. |
| Okuyucu özelliği | Okuma protokolüne bağlı bir tablo özelliği. |
Yazma protokolleri ve yazıcı özellikleri yalnızca yazıcı istemcileriyle uyumluluğu etkiler; başka bir deyişle eski iş yüklerinden tabloya salt okunur erişim hala desteklenmektedir. Okuma protokolleri ve okuyucu özellikleri hem okuma hem de yazma uyumluluğunu etkiler.
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 uyumluluğu için tablo özellikleri
Databricks Runtime 12.2 LTS ve üzerinde Databricks, özelliklere yönelik desteği ve okuyucularla yazıcılarla uyumluluğu belirtmek için tablo özelliklerini kullanır. Tablo özellikleri, belirli bir tablo tarafından hangi özelliklerin destekleneceğini belirtmek için ayrıntılı bayraklar kullanır. Tablo özellikleri, Delta Lake protokolüne yeni özellikler ekleyerek eski protokol sürüm oluşturma düzeninin yerini alır.
Tablo yazıcı özellikleri , verilerin yazılma şeklini etkileyen özellikleri gösterir. Tablo yazıcı özellikleri, minWriterVersion == 7 olması şartıyla çalışır. Yazıcı özellikleri olarak uygulanan özellikler okuyucu istemcilerini engellemez.
Tablo okuyucu özellikleri , verilerin okunma şeklini etkileyen özellikleri gösterir. Tüm tablo okuyucu özellikleri aynı zamanda tablo yazıcı özellikleridir. Tablo okuyucu özellikleri minReaderVersion == 3 ve minWriterVersion == 7 olduğunda gerekir. İstemci, okuyamadığı bir tabloya yazamaz.
Tablo özellikleri etkinleştirildiğinde, tablonun protokolü tarafından desteklenen tüm özellikler, ilgili listelerde readerFeatures veya writerFeatures olarak görünür. Tablodaki özellikleri bırakırken, tablonuz mümkün olan en düşük protokolü çözümlemek için bu davranışı kaldırabilir. Bkz. Mümkün olan en düşük protokol.
Tamsayı tabanlı protokol sürümleri ve eski sistemlerle uyumluluk
Tüm tablolar, minReaderVersion ve minWriterVersion ile temsil edilen tamsayı tabanlı bir protokol sürümünü içerir. Tablo özellikleri kullanılarak uygulanan işlevsellik bu protokol sürümlerine dayandırılır, ancak birçok eski okuyucu ve yazıcı istemcisi uyumluluğu yönetmek için protokol sürümlerini kullanmaya devam eder. Delta Lake, modern ve eski Delta istemcileriyle en yüksek uyumluluğu sağlamak için tablo protokollerini mümkün olan en düşük sürüme çözümlemeye çalışır. Bkz. Mümkün olan en düşük protokol.
Tamsayı tabanlı protokol sürüm oluşturma düzeninde, her sürüm numarası birden çok özellik paketler ve sürüm numaraları arasında özellikler birikmeli olur. Bu, Delta protokolüyle uyumlu olması için istemcilerin daha önce yayımlanan tüm özellikler de dahil olmak üzere belirli bir sürümde bulunan tüm okuyucu veya yazıcı özellikleri için destek uygulaması gerektiği anlamına gelir.
Not
Databricks, desteklenen tüm Databricks Runtime sürümlerinde tablo özellikleri için kesintisiz kısmi destek içerir. OSS Delta istemcileri, belirli özellikler için desteğin nasıl uygulaneceğini seçer.
Tablo protokolü ne zaman değişir?
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.
Tablo özelliğinin devre dışı bırakılması protokolün düşürülmesiyle sonuçlanmaz . Özelliği tablo protokolünden 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 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.
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. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.
Tablo protokolü ne zaman yükseltilir?
Tabloda bir özelliği etkinleştirdiğinizde, tablo protokolü otomatik olarak yükseltilir. Bazı özellikler, CREATE veya ALTER tablo deyimlerinde kullanılan söz dizimine göre otomatik olarak etkinleştirilirken, diğer özelliklerin açıkça etkinleştirilmesi için tablo özelliklerinin ayarlanması gerekir. Bazen istenen işlevselliği desteklemek için birden çok tablo özelliğini açıkça etkinleştirmeniz gerekir. Diğer durumlarda, işlevselliğin etkinleştirilmesi diğer tablo özelliklerini otomatik olarak etkinleştirebilir. Hangi tablo özelliklerinin gerekli olduğunu belirlemek için kullandığınız işlevsellik ve söz dizimi için Azure Databricks belgelerine bakın.
Okuyucu özellikleri hem okuma protokollerini hem de yazma protokollerini yükseltmeyi gerektirir. Yazıcı özellikleri yalnızca yazma protokollerini yükseltmeyi gerektirir.
Örneğin, kısıtlamalara yönelik CHECK destek bir yazma uygulaması ö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.
Not
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 Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.
Mümkün olan en düşük protokol
Varsayılan olarak Delta Lake, tablo tarafından desteklenen olarak işaretlenmiş tüm özellikleri temsil etmek için mümkün olan en düşük protokolü kullanmayı dener.
Bu davranış yalnızca tablo protokollerinin indirilmesine neden olabilir, yani minReaderVersion veya minWriterVersion bir tablo için daha düşük değerlere dönüşebilir.
Tablo protokolünün DROP FEATURE desteklenen özellik listesinden tablo özelliğini kaldırmak için komutunu çalıştırmanız gerekir. Tablo özellikleri hiçbir zaman otomatik olarak bırakılmaz.
Tabloda bulunan tüm Delta Lake özellikleri daha düşük bir protokol sürümünde tam olarak destekleniyorsa, tablo okuyucu ve yazıcı uyumluluğunu göstermek için tablo özelliklerini kullanmayan bir protokol sürümüne geri dönebilir. Bu protokol sürüm düşürmesi gerçekleştiğinde, tabloda ya readerFeatures ya da hem readerFeatures hem de writerFeatures protokolünden çıkarılabilir. Bu, Delta Lake özelliklerinin devre dışı bırakılmasına neden olmaz ve yalnızca tablo protokolünde tablo özellikleri gerekli olmadığında gerçekleşir.
Tablo protokolünü düşüren tüm değişiklikler okuyucu ve yazıcı istemcileriyle uyumluluğu artırır. Bunun nedeni, okuyucu ve yazıcı istemcilerinin daha yüksek protokol sürümlerini desteklese bile daha düşük protokol sürümlerine saygı duyması gerekir.
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 özellikleri için destek eklemek için desteklenen tüm Databricks Runtime LTS sürümlerine kod geri aktarmıştır, ancak bu Databricks Runtime'da zaten desteklenen özellikler için
Delta Lake özellik uyumluluğunu Azure Databricks nasıl yönetir?
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 ve Lakeflow Spark Bildirimli İşlem Hatları gibi bazı Azure Databricks ürünleri birçok tablo özelliğine bağlıdır.
- Düşük Databricks Runtime sürümleri tarafından yazılan tüm tablolar, daha yüksek Databricks Runtime sürümlerinde tam okuma ve yazma desteğine sahiptir.
- Daha yüksek Databricks Runtime sürümleri tarafından yazılan tablolar, düşük Databricks Runtime sürümlerinde desteklenmeyen tablo özelliklerini kullanabilir.
- Bazı özellikler, etkin tablo özellikleriyle ilgili tüm iyileştirmeleri tam olarak uygulamadan düşük Databricks Runtime sürümlerinden yazma işlemlerine izin verebilir.
Daha eski Databricks Runtime sürümlerine geri taşınmış destekle tablo özellikleriyle çalışırken, belirli bir Databricks Runtime sürümünde çalışan bazı işlemler, karşılık gelen OSS Delta sürümünde çalışmayabilir. Geliştirme döngünüz veya veri mimariniz OSS Delta Lake içeriyorsa, üretim tablolarında tablo özelliklerini etkinleştirmeden önce her zaman OSS Delta istemcilerinde uyumluluğu test etmelisiniz.
Delta Lake özellikleri ve gerekli Databricks Runtime sürümleri
Özellikler tablo bazında etkinleştirilir. Aşağıdaki tabloda, belirtilen özellik için tam destek içeren en düşük Databricks Runtime sürümü listelanmaktadır. Tam destek, hem okuma hem de yazma işlemleri için genel olarak kullanılabilen tüm işlevlerin desteklendiği anlamına gelir.
| Özellik | Databricks Runtime sürümünü veya daha yenisini gerektirir. | Belgeler |
|---|---|---|
CHECK Kısıtlar |
Desteklenen tüm Databricks Runtime sürümleri | |
| Veri akışını değiştirme | Desteklenen tüm Databricks Runtime sürümleri | |
| Oluşturulan sütunlar | Desteklenen tüm Databricks Runtime sürümleri | Delta Lake tarafından oluşturulan sütunlar |
| Sütun eşleştirme | 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 | Delta Lake'te kimlik sütunlarını kullanma |
| Tablo özellikleri | Databricks Runtime 12.2 LTS | Protokol uyumluluğu için tablo özellikleri |
| Silme vektörleri | Databricks Runtime 12.2 LTS | Databricks'te silme vektörleri |
| Zaman DamgasıNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ tür |
| Tekdüze | Databricks Runtime 13.3 LTS | Iceberg istemcileriyle Delta tablolarını okuma |
| Sıvı kümeleme | Databricks Runtime 13.3 LTS | Tablolar için sıvı kümeleme kullanma |
| Satır izleme | Databricks Runtime 14.3 LTS sürümü | Databricks'te satır izleme |
| Tür genişletme | Databricks Runtime 15.4 LTS | Tür genişletme |
| Varyant | Databricks Runtime 15.4 LTS | 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 işlemeleri | Databricks Runtime 16.4 LTS | Katalog işlemeleri |
Bkz Databricks Runtime sürüm notları, sürümler ve uyumluluk.
Not
Lakeflow Spark Bildirimli İşlem Hatları ve Databricks SQL, yeni özellikleri desteklemek için çalışma zamanı ortamlarını normal sürümlerle otomatik olarak yükseltir. Bkz. Lakeflow Spark Bildirimli İşlem Hatları sürüm notları ve sürüm yükseltme işlemi ile Databricks SQL sürüm notları.
Protokol sürümüne göre özellikler
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.
Delta Lake, protokol özelliklerini belirtmek için ayrı minReaderVersion ve minWriterVersion değerleri kullanır. open source Delta Lake protokolü tablo özelliklerinde standartlaştırılmıştır, ancak bazı istemciler eski protokol sürümünü kullanmaya devam eder. Bazı istemciler tüm özellikleri desteklemeyebilir, bu nedenle üretim tablolarında yeni özellikleri etkinleştirmeden önce istemci belgelerinize başvurun ve uyumluluğu test edin.
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.
Not
Yalnızca Databricks Runtime uyumluluğuyla ilgileniyorsanız bkz. Delta Lake özellik uyumluluğunu nasıl Azure Databricks yönetir?.
| Özellik | 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) |
| İceberg okuyucuları (UniForm) | 7 | 2 | N/A | Yazar (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 işlemeleri | 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.