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ştirilirdelta.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 true Delta 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, SetTransaction s) 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) |