Aracılığıyla paylaş


VACUUM

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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_logtü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.enabledfalseolarak 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

  • 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.

  • DRY RUN

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

  • FULL veya LITE

    Şunlar için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi 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çin VACUUM 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

  • table_name

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

  • RETAIN num HOURS

    Bekletme eşiği.