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.
Delta Lake ve Apache Iceberg tabloları veri düzeni, dosya boyutu, veri atlama, yalıtım düzeyi ve veri akışını değiştirme gibi davranış ve özellikleri yapılandırmak için tablo özelliklerini kullanır.
Note
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 özelliklerini değiştirme
Varolan tabloların tablo özelliklerini değiştirmek için SET TBLPROPERTIESkullanın.
Delta ve Iceberg özellik ön ekleri
Delta Lake ve Apache Iceberg tabloları aynı tablo özellik adlarını paylaşır, ancak farklı ön ekler gerektirir:
-
Delta Lake tabloları: Ön ekini
delta.kullanın -
Iceberg tabloları: Ön ekini
iceberg.kullanın
Örneğin, bir tabloda silme vektörlerini etkinleştirmek için:
Delta Gölü
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Buzdağı tablosu
ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);
Tablo özellikleri ve SparkSession özellikleri
Her tablonun davranışını denetleyebilen kendi tablo özellikleri vardır. Bazı SparkSession yapılandırmalar her zaman tablo özelliklerini geçersiz kılar. Örneğin, autoCompact.enabledoptimizeWrite.enabled otomatik sıkıştırmayı ve iyileştirilmiş yazmaları SparkSession düzeyinde etkinleştirin. Databricks, çoğu iş yükü için tablo kapsamlı yapılandırmaların kullanılmasını önerir.
Yapılandırmaları kullanarak SparkSession yeni tablolar için varsayılan değerleri ayarlayabilirsiniz. Bu varsayılanlar yalnızca yeni tablolar için geçerlidir ve mevcut tablo özelliklerini etkilemez.
SparkSession yapılandırmaları, aşağıdaki tabloda gösterildiği gibi tablo özelliklerinden farklı bir ön ek kullanır:
| Tablo özelliği |
SparkSession konfigürasyon |
|---|---|
delta.<conf>iceberg.<conf> |
spark.databricks.delta.properties.defaults.<conf>spark.databricks.iceberg.properties.defaults.<conf> |
Örneğin, bir oturumda oluşturulan tüm yeni tabloların appendOnly = true özelliğini ayarlamak için aşağıdakileri ayarlayın:
Delta Gölü
SET spark.databricks.delta.properties.defaults.appendOnly = true
Buzdağı tablosu
SET spark.databricks.iceberg.properties.defaults.appendOnly = true
Tablo özellikleri
Aşağıdaki tablo özelliklerinin çoğu, belirtilen durumlar dışında hem Delta Lake hem de Apache Iceberg tablolarında kullanılabilir.
delta. Delta Lake tabloları için ön eki ve iceberg. Iceberg tabloları için ön eki kullanın.
| Mülkiyet | Description |
|---|---|
autoOptimize.optimizeWrite |
true yazma işlemleri sırasında bu tablonun dosyalarının düzenini otomatik olarak iyileştirmek için.Bkz. İyileştirilmiş yazma işlemleri. Veri tipi: BooleanVarsayılan: (yok) |
dataSkippingNumIndexedCols |
Verilerin atlanmasıyla ilgili istatistiklerin toplanması gereken sütun sayısı. Değeri -1 , tüm sütunlar için istatistik toplama anlamına gelir.Bkz. Veri atlama. Veri tipi: IntVarsayılan: 32 |
dataSkippingStatsColumns |
Veri atlama işlevselliğini geliştirmek için istatistiklerin toplandığı sütun adlarının virgülle ayrılmış listesi. Bu özellik üzerinde dataSkippingNumIndexedColsönceliklidir.Bkz. Veri atlama. Veri tipi: StringVarsayılan: (yok) |
deletedFileRetentionDuration |
Mantıksal olarak silinen veri dosyalarını fiziksel olarak silmeden önce saklamak için en kısa süre. Bu, sıkıştırmalar veya bölüm üzerine yazıldıktan sonra eski okuyucularda hataları önler. Databricks varsayılan değer olan 7 gün veya üzerini önerir. Bekletme süreniz çok kısaysa, uzun süre çalışan işlerin iş tamamlanmadan önce kaydedilmemiş dosyaları silinmiş olabilir. Bkz Zaman yolculuğu sorguları için veri saklamayı yapılandırma. Veri tipi: CalendarIntervalVarsayılan: interval 1 week |
enableDeletionVectors |
true silme vektörlerini ve güncelleştirmeler için tahmine dayalı Girdi/Çıktı'yı etkinleştirmek için.Bkz . Databricks'te silme vektörleri ve Silme vektörlerini etkinleştirme. Veri tipi: BooleanVarsayı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. |
logRetentionDuration |
Bir tablonun geçmişinin ne kadar süreyle tutulacağı.
VACUUM işlemler bu bekletme eşiğini geçersiz kılar.Her denetim noktası yazıldığında, Databricks saklama aralığından daha eski günlük girdilerini otomatik olarak temizler. Bu özelliği büyük bir değere ayarlamak, birçok günlük girdisinin tutulmasını sağlar. Günlük üzerindeki işlemler sabit zaman olduğundan bu durum performansı etkilemez. Geçmiş kaydı üzerindeki işlemler paraleldir, ancak günlük boyutunun artmasıyla beraber daha maliyetli hale gelir. Bkz Zaman yolculuğu sorguları için veri saklamayı yapılandırma. Veri tipi: CalendarIntervalVarsayılan: interval 30 days |
minReaderVersion (Yalnızca Delta Lake) |
Bu tablodan okumak için gereken en düşük protokol okuyucu sürümü. Databricks, bu özelliğin el ile yapılandırılmasına karşıdır. Bkz . Delta Lake özellik uyumluluğu ve protokolleri. Veri tipi: IntVarsayılan: 1 |
minWriterVersion (Yalnızca Delta Lake) |
Tabloya yazabilmek için gerekli minimum protokol yazar sürümü. Databricks, bu özelliğin el ile yapılandırılmasına karşıdır. Bkz . Delta Lake özellik uyumluluğu ve protokolleri. Veri tipi: IntVarsayılan: 2 |
format-version (Yalnızca Apache Iceberg tarafından yönetilen tablolar) |
Iceberg tablo biçimi sürümü. Databricks, bu özelliğin el ile yapılandırılmasına karşıdır. Bkz. Apache Iceberg v3 özelliklerini kullanma. Veri tipi: IntVarsayılan: 2 |
randomizeFilePrefixes |
true bölüm bilgileri yerine bir dosya yolu için rastgele ön ek oluşturmak için.Veri tipi: BooleanVarsayılan: false |
targetFileSize |
Dosya ayarlama için bayt veya daha yüksek birim cinsinden hedef dosya boyutu. Örneğin, 104857600 (bayt) veya 100mb.Bkz. Veri dosyası boyutunu denetleme. Veri tipi: StringVarsayılan: (yok) |
parquet.compression.codec |
Bir tablonun sıkıştırma codec'i. Geçerli değerler: ZSTD, SNAPPY, GZIP, LZ4, BROTLI (destek biçime göre değişir)Bu özellik, tabloya gelecek tüm yazma işlemlerinde kümeyi veya oturum varsayılanını ( spark.sql.parquet.compression.codec ) geçersiz kılarak seçilen codec bileşenini kullanmasını sağlar. Ancak, tek seferlik DataFrame .write.option("compression", "...") ayarları yine de önceliklidir. Databricks Runtime 16.0 ve sonraki sürümlerde kullanılabilir. Mevcut dosyaların otomatik olarak yeniden yazılmadığını unutmayın. Var olan verileri seçtiğiniz biçimle yeniden sıkıştırmak için kullanın OPTIMIZE table_name FULL.Veri tipi: StringVarsayılan: ZSTD |
parquet.format.version (Yalnızca Delta Lake) |
Veri dosyaları yazılırken kullanılan Parquet biçimi sürümü. Bunu 2.12.0 gelişmiş kodlamalar, v2 veri sayfası üst bilgileri ve INT64 zaman damgalarını etkinleştirecek şekilde ayarlamak sorgu performansını geliştirebilir ve depolama alanı ayak izini azaltabilir.Geçerli değerler 1.0.0 sürümlere karşılık gelen ve 2.12.0değerleridir.Bu özellik Delta Lake ve Apache Iceberg tablolarında ayarlanabilir. Bazı OSS Iceberg okuyucuları Parquet v2 kodlamalarını desteklemeyebilir. Bkz. Sınırlamalar. Bkz. Parquet v2. Veri tipi: StringVarsayılan: 1.0.0 |
appendOnly |
true tablonun sadece eklenebilir olmasını sağlamak. Yalnızca ekleme tabloları, var olan kayıtları silmeye veya mevcut değerleri güncelleştirmeye izin vermez.Veri tipi: BooleanVarsayılan: false |
autoOptimize.autoCompact |
Küçük dosya sorunlarını azaltmak için tablo bölümleri içindeki küçük dosyaları otomatik olarak birleştirir. Kabul eder auto (önerilen), true, legacyveya false.Bkz. Otomatik sıkıştırma. Veri tipi: StringVarsayılan: (yok) |
checkpoint.writeStatsAsJson |
true sütununun denetim noktalarına JSON biçiminde dosya istatistikleri yazmak için stats .Veri tipi: BooleanVarsayılan: false |
checkpoint.writeStatsAsStruct |
true sütununun kontrol noktalarına dosya istatistiklerini yapı formatında yazmak ve stats_parsed, partitionValues_parsed için bölüm değerlerini yapı olarak yazmak.Veri tipi: BooleanVarsayılan: true |
checkpointPolicy |
classic klasik denetim noktaları için.
v2 v2 denetim noktaları için.Bkz. Sıvı kümeleme ile tablolar içinCheckpoint V2 ve Uyumluluk. Veri tipi: StringVarsayılan: classic |
columnMapping.mode |
Farklı adlar kullanan tablo sütunları ve ilgili Parquet sütunları arasında sütun eşlemesini etkinleştirir. Geçerli değerler: none, name ve id.Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma konusuna bakın. Not: Etkinleştirildiğinde columnMapping.mode otomatik olarak etkinleştirilir randomizeFilePrefixes.Veri tipi: DeltaColumnMappingModeVarsayılan: none |
compatibility.symlinkFormatManifest.enabled (Yalnızca Delta Lake) |
true delta Lake tablosunu tablodaki tüm yazma işlemlerinin bildirimleri otomatik olarak güncelleştirecek şekilde yapılandırma.Veri tipi: BooleanVarsayılan: false |
enableChangeDataFeed |
true öğesini değişim veri beslemesini etkinleştirmek için kullanın.Bkz. Değişiklik veri akışını kullanma. Veri tipi: BooleanVarsayılan: false |
enableTypeWidening |
true tür genişletmeyi etkinleştirmek için.Bkz. Tür genişletme. Veri tipi: BooleanVarsayılan: false |
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 Yalıtım düzeyleri (WriteSerializable ve Serializable). Veri tipi: StringVarsayılan: WriteSerializable |
randomPrefixLength |
randomizeFilePrefixes
true olduğunda rastgele önekler için oluşturulacak karakter sayısı.Veri tipi: IntVarsayılan: 2 |
setTransactionRetentionDuration |
Yeni anlık görüntülerin işlem tanımlayıcılarını (örneğin, SetTransactions) koruduğu en kısa süre. Yeni anlık görüntüler, bu özellik tarafından belirtilen süreye eşit veya ondan eski olan işlem kimliklerinin süresinin dolmasını ve dikkate alınmamasını sağlar. Yazmaların tek seferde etkili olmasını sağlamak için SetTransaction tanımlayıcı kullanılır. Ayrıntılar için bkz. Bir kez etkili tablo yazma işlemleri için kullanmaforeachBatch.Veri tipi: CalendarIntervalVarsayılan: (yok) |