İngilizce dilinde oku

Aracılığıyla paylaş


Silme vektörleri nedir?

Silme vektörleri, Delta Lake tablolarında etkinleştirebileceğiniz bir depolama iyileştirme özelliğidir. Varsayılan olarak, bir veri dosyasındaki tek bir satır silindiğinde, kaydı içeren Parquet dosyasının tamamı yeniden yazılmalıdır. Tablo, , DELETEve UPDATE işlemleri için silme vektörleri etkinleştirildiğinde, MERGEparquet dosyasını yeniden yazmadan var olan satırları kaldırıldı veya değiştirildi olarak işaretlemek için silme vektörlerini kullanır. Tablodaki sonraki okumalar, silme vektörleri tarafından belirtilen silmeleri en son tablo sürümüne uygulayarak geçerli tablo durumunu çözer.

Databricks, tüm iyileştirmeleri kullanmak üzere silme vektörlerine sahip tablolar yazmak için Databricks Runtime 14.3 LTS ve üzerini kullanmanızı önerir. Databricks Runtime 12.2 LTS ve üzerinde silme vektörlerinin etkinleştirildiği tabloları okuyabilirsiniz.

Databricks Runtime 14.2 ve üzeri sürümlerinde, silme vektörlerine sahip tablolar satır düzeyi eşzamanlılığı destekler. Bkz . Satır düzeyi eşzamanlılık ile yazma çakışmaları.

Not

Foton, tahmine dayalı G/Ç güncelleştirmeleri için silme vektörlerinden yararlanarak , DELETEve MERGE işlemlerini hızlandırmaktadırUPDATE. Silme vektörlerini okumayı destekleyen tüm istemciler, tahmine dayalı G/Ç'nin bu güncelleştirmeleri üretip oluşturmadığına bakılmaksızın silme vektörleri üreten güncelleştirmeleri okuyabilir. Bkz. Güncelleştirmeleri hızlandırmak için tahmine dayalı G/Ç kullanma.

Silme vektörlerini etkinleştirme

Önemli

Çalışma alanı yönetici ayarı, silme vektörlerinin yeni Delta tabloları için otomatik olarak etkinleştirilip etkinleştirilmediğini denetler. Bkz. Silme vektörlerini otomatik olarak etkinleştirme.

Silme vektörlerinin otomatik olarak etkinleştirilmesini denetlemeye yönelik çalışma alanı ayarı kullanılırsa, tablo türleri için seçilen seçeneğe bağlı olarak, SQL ambarı veya Databricks Runtime 14.1 veya üzerini kullanarak yeni bir tablo oluşturduğunuzda silme vektörleri varsayılan olarak etkinleştirilir. Gerçekleştirilmiş görünümler veya Akış tabloları oluşturduğunuzda silme vektörleri varsayılan olarak etkinleştirilmez ve gerçekleştirilmiş bir görünüm veya Akış tablosu oluşturduğunuzda el ile etkinleştirilmesi gerekir.

Tablo veya görünümde silme vektörleri desteğini el ile etkinleştirmek için tablo özelliğini kullanın delta.enableDeletionVectors . Tabloyu oluştururken veya değiştirirken bir delta tablosunda silme vektörlerini el ile etkinleştirebilirsiniz. Silme vektörlerini gerçekleştirilmiş görünümde veya Akış tablosunda yalnızca gerçekleştirilmiş görünümü veya Akış tablosunu oluşturduğunuzda el ile etkinleştirebilirsiniz. Gerçekleştirilmiş görünümde ALTER veya Akış tablosunda silme vektörlerini etkinleştirmek için bir deyimi kullanamazsınız.

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Uyarı

Silme vektörlerini etkinleştirdiğinizde, tablo protokolü yükseltilir. Yükseltmeden sonra tablo, silme vektörlerini desteklemeyen Delta Lake istemcileri tarafından okunamaz. Bkz. Azure Databricks Delta Lake özellik uyumluluğunu nasıl yönetir?.

Databricks Runtime 14.1 ve üzeri sürümlerin silme vektörleri tablosu özelliğini bırakarak diğer Delta istemcileriyle uyumluluğu etkinleştirebilirsiniz. Bkz. Delta tablosu özelliklerini kaldırma.

Parquet veri dosyalarına değişiklikleri uygulama

Silme vektörleri, Delta Lake tablosundaki mevcut Parquet veri dosyalarını mantıksal olarak değiştiren geçici silme işlemleri olarak satırlarda yapılan değişiklikleri gösterir. Bu değişiklikler, aşağıdaki olaylardan biri veri dosyalarının yeniden yazılmasına neden olduğunda fiziksel olarak uygulanır:

  • Tabloda bir OPTIMIZE komut çalıştırılır.
  • Otomatik sıkıştırma, silme vektörüyle bir veri dosyasının yeniden yazılmasını tetikler.
  • REORG TABLE ... APPLY (PURGE) tablonun üzerinde çalıştırılır.

Dosya sıkıştırmayla ilgili olayların silme vektörlerinde kaydedilen değişiklikleri çözmek için kesin garantileri yoktur ve hedef veri dosyalarının dosya sıkıştırma için aday olmaması durumunda silme vektörlerinde kaydedilen bazı değişiklikler uygulanamayabilir. REORG TABLE ... APPLY (PURGE) Silme vektörleri kullanılarak kaydedilen değişikliklerle kayıtları içeren tüm veri dosyalarını yeniden yazar. Bkz. REORG TABLE.

Not

Değiştirilen veriler eski dosyalarda hala var olabilir. Eski dosyaları fiziksel olarak silmek için VACUUM çalıştırabilirsiniz. REORG TABLE ... APPLY (PURGE) tamamlandığında tablonun yeni bir sürümünü oluşturur. Bu tamamlanma süresi, silinen dosyaları tamamen kaldırmak için işleminizin bekletme eşiği için göz önünde bulundurmanız VACUUM gereken zaman damgasıdır. Bkz. Vakumile kullanılmayan veri dosyalarını kaldırma.

Delta istemcileri ile uyumluluk

Azure Databricks, Foton özellikli işlemdeki güncelleştirmeler için tahmine dayalı G/Ç'yi desteklemek için silme vektörlerini kullanır. Bkz. Güncelleştirmeleri hızlandırmak için tahmine dayalı G/Ç kullanma.

Okuma ve yazma işlemleri için silme vektörlerini kullanma desteği istemciye göre değişir.

Aşağıdaki tabloda, silme vektörleri etkinleştirilmiş Delta tablolarını okumak ve yazmak için gerekli istemci sürümleri gösterilir ve hangi yazma işlemlerinin silme vektörlerini kullandığını belirtir:

İstemci Yazma silme vektörleri Silme vektörlerini okuma
Photon ile Databricks Runtime MERGE, UPDATEve DELETE databricks Runtime 12.2 LTS ve üzerini destekler. Databricks Runtime 12.2 LTS veya üzerini gerektirir.
Photon içermeyen Databricks Runtime Databricks Runtime 12.2 LTS ve üzerini kullanmayı destekler DELETE . Databricks Runtime 14.1 ve üzerini kullanmayı destekler UPDATE . Databricks Runtime 14.3 LTS ve üzerini kullanmayı destekler MERGE . Databricks Runtime 12.2 LTS veya üzerini gerektirir.
OSS Delta Lake ile OSS Apache Spark OSS Delta 2.4.0 ve üzerini kullanmayı destekler DELETE . OSS Delta 3.0.0 ve üzerini kullanmayı destekler UPDATE . OSS Delta 2.3.0 veya üzerini gerektirir.
Delta Sharing alıcıları Yazma işlemleri Delta Sharing tablolarında desteklenmez Databricks: DBR 14.1 veya üzerini gerektirir. Açık kaynak Apache Spark: 3.1 veya üzerini gerektirir delta-sharing-spark .

Not

Diğer Delta istemcileriyle ilgili destek için OSS Delta Lake tümleştirmeleri belgelerine bakın.

Sınırlamalar

  • UniForm silme vektörlerini desteklemez.
  • Silme vektörlerini kullanan dosyaları olan bir tablo için bildirim dosyası oluşturmak üzere GENERATE deyimi kullanamazsınız. Bildirim oluşturmak için önce bir REORG TABLE çalıştırın... APPLY (PURGE) deyimi ve ardından GENERATE deyimini çalıştırın. deyimini gönderirken hiçbir eşzamanlı yazma işleminin REORG çalışmadığından emin olmanız gerekir.
  • Silme vektörleri etkinleştirilmiş bir tablo için artımlı bildirim dosyaları oluşturamazsınız (örneğin, tablo özelliğini delta.compatibility.symlinkFormatManifest.enabled=trueayarlayarak).
  • Gerçekleştirilmiş bir görünümde veya Akış tablosunda silme vektörlerini etkinleştirir ve daha sonra silme vektörlerini devre dışı bırakırsanız, görünüme veya tabloya gelecek yazma işlemleri silme vektörlerini kullanmaz, ancak var olan silme vektörleri kaldırılmaz.
  • Gerçekleştirilmiş bir görünümde veya Akış tablosunda silme vektörlerini etkinleştirdikten sonra tablo protokollerini düşüremezsiniz. Etkinleştirdikten sonra, silme vektörlerini görünümde veya tabloda devre dışı bıraksanız bile silme vektörleri için tablo özelliği kaldırılamaz.