Aracılığıyla paylaş


VACUUM

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime

Tablo dizininden kullanılmayan dosyaları kaldırma.

Not

Bu komut Delta, Apache Spark veya Apache Iceberg tablosu üzerinde çalışmanıza bağlı olarak farklı çalışır.

Delta tablosunu vakumlama

Delta tablosuyla ilişkili dizinleri yinelemeli olarak vakumlar. 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 tüm dizinleri, _delta_log öğesini içerenler dahil, 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 tablosunda çalıştırırsanız VACUUM , belirtilen veri saklama süresinden daha eski bir sürüme zaman yolculuğu yapma becerisini kaybedersiniz.

Tahmine dayalı iyileştirme etkinleştirilirse Azure Databricks, iyileştirme işleminin VACUUM bir parçası olarak işlemi otomatik olarak tetikler. Çoğu durumda el ile çalıştırmanız VACUUM gerekmez.

Uyarı

Tablodaki eski anlık görüntüler ve kaydedilmemiş dosyalar, eş zamanlı okuyucular veya yazarlar tarafından hala kullanılabiliyor olabileceğinden, saklama süresini 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 süren işlemler gerçekleştirilmediğinden emin olduğunuzda, Spark yapılandırma özelliğini spark.databricks.delta.retentionDurationCheck.enabledfalse olarak ayarlayarak bu güvenlik denetimini kapatabilirsiniz.

Apache Iceberg tablosunu temizleme

Apache Iceberg tablosuyla ilişkili dizinlerden başvurulmayan dosyaları yinelemeli olarak kaldırır.

  • Iceberg tabloları için sadece VACUUMRETAIN koşulu olmadan desteklenir.
  • Saklama süresi 7 günde sabittir.

Tahmine dayalı iyileştirme etkinleştirilirse Azure Databricks, iyileştirme işleminin VACUUM bir parçası olarak işlemi otomatik olarak tetikler. Çoğu durumda el ile çalıştırmanız VACUUM gerekmez.

Sözdizimi

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.

Parametreler

  • table_name

    Var olan bir Delta tablosunu tanımlar. Ad bir zamansal belirtim veya seçenek belirtimi içermemelidir.

  • RETAIN num HOURS

    Bekletme eşiği. Belirtilen bekletme süresi aşılırsa delta.deletedFileRetentionDuration, tablo saklama süresi kullanılır.

  • DRY RUN

    Silinecek en fazla 1000 dosya listesini döndürür.

  • FULL veya LITE

    Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 16.1 ve üstü

    FULL vakum işlemini Tam modda ç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 Lite modunda vakum işlemini ç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üğü budandığı için VACUUM LITE tamamlanamıyorsa DELTA_CANNOT_VACUUM_LITE istisnası oluşturulur.

    Varsayılan değer FULL.

Ö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');

Diğer tabloları vakumla

Delta olmayan ve Iceberg olmayan tablolarla ilişkili dizinleri yinelemeli olarak temizler ve belirlenmiş bekletme süresinden daha eski olan kaydedilmemiş dosyaları kaldırır. Varsayılan eşik değeri 7 gündür.

Bu tablolarda Azure Databricks, veriler yazıldıkçe işlemleri otomatik olarak tetikler VACUUM .

Sözdizimi

VACUUM table_name [RETAIN num HOURS]

Parametreler

  • table_name

    Var olan bir tabloyu ada veya yola göre tanımlar.

  • RETAIN num HOURS

    Bekletme eşiği.