Aracılığıyla paylaş


Delta tablosu özellikleri başvurusu

Delta Lake, ile delta.başlayan Delta tablosu özelliklerini ayırır. Bu özelliklerin belirli anlamları olabilir ve bu özellikler ayarlandığında davranışları etkileyebilir.

Not

Tablo özelliklerini ayarlayan veya güncelleştiren tüm işlemler diğer eşzamanlı yazma işlemleriyle çakışarak bunların başarısız olmasına neden olur. Databricks, tablo özelliğini yalnızca tabloda eşzamanlı yazma işlemi olmadığında değiştirmenizi önerir.

Tablo özellikleri ve SparkSession özellikleri nasıl etkileşim kurar?

Delta tablosu özellikleri tablo başına ayarlanır. Bir tabloda bir özellik ayarlanmışsa, varsayılan olarak bu ayardan sonra gelen ayardır.

Bazı tablo özellikleri, her zaman tablo özelliklerine göre öncelikli olan ilişkili SparkSession yapılandırmalarına sahiptir. Bazı örnekler, otomatik sıkıştırmayı spark.databricks.delta.autoCompact.enabled ve iyileştirilmiş yazmaları tablo düzeyinde değil SparkSession düzeyinde açan ve spark.databricks.delta.optimizeWrite.enabled yapılandırmalarıdır. Databricks, çoğu iş yükü için tablo kapsamlı yapılandırmaların kullanılmasını önerir.

Her Delta tablosu özelliği için SparkSession yapılandırmasını kullanarak yeni tablolar için varsayılan bir değer ayarlayabilir ve yerleşik varsayılanı geçersiz kılabilirsiniz. Bu ayar yalnızca yeni tabloları etkiler ve mevcut tablolarda ayarlanan özellikleri geçersiz kılmaz veya değiştirmez. SparkSession'da kullanılan ön ek, aşağıdaki tabloda gösterildiği gibi tablo özelliklerinde kullanılan yapılandırmalardan farklıdır:

Delta Lake conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Örneğin, bir oturumda oluşturulan tüm yeni Delta Lake tablolarının özelliğini ayarlamak delta.appendOnly = true için aşağıdakileri ayarlayın:

SET spark.databricks.delta.properties.defaults.appendOnly = true

Mevcut tabloların tablo özelliklerini değiştirmek için SET TBLPROPERTIES kullanın.

Delta tablosu özellikleri

Kullanılabilir Delta tablosu özellikleri şunları içerir:

Özellik
delta.appendOnly

true bu Delta tablosunun yalnızca ekli olması için. Yalnızca ekleme varsa, var olan kayıtlar silinemez ve mevcut değerler güncelleştirilemez.

Bkz . Delta tablosu özellikleri başvurusu.

Veri tipi: Boolean

Varsayılan: false
delta.autoOptimize.autoCompact

auto Delta Lake'in bu Delta tablosu için dosyaların düzenini otomatik olarak iyileştirmesi için.

Bkz. Azure Databricks'te Delta Lake için otomatik sıkıştırma.

Veri tipi: Boolean

Varsayılan: (yok)
delta.autoOptimize.optimizeWrite

true Delta Lake'in yazma işlemleri sırasında bu Delta tablosu için dosyaların düzenini otomatik olarak iyileştirmesi için.

Bkz . Azure Databricks'te Delta Lake için iyileştirilmiş yazma işlemleri.

Veri tipi: Boolean

Varsayılan: (yok)
delta.checkpoint.writeStatsAsJson

true Delta Lake'in denetim noktalarına sütun için JSON biçiminde dosya istatistikleri yazması stats için.

Bkz. Denetim noktalarında sütun düzeyinde istatistikleri yönetme.

Veri tipi: Boolean

Varsayılan: true
delta.checkpoint.writeStatsAsStruct

true Delta Lake'in sütun için yapı biçimindeki denetim noktalarına dosya istatistikleri yazması stats_parsed ve bölüm değerlerini için bir yapı olarak yazması için partitionValues_parsed.

Bkz. Denetim noktalarında sütun düzeyinde istatistikleri yönetme.

Veri tipi: Boolean

Varsayılan: (yok)
delta.checkpointPolicy

classic klasik Delta Lake denetim noktaları için. v2 v2 denetim noktaları için.

Bkz. Sıvı kümeleme ile tablolar için uyumluluk.

Veri tipi: String

Varsayılan: classic
delta.columnMapping.mode

Delta tablo sütunları ve farklı adlar kullanan ilgili Parquet sütunları için sütun eşlemenin etkinleştirilip etkinleştirilmediği.

Bkz . Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma.

Not: Etkinleştirme delta.columnMapping.mode otomatik olarak etkinleştirilir
delta.randomizeFilePrefixes.

Veri tipi: DeltaColumnMappingMode

Varsayılan: none
delta.dataSkippingNumIndexedCols

Delta Lake'in veri atlamayla ilgili istatistikleri toplayacak sütun sayısı. Değeri -1 , tüm sütunlar için istatistik toplama anlamına gelir.

Bkz. Delta Lake için veri atlama.

Veri tipi: Int

Varsayılan: 32
delta.dataSkippingStatsColumns

Delta Lake'in veri atlama işlevini geliştirmek için istatistik topladığı sütun adlarının virgülle ayrılmış listesi. Bu özellik üzerinde delta.dataSkippingNumIndexedColsönceliklidir.

Bkz. Delta Lake için veri atlama.

Veri tipi: String

