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.
Şunun için geçerlidir: Databricks SQL
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.enabled
false
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
VACUUM
RETAIN
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
-
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
veyaLITE
Şunun için geçerlidir:
Databricks SQL
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çinVACUUM 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
-
Var olan bir tabloyu ada veya yola göre tanımlar.
RETAIN num HOURS
Bekletme eşiği.