VACUUM
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
Tablo dizininden kullanılmayan dosyaları kaldırma.
Not
Bu komut, Delta veya Apache Spark tablosu üzerinde çalışmanıza bağlı olarak farklı çalışır.
Delta tablosunu vakumlama
Delta tablosuyla ilişkili dizinleri özyinelemeli olarak vakumlama. Tüm ayrıntılar ve sınırlamalar için bkz . Kullanılmayan veri dosyalarını vakumla kaldırma.
VACUUM
Delta tarafından yönetilmeyen tablo dizininden tüm dosyaları ve artık tablo için işlem günlüğünün en son durumunda olmayan ve bekletme eşiğinden daha eski olan veri dosyalarını kaldırır.
VACUUM
alt çizgi ()_
ile başlayan ve öğesini içeren _delta_log
tüm dizinleri atlar. Tablonuzun alt çizgiyle başlayan bir sütunda bölümlenmesi bu kural için bir özel durumdur; VACUUM
hedef Delta tablosuna dahil edilen tüm geçerli bölümleri tarar. Delta tablosu veri dosyaları, depolama sistemindeki değişiklik zaman damgalarına değil Delta'nın işlem günlüğünden mantıksal olarak kaldırılma zamanına ve bekletme saatlerine göre silinir. Varsayılan eşik değeri 7 gündür.
Delta tablolarında Azure Databricks .
Delta tablosunda çalıştırırsanızVACUUM
, belirtilen veri saklama süresinden daha eski bir sürüme zaman yolculuğu yapma becerisini kaybedersiniz.
Uyarı
Eski anlık görüntüler ve kaydedilmemiş dosyalar eş zamanlı okuyucular veya yazıcılar tarafından tabloda kullanılmaya devam ettiğinden, bekletme aralığını en az 7 gün olarak ayarlamanız önerilir. Etkin dosyaları temizlerse VACUUM
, eşzamanlı okuyucular başarısız olabilir veya daha da kötüsü, henüz işlenmemiş dosyaları sildiğinizde VACUUM
tablolar bozulabilir. En uzun süre çalışan eşzamanlı işlemden daha uzun bir aralık ve herhangi bir akışın tablodaki en son güncelleştirmenin gerisinde kalabileceği en uzun süreyi seçmelisiniz.
Delta Lake tehlikeli bir komut çalıştırmanızı önlemek için bir VACUUM
güvenlik denetimine sahiptir. Databricks Runtime'da, bu tabloda, belirtmeyi planladığınız bekletme aralığından daha uzun bir işlem gerçekleştirildiğinden eminsiniz. Spark yapılandırma özelliğini spark.databricks.delta.retentionDurationCheck.enabled
false
olarak ayarlayarak bu güvenlik denetimini kapatabilirsiniz.
VACUUM table_name { { FULL | LITE } | RETAIN num HOURS | DRY RUN } [...]
Databricks Runtime 16.0 ve öncesinde söz diziminde RETAIN num HOURS
'ın DRY RUN
'den önce olması gerekir.
Önemli
VACUUM
komutunun bekletme penceresi, varsayılan olarak 7 gün olan delta.deletedFileRetentionDuration
tablo özelliği tarafından belirlenir.
Bu, son 7 gün içinde Delta tablosu sürümü tarafından artık başvurulamayacak veri dosyalarının kaldırıldığı anlamına gelir VACUUM
.
Verileri daha uzun süreler boyunca tutmak için (örneğin, daha uzun süreler boyunca zaman yolculuğu desteği sağlamak için) bu tablo özelliğini daha yüksek bir değere ayarlayın.
Aşağıdaki örnekte bu eşiğin 30 gün olarak ayarlanması gösterilmektedir:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Parametreler
-
Var olan bir Delta tablosunu tanımlar. Ad bir zamansal belirtim veya seçenek belirtimi içermemelidir.
RETAIN num HOURS
Bekletme eşiği.
DRY RUN
Silinecek en fazla 1000 dosya listesini döndürür.
FULL
veyaLITE
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 16.1 ve üzeri
FULL
, vakum işlemini tam modunda çalıştırır. Bu, veri dosyalarını bekletme süresinin dışında ve tablo dizinindeki tablo tarafından başvurulmayan tüm dosyaları siler.LITE
vakum işlemini Lite modunda çalıştırır.VACUUM
, tablo dizinindeki tüm dosyaları bulmak yerine delta işlem günlüğünü kullanarak bekletme süresi içinde hiçbir tablo sürümü tarafından başvurulmayan dosyaları tanımlar ve kaldırır. Delta günlüğü temizlendiği içinVACUUM LITE
tamamlanamıyorsa, bir DELTA_CANNOT_VACUUM_LITE özel durumu ortaya çıkar.Varsayılan değer
FULL
.
Delta olmayan bir tabloyu vakumlama
Delta olmayan tabloyla ilişkili dizinleri özyinelemeli olarak vakumlar ve bekletme eşiğinden daha eski olan kaydedilmemiş dosyaları kaldırır. Varsayılan eşik değeri 7 gündür.
Delta olmayan tablolarda Azure Databricks, veriler yazıldıkçe işlemleri otomatik olarak tetikler VACUUM
.
Sözdizimi
VACUUM table_name [RETAIN num HOURS]
Parametreler
-
Var olan bir tabloyu ada veya yola göre tanımlar.
RETAIN num HOURS
Bekletme eşiği.