Aracılığıyla paylaş


Azure Databricks'te arşiv desteği

Önemli

Bu özellik Databricks Runtime 13.3 LTS ve üzeri için Genel Önizleme sürümündedir.

Azure Databricks'teki arşiv desteği, Delta tabloları içeren bulut nesne depolamasında bulut tabanlı yaşam döngüsü ilkelerini kullanmanızı sağlayan bir özellik koleksiyonu sunar.

Arşiv desteği olmadan, veri dosyaları veya işlem günlüğü dosyaları arşivlenmiş konumlara taşındığından ve sorgulandığında kullanılamadığından Delta tablolarına yönelik işlemler kesilebilir. Arşivleme desteği, mümkün olduğunda arşivlenmiş verilerin sorgulanmasını önlemek için iyileştirmeler sağlar ve sorguları tamamlamak için arşivden geri yüklenmesi gereken dosyaları tanımlamak için yeni söz dizimi ekler.

Önemli

Azure Databricks yalnızca Azure Arşiv için arşiv desteğine sahiptir. Yaşam döngüsü yönetimiyle maliyetleri iyileştirme hakkında Azure belgelerine bakın.

Arşivlenmiş veriler için en iyi duruma getirilmiş sorgular

Azure Databricks'teki arşiv desteği Delta tablolarında aşağıdaki sorguları iyileştirir:

Sorgu Yeni davranış
SELECT * FROM <table_name> LIMIT <limit> [WHERE <partition_predicate>] Arşivlenen dosyaları otomatik olarak yoksayın ve arşivlenmemiş bir depolama katmanındaki verilerden sonuç döndür.
Delta Lake bakım komutları: OPTIMIZE, ZORDER, ANALYZE, PURGE Arşivlenmiş dosyaları otomatik olarak yoksayın ve tablonun geri kalanında bakım çalıştırın.
Aşağıdakiler dahil olmak üzere verilerin üzerine yazan veya verileri silen DDL ve DML deyimleri: REPLACE TABLE, INSERT OVERWRITE, TRUNCATE TABLE, DROP TABLE Hedef arşivlenmiş veri dosyaları için işlem günlüğü girdilerini silindi olarak işaretleyin.
FSCK REPAIR TABLE Arşivlenmiş dosyaları yoksayın ve yalnızca yaşam döngüsü ilkesine ulaşmamış dosyaları denetleyin.

Bkz. Sınırlamalar.

Erken hata ve hata iletileri

Arşivlenmiş dosyaları doğru sonuçlar oluşturmak üzere taraması gereken sorgular için Delta Lake için arşiv desteğinin yapılandırılması aşağıdakileri sağlar:

  • Sorgular arşivdeki dosyalara erişmeye çalıştığında erken başarısız olur ve boşa harcanan işlem azaltılır ve kullanıcıların sorguları hızla uyarlayıp yeniden çalıştırmasına olanak sağlar.
  • Hata iletileri, sorgu arşivlenmiş dosyalara erişmeye çalıştığından kullanıcılara bir sorgunun başarısız olduğunu bildirir.

Kullanıcılar söz dizimini kullanarak SHOW ARCHIVED FILES geri yüklenmesi gereken dosyaların raporunu oluşturabilir. Bkz. Arşivlenmiş dosyaları gösterme.

Arşiv desteğini etkinleştirme

Aşağıdaki örnek söz diziminde olduğu gibi temel alınan bulut yaşam döngüsü yönetim ilkesinde yapılandırılan arşiv aralığını el ile belirterek Delta tabloları için Azure Databricks'te arşiv desteğini etkinleştirirsiniz:

ALTER TABLE <table_name> SET TBLPROPERTIES(delta.timeUntilArchived = 'X days');

Delta Lake, bulut hesabınızda yapılandırılan yaşam döngüsü yönetim ilkeleriyle doğrudan etkileşim kurmaz. Bulut hesabınızda ilkeyi güncelleştirirseniz, Delta tablonuzda ilkeyi güncelleştirmeniz gerekir. Bkz . Yaşam döngüsü yönetimi geçiş kuralını değiştirme.

Önemli

Arşiv desteği tamamen uyumlu Azure Databricks işlem ortamlarına dayanır ve yalnızca Delta tablolarında çalışır. Arşiv desteğini yapılandırmak, OSS Delta Lake istemcilerinde veya Databricks Runtime 12.2 LTS ve altında davranışı, uyumluluğu veya desteği değiştirmez.

Arşivlenmiş dosyaları göster

Belirli bir sorguyu tamamlamak için geri yüklenmesi gereken dosyaları tanımlamak için aşağıdaki örnekte olduğu gibi kullanın SHOW ARCHIVED FILES:

SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];

Bu işlem, arşivlenen dosyalar için URI'leri Spark DataFrame olarak döndürür.

Not

