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.
Tahmine dayalı iyileştirme, Unity Kataloğu yönetilen tablolarında otomatik olarak VACUUM çalıştırır. Databricks, veri bakımını basitleştirmek ve depolama maliyetlerini azaltmak için Tüm Unity Kataloğu yönetilen tablolarında tahmine dayalı iyileştirmelerin etkinleştirilmesini önerir. Bkz. Unity Kataloğu tarafından yönetilen tablolar için tahmine dayalı optimizasyon.
Tablo tarafından artık başvurulmayan ve bekletme eşiğinden daha eski olan veri dosyalarını kaldırmak için tabloda VACUUM komutunu çalıştırın. Aşağıdaki hususlar nedeniyle düzenli olarak çalışmak VACUUM maliyet ve uyumluluk açısından önemlidir:
- Kullanılmayan veri dosyalarının silinmesi, bulut depolama maliyetlerini azaltır.
- tarafından
VACUUMkaldırılan veri dosyaları değiştirilmiş veya silinmiş kayıtlar içerebilir. Bu dosyaların bulut depolama alanından kalıcı olarak kaldırılması, bu kayıtların artık erişilebilir olmamasını sağlar.
Vakum için uyarılar
Çalıştırıldıktan VACUUM sonra veri dosyaları için varsayılan bekletme eşiği 7 gündür. Bu davranışı değiştirmek için bkz . Zaman yolculuğu sorguları için veri saklamayı yapılandırma.
VACUUM içindeki tüm dosyaları kaldırdıktan sonra boş dizinler bırakabilir. Sonraki VACUUM işlemler bu boş dizinleri siler.
Databricks, tablolar için VACUUM'yı otomatik olarak çalıştırmak amacıyla tahmine dayalı optimizasyon kullanılmasını önerir. Bkz. Unity Kataloğu tarafından yönetilen tablolar için tahmine dayalı optimizasyon.
Bazı tablo özellikleri, verileri yeniden yazmak yerine silinmiş olarak işaretlemek için meta veri dosyalarını kullanır. Bu silmeleri işlemek ve veri dosyalarını yeniden yazmak için kullanın REORG TABLE ... APPLY (PURGE) . Meta verileri yalnızca silmeleri temizleyerek verilerin yeniden yazılmasını zorlamak için bkz.
Önemli
- Databricks Runtime 13.3 LTS ve üzeri sürümlerde, Unity Catalog ile yönetilen tabloların sığ kopyalarının semantiği diğer tablolardan farklıdır. Bkz. Unity Kataloğu basit kopyalarıyla kullanma
VACUUM. -
VACUUM,_veya.ile başlayan dizinleri yoksayarak Azure Databricks tarafından yönetilmeyen dizinlerdeki tüm dosyaları kaldırır. Tablo dizininde Yapılandırılmış Akış denetim noktaları gibi ek meta veriler depoluyorsanız, gibi_checkpointsbir dizin adı kullanın.- Değişiklik veri beslemesi,
_change_datadizininde yönetilir veVACUUMkullanılarak kaldırılır. Bkz. Azure Databricks üzerinde Delta Lake değişiklik veri akışını kullanma. - Bloom filtresi dizinleri (kullanım dışı),
_delta_indexdizinini kullanır.VACUUMbu dizindeki dosyaları temizler. Bkz . Bloom filtre dizinleri (kullanım dışı).
- Değişiklik veri beslemesi,
- bekletme süresinden eski tablo sürümlerini sorgulama özelliği çalıştırıldıktan
VACUUMsonra kaybolur. - Günlük dosyaları, denetim noktası işlemlerinden sonra otomatik olarak ve eşzamansız bir şekilde silinir ve
VACUUMtarafından yönetilmez. Günlük dosyalarının varsayılan saklama süresi 30 gün olsa da, bir tabloda çalıştırmakVACUUMzaman yolculuğu için gerekli olan veri dosyalarını kaldırır.
Not
Disk önbelleğe alma etkinleştirildiğinde, bir küme silinmiş Parquet dosyalarından gelen verileri içerebilir. Bu nedenle, dosyaları silinmiş olan önceki tablo sürümlerinin verilerini sorgulamak mümkün olabilir. Kümenin yeniden başlatılması önbelleğe alınan verileri kaldırır. Bkz . Disk önbelleğini yapılandırma.
Vakum için örnek söz dizimi
VACUUM table_name -- vacuum files not required by versions older than the default retention period
VACUUM table_name DRY RUN -- do dry run to get the list of files to be deleted
Spark SQL söz dizimi ayrıntıları için bkz. VACUUM.
Scala, Java ve Python söz dizimi ayrıntıları için Delta Lake API belgelerine bakın.
Not
Databricks Runtime 18.0 ve üzeri sürümlerde bekletmeyi denetlemek için bu tablo özelliğini kullanın. Unity Kataloğu yönetilen tabloları için bu, Databricks Runtime 12.2 ve üzeri için geçerlidir.
Bakınız, zaman yolculuğu sorguları için veri saklamayı yapılandırma.
Tam ve lite modu
Önemli
Bu özellik Databricks Runtime 16.1 ve üzeri sürümlerin Genel Önizleme sürümündedir.
LITE anahtar sözcüğünü, tablo dizinindeki tüm dosyaların listelenmesinden kaçınan alternatif bir VACUUM modunu tetiklemek için vacuum ifadenizde belirtebilirsiniz.
LITE modu, artık bekletme eşiği içinde VACUUM olmayan veri dosyalarını tanımlamak için işlem günlüğünü kullanır ve bu veri dosyalarını tablodan kaldırır.
LITE modu özellikle sık VACUUM işlemleri gerektiren büyük tablolar için kullanışlıdır çünkü kaldırılacak veri dosyalarını tanımlamak için tüm dosyaları listeleme gereksinimini ortadan kaldırır.
Not
VACUUM modunda LITE çalıştırıldığında işlem günlüğünde başvurulmayan dosyalar silinmez. Örneğin, durdurulan bir işlem tarafından oluşturulan dosyalar.
VACUUM modunda LITE için aşağıdaki söz dizimini kullanın:
VACUUM table_name LITE
LITE modu aşağıdaki gereksinime sahiptir:
- Yapılandırılan işlem günlüğü saklama eşiğinde (varsayılan olarak 30 gün) en az bir başarılı
VACUUMişlemi çalıştırmış olmanız gerekir.
Bu gereksinim karşılanmazsa, VACUUM modunda LITE çalıştırmayı denediğinizde aşağıdaki hata iletisi görüntülenir. Devam etmek için VACUUMFULL modunda çalıştırmanız gerekir.
VACUUM <tableName> LITE cannot delete all eligible files as some files are not referenced by the log. Please run VACUUM FULL.
FULL modu vakum için varsayılan moddur. Aşağıdaki komutla tam modu açıkça çalıştırabilirsiniz:
VACUUM table_name FULL
Bkz. VACUUM.
Verileri yeniden yazmaya zorlamak için yalnızca meta veri silmelerini temizleme
Bu REORG TABLE komutu, APPLY (PURGE) söz dizimi ile verileri yumuşak silmeleri uygulamak için yeniden yazmanıza olanak tanır. Geçici silme işlemleri verileri yeniden yazmaz veya veri dosyalarını silmez, bazı veri değerlerinin değiştiğini belirtmek için meta veri dosyalarını kullanır. Bkz. REORG TABLE.
Yumuşak silmeleri oluşturan işlemler şunlardır:
- Sütun eşlemesi etkinleştirildiğinde sütunları kaldırma.
- Silme vektörlerinin etkinleştirildiği tüm veri değişiklikleri.
Geçici silmeler etkinleştirildiğinde, veriler silindikten veya güncelleştirildikten sonra bile eski veriler tablonun geçerli dosyalarında fiziksel olarak bulunabilir. Bu verileri tablodan fiziksel olarak kaldırmak için aşağıdaki adımları tamamlayın:
-
REORG TABLE ... APPLY (PURGE)'i çalıştırın. Bunu yaptıktan sonra, eski veriler artık tablonun geçerli dosyalarında mevcut değildir, ancak yine de zaman yolculuğu için kullanılan eski dosyalarda bulunur. - Bu eski dosyaları silmek için komutunu çalıştırın
VACUUM.
REORG TABLE işlem tamamlandıktan sonra tablonun yeni bir sürümünü oluşturur. Bu işlemden önceki geçmiş tüm tablo sürümleri eski veri dosyalarına başvurur. Kavramsal olarak bu, geçerli tablo sürümündeki OPTIMIZE veriler tutarlı kalsa bile veri dosyalarının yeniden yazıldığı komuta benzer.
Önemli
Veri dosyaları yalnızca dosyaların süresi saklama süresine göre dolduğunda VACUUM silinir. Bu, eski dosyaların süresinin dolması için VACUUM'den sonra REORG işleminin gecikmeli olarak yapılması gerektiği anlamına gelir.
VACUUM tutma süresi, tutulan maksimum geçmişin azaltılması pahasına, gerekli bekleme süresini kısaltmak için azaltılabilir.
Vakum hangi boyut kümesine ihtiyaç duyar?
için doğru küme boyutunu seçmek, VACUUMişlemin iki aşamada gerçekleştiğini anlamanıza yardımcı olur:
- İş, kaynak dizindeki dosyaları paralel olarak listelemek için tüm kullanılabilir yürütücü düğümlerini kullanarak başlar. Bu liste, silinecek dosyaları tanımlamak için işlem günlüğünde şu anda başvuruda bulunan tüm dosyalarla karşılaştırılır. Sürücü bu süre boyunca boşta durur.
- Ardından sürücü silinecek her dosya için silme komutları gönderir. Dosya silme yalnızca sürücüye yönelik bir işlemdir, yani tüm işlemler çalışan düğümleri boştayken tek bir düğümde gerçekleşir.
Databricks, özellikle uzun süre çalışan vakum işleri için maliyeti ve performansı iyileştirmek için aşağıdakileri önerir:
- Otomatik ölçeklendirme 1-4 çalışan arasında ayarlandığında ve her çalışanın 8 çekirdeği bulunduğunda, bir kümeye vakum komutu çalıştırın.
- 8 ile 32 çekirdek arasında bir sürücü seçin. Yetersiz bellek (OOM) hatalarından kaçınmak için sürücünün boyutunu artırın.
İşlemler düzenli olarak 10 binden fazla dosyayı siliyorsa veya 30 dakikadan fazla işlem süresi alıyorsa VACUUM , sürücünün boyutunu veya çalışan sayısını artırmak isteyebilirsiniz.
Kaldırılacak dosyaları tanımlarken yavaşlamanın gerçekleştiğini fark ederseniz, daha fazla çalışan düğümü ekleyin. Silme komutları çalışırken yavaşlama oluşursa, sürücünün boyutunu artırmayı deneyin.
Vakumu ne sıklıkta çalıştırmalısınız?
Databricks, fazla bulut veri depolama maliyetlerini azaltmak için tüm tablolarda VACUUM'u düzenli olarak çalıştırmanızı önerir. Vakum için varsayılan bekletme eşiği 7 gündür. Daha yüksek bir eşik ayarlamak, tablonuz için daha büyük bir geçmişe erişmenizi sağlar, ancak depolanan veri dosyalarının sayısını artırır ve sonuç olarak bulut sağlayıcınızdan daha fazla depolama maliyetine neden olur.
Neden düşük tutma eşiğine sahip bir masayı süpüremezsiniz?
Uyarı
Databricks, en az 7 günlük bir bekletme aralığı ayarlamayı kesinlikle önerir. Birkaç gün süren işleriniz varsa, uzun süreli çalışan işler henüz commit edilmemiş dosyalar yazabilir. Saklama süreniz çok kısaysa, VACUUM iş tamamlanmadan önce bu onaylanmamış dosyaları silebilir.
Tehlikeli VACUUM bir komut çalıştırmanızı engelleyen bir güvenlik denetimi var. Bu tabloda, belirtmeyi planladığınız bekletme aralığından daha uzun süren hiçbir işlemin gerçekleştirilmediğinden eminseniz, Spark yapılandırma özelliğini spark.databricks.delta.retentionDurationCheck.enabled (Delta) veya spark.databricks.iceberg.retentionDurationCheck.enabled (Iceberg) false olarak ayarlayarak bu güvenlik denetimini kapatın.
Denetim bilgileri
VACUUM denetim bilgilerini işlem günlüğüne işler.
DESCRIBE HISTORY kullanarak bir denetim olayını sorgulayın.
Vakum denetim günlüğü, çalışma alanı düzeyinde yapılandırmalar spark.databricks.delta.vacuum.logging.enabled (Delta) veya spark.databricks.iceberg.vacuum.logging.enabled (Buzdağı) tarafından denetlenmektedir. Varsayılan olarak, Unity Kataloğu yönetilen tabloları için tüm platformlarda denetim günlüğü etkinleştirilir.
Not
Dış tablolar için denetim günlüğü de varsayılan olarak etkindir.