Varsayılan: (yok)
delta.deletedFileRetentionDuration

Delta Lake'in mantıksal olarak silinen veri dosyalarını fiziksel olarak silmeden önce saklaması için en kısa süre. Bu, sıkıştırma veya bölüm üzerine yazma işlemlerinden sonra eski okuyucularda hataları önlemektir.

Bu değer, aşağıdakilerin gerçekleştirilmesini sağlayacak kadar büyük olmalıdır:

- Delta tablosuna erişen eş zamanlı okuyucular veya yazarlar olduğunda çalışıyorsanız VACUUM , işin mümkün olan en uzun süresinden daha uzundur.
- Tablodan okuyan bir akış sorgusu çalıştırırsanız, bu sorgu bu değerden daha uzun süre durmaz. Aksi takdirde, eski dosyaları okumaya devam etmesi gerektiğinden sorgu yeniden başlatılamayabilir.

Bkz . Zaman yolculuğu sorguları için veri saklamayı yapılandırma.

Veri tipi: CalendarInterval

Varsayılan: interval 1 week
delta.enableChangeDataFeed

true öğesini seçin.

Bkz . Değişiklik veri akışını etkinleştirme.

Veri tipi: Boolean

Varsayılan: false
delta.enableDeletionVectors

true silme vektörlerini ve güncelleştirmeler için tahmine dayalı G/Ç'yi etkinleştirmek için.

Bkz . Silme vektörleri nedir?.

Veri tipi: Boolean

Varsayılan: Çalışma alanı yönetici ayarlarına ve Databricks Runtime sürümüne bağlıdır. Bkz. Silme vektörlerini otomatik olarak etkinleştirme
delta.isolationLevel

Bir işlemin eşzamanlı işlemler tarafından yapılan değişikliklerden yalıtılması gereken derece.

Geçerli değerler: Serializable ve WriteSerializable.

Bkz. Azure Databricks'te yalıtım düzeyleri ve yazma çakışmaları.

Veri tipi: String

Varsayılan: WriteSerializable
delta.logRetentionDuration

Delta tablosunun geçmişinin ne kadar süreyle tutulduğunu. VACUUM işlemler bu bekletme eşiğini geçersiz kılar.

Her denetim noktası yazıldıktan sonra Delta Lake, bekletme aralığından daha eski günlük girdilerini otomatik olarak temizler. Bu özelliği yeterince büyük bir değere ayarlarsanız, birçok günlük girdisi korunur. Günlük üzerindeki işlemler sabit bir süre olduğundan bu durum performansı etkilememelidir. Geçmiş işlemleri paraleldir ancak günlük boyutu arttıkça daha pahalı hale gelir.

Bkz . Zaman yolculuğu sorguları için veri saklamayı yapılandırma.

Veri tipi: CalendarInterval

Varsayılan: interval 30 days
delta.minReaderVersion

Bu Delta tablosundan okumaya izin veren bir okuyucu için gereken en düşük protokol okuyucu sürümü.

Databricks, bu özelliğin el ile yapılandırılmasını önerir.

Bkz. Azure Databricks Delta Lake özellik uyumluluğunu nasıl yönetir?.

Veri tipi: Int

Varsayılan: 1
delta.minWriterVersion

Bu Delta tablosuna yazmaya izin veren bir yazıcı için gereken en düşük protokol yazıcı sürümü.

Databricks, bu özelliğin el ile yapılandırılmasını önerir.

Bkz. Azure Databricks Delta Lake özellik uyumluluğunu nasıl yönetir?.

Veri tipi: Int

Varsayılan: 2
delta.randomizeFilePrefixes

true Delta Lake'in bölüm bilgileri yerine bir dosya yolu için rastgele ön ek oluşturması için.

Veri tipi: Boolean

Varsayılan: false
delta.randomPrefixLength

olarak delta.randomizeFilePrefixes ayarlandığında trueDelta Lake'in rastgele önekler için oluşturduğu karakter sayısı.

Veri tipi: Int

Varsayılan: 2
delta.setTransactionRetentionDuration

Yeni anlık görüntülerin işlem tanımlayıcılarını (örneğin, SetTransactions) tutacağı en kısa süre. Yeni bir anlık görüntü, bu özellik tarafından belirtilen süreye eşit veya ondan eski bir işlem tanımlayıcısı gördüğünde, anlık görüntü süresinin dolduğunu kabul eder ve bunu yoksayar. Tanımlayıcı SetTransaction , yazma işlemleri bir kez etkili yapılırken kullanılır. Ayrıntılar için bkz . foreachBatch'ta Idempotent tablo yazmaları.

Veri tipi: CalendarInterval

Varsayılan: (yok)
delta.targetFileSize

Dosya ayarlama için bayt veya daha yüksek birim cinsinden hedef dosya boyutu. Örneğin,
104857600 (bayt) veya 100mb.

Bkz . Delta Lake'i veri dosyası boyutunu denetlemek için yapılandırma.

Veri tipi: String

Varsayılan: (yok)
delta.tuneFileSizesForRewrites

true Delta tablosundaki tüm veri düzeni iyileştirme işlemleri için her zaman daha düşük dosya boyutları kullanmak.

false daha düşük dosya boyutlarını ayarlamamak için, yani otomatik algılamanın etkinleştirilmesini önler.

Bkz . Delta Lake'i veri dosyası boyutunu denetlemek için yapılandırma.

Veri tipi: Boolean

Varsayılan: (yok)