Delta Lake yalnızca bu işlem sırasında işlem günlüğünde yer alan veri istatistiklerine erişebilir (en düşük değer, en yüksek değer, null sayısı ve ilk 32 sütun için toplam kayıt sayısı). Döndürülen dosyalar, dosyada bir koşulu yerine getiren kayıtların bulunup bulunmadığını belirlemek için okunması gereken tüm arşivlenmiş dosyaları içerir. Databricks, geri yüklenmesi gereken dosya sayısını azaltmak için verilerin bölümlendiği, z sıralı veya kümelendiği alanları içeren koşul sağlamayı önerir.

Sınırlamalar

Şu sınırlamalar geçerlidir:

  • Dosya oluşturma zamanına bağlı olmayan yaşam döngüsü yönetimi ilkeleri için destek yoktur. Buna erişim zamanı tabanlı ilkeler ve etiket tabanlı ilkeler dahildir.
  • Arşivlenmiş dosyaları olan bir tabloda kullanamazsınız DROP COLUMN .
  • REORG TABLE APPLY PURGE en iyi çabayı gösterir, ancak yalnızca arşivlenmemiş silme vektör dosyaları ve başvuruda bulunan veri dosyaları üzerinde çalışır. PURGE arşivlenmiş silme vektör dosyalarını silemiyor.
  • Yaşam döngüsü yönetimi geçiş kuralının genişletilmesi beklenmeyen davranışlara neden olur. Bkz . Yaşam döngüsü yönetimi geçiş kuralını genişletme.

Yaşam döngüsü yönetimi geçiş kuralını değiştirme

Bulut yaşam döngüsü yönetimi geçiş kuralınızın zaman aralığını değiştirirseniz özelliğini delta.timeUntilArchivedgüncelleştirmeniz gerekir.

Arşivlemeden önceki zaman aralığı kısaltılırsa (dosya oluşturma işleminden bu yana daha az zaman), Tablo özelliği güncelleştirildikten sonra Delta tablosu için arşivleme desteği normal şekilde çalışmaya devam eder.

Yaşam döngüsü yönetimi geçiş kuralını genişletme

Arşivlemeden önceki zaman aralığı uzatılırsa (dosya oluşturma işleminden bu yana daha fazla süre), özelliğin delta.timeUntilArchived yeni değere güncelleştirilmesi hatalara neden olabilir. Bulut sağlayıcıları, veri saklama ilkeleri değiştirildiğinde dosyaları arşivlenmiş depolama alanının dışına otomatik olarak geri yüklemez. Bu, daha önce arşivleme için uygun olan ancak şimdi arşivleme için uygun olarak kabul edilmeyen dosyaların hala arşivlenmiş olduğu anlamına gelir.

Önemli

Hataları önlemek için, özelliğini delta.timeUntilArchived hiçbir zaman en son arşivlenen verilerin gerçek yaşından büyük bir değere ayarlamayın.

Arşivleme zaman aralığının 60 günden 90 güne değiştirildiği bir senaryo düşünün:

  1. İlke değiştiğinde, 60 ile 90 günlük arasındaki tüm kayıtlar zaten arşivlenir.
  2. 30 gün boyunca hiçbir yeni dosya arşivlenmemiştir (arşivlenmeyen en eski dosyalar, ilke genişletildiğinde 60 gündür).
  3. 30 gün geçtikten sonra yaşam döngüsü ilkesi arşivlenen tüm verileri doğru şekilde açıklar.

Ayar, delta.timeUntilArchived Delta işlem günlüğü tarafından kaydedilen dosya oluşturma süresine göre ayarlanan zaman aralığını izler. Temel alınan ilke hakkında açık bilgisine sahip değildir. Eski arşiv eşiği ile yeni arşiv eşiği arasındaki gecikme süresi boyunca, arşivlenmiş dosyaların sorgulanmaması için aşağıdaki yaklaşımlardan birini kullanabilirsiniz:

  1. Tüm dosyaların arşivlenmiş olması için yeterli süre geçene kadar ayarı delta.timeUntilArchived eski eşikle bırakabilirsiniz.
    • Yukarıdaki örnekten sonra, ilk 30 gün boyunca her gün başka bir günün değeri Azure Databricks tarafından arşivlenmiş olarak kabul edilir ancak henüz bulut sağlayıcısı tarafından arşivlenmez. Bu hataya neden olmaz, ancak sorgulanabilecek bazı veri dosyalarını yoksayar.
    • 30 gün sonra öğesini olarak 90 daysgüncelleştirindelta.timeUntilArchived.
  2. Gecikme süresi boyunca geçerli aralığı yansıtacak şekilde ayarı delta.timeUntilArchived her gün güncelleştirebilirsiniz.
    • Bulut ilkesi 90 gün olarak ayarlanmış olsa da arşivlenen verilerin gerçek yaşı gerçek zamanlı olarak değişir. Örneğin, 7 gün sonra ayarı arşivdeki delta.timeUntilArchived67 days tüm veri dosyalarının yaşını doğru şekilde yansıtır.
    • Bu yaklaşım yalnızca sık erişimli katmanlardaki tüm verilere erişmeniz gerekiyorsa gereklidir.

Not

değerinin delta.timeUntilArchived güncelleştirilmesi, arşivlenen verileri değiştirmez. Yalnızca Azure Databricks'in arşivlenmiş gibi davrandığı verileri değiştirir.