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'te arşiv desteğiyle, Delta Lake tablolarını içeren bulut nesne depolamada bulut tabanlı yaşam döngüsü politikaları kullanabilirsiniz. Delta Lake tablosunda arşiv desteğini etkinleştirme, Azure Databricks'e tabloda belirtilen süreden daha eski dosyaları yoksaymasını bildirir.

Bulut yaşam döngüsü politikaları, eski dosyaları arşivsel bir depolama katmanına taşıyarak depolama maliyetlerini azaltır. Arşiv desteği olmadan, bir yaşam döngüsü politikası Delta Lake tablosuna yönelik sorguları bozabilir, çünkü sorguların okuduğu veri dosyaları artık kullanılabilir değildir. Neden arşiv desteğini etkinleştirmelisiniz?.

Arşiv desteği ne zaman kullanılmalıdır

Aşağıdakilerin tümü doğruysa, bir tabloda arşiv desteğini etkinleştirin:

  • Tablonun veri dosyalarını dosya oluşturma süresine göre arşivleyen bir yaşam döngüsü ilkesi kullanırsınız.
  • Tabloya karşı yapılan çoğu sorgu, son verileri okur veya arşivlenmiş dosyaları hariç tutar.
  • Arşivlenmiş veri gerektiren sorgular nadirdir ve sorguyu tekrar çalıştırmadan önce birinin bu dosyaları bulut sağlayıcınızın deposuna geri yüklemesini bekleyebilirsiniz. Bkz. Arşivlenmiş dosyaları geri yükleme.

Sorgularınız düzenli olarak tablonun tam geçmişini tarıyorsa arşiv desteğini kullanmayın. Arşivlenmiş dosya gerektiren sorgular başarısız olur. Arşiv desteği, erişim zamanı veya etiketlere dayalı yaşam döngüsü politikalarıyla da çalışmaz. Bkz. Sınırlamalar.

Gereksinimler

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

Arşiv desteğini neden etkinleştirmelisiniz?

Arşiv desteği, arşivlenmiş dosyalara dokunmadan sadece doğru sonuçları veren sorgulara izin verir. Bu sorgular şunlardan birini içerir:

  • Yalnızca sorgu meta verileri.
  • Arşivlenmiş dosyaların taranması gerektirmeyen filtrelere sahip olun.

Arşivlenmiş dosyalarda veri gerektiren tüm sorgular başarısız olur.

Önemli

Azure Databricks, arşivlenmiş dosyaların doğru sonucu döndürmesini gerektiren sorgular için hiçbir zaman sonuç döndürmez.

Azure Databricks'te bir tablo için arşiv desteğini etkinleştirmek, bulut nesne depolamanız için tanımlanan yaşam döngüsü ilkelerini oluşturmaz veya değiştirmez. Bkz . Yaşam döngüsü yönetimi geçiş kuralını değiştirme.

Arşiv desteği olmadan, veri dosyaları veya işlem günlüğü dosyaları arşivlenen konumlara taşınmış ve sorgulandıklarında kullanılamaz durumda olabileceğinden, Delta Lake tablolarına yönelik işlemler bozulabilir. Arşivleme desteği, mümkün olduğunda arşivlenmiş verilerin sorgulanmaması için iyileştirmeler sağlar. Ayrıca sorguları tamamlamak için arşiv depolama alanından geri yüklenmesi gereken dosyaları tanımlamak için yeni söz dizimi ekler.

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

Azure Databricks'teki arşiv desteği bu sorguları Delta Lake tabloları üzerinde optimize eder.

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 göz ardı edin ve tablonun geri kalanında bakım yapın.
Veriyi üzerine yazan veya verileri silen DDL ve DML ifadeleri, bunlar arasında REPLACE TABLE, INSERT OVERWRITE, TRUNCATE TABLE, ve 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.

Erken hata ve hata iletileri

Doğru sonuç elde etmek için arşivlenmiş dosyaları taramak zorunda olan sorgular için, Delta Lake için arşiv desteğinin yapılandırılması şu etkileri sağlar:

  • Sorgular arşivlenmiş 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, SHOW ARCHIVED FILES söz dizimini kullanarak geri yüklenmesi gereken dosyaların raporunu oluşturabilir. Bkz. Arşivlenmiş dosyaları gösterme.

Önemli

hatasını Not enough files to satisfy LIMITalırsanız, tablonuzda LIMITtarafından belirtilen kayıt sayısını karşılamak için arşivlenmemiş dosyalarda yeterli veri satırı yoktur. Belirtilen LIMIT karşılamak için yeterli arşivlenmemiş satır bulmak amacıyla LIMIT yan tümcesini düşürün. Bkz. Sınırlamalar.

Arşiv desteğini etkinleştirme

Delta Lake tabloları için arşiv desteğini, temel bulut yaşam döngüsü yönetim politikasında yapılandırılmış arşiv aralığını manuel olarak belirterek etkinleştirirsiniz.

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

timeUntilArchived zamanı ayarlamak, Azure Databricks'e Delta Lake tablonuzda belirtilen zaman aralığından daha eski dosyaları yoksayması talimatını verir. Bu ayar, bulut hesabınızın yaşam döngüsü ilkelerinden ayrıdır. Birinde yapılan değişiklikler diğerini etkilemez. Bulut hesabınızdaki yaşam döngüsü ilkesini güncelleştirirseniz Delta Lake tablonuzdaki arşiv ayarını da güncelleştirmeniz gerekir. Bkz . Yaşam döngüsü yönetimi geçiş kuralını değiştirme.

Bulut hesabınızda yeni bir yaşam döngüsü ilkesi ayarladığınızda değişikliklerin geçerli olması 24 saate kadar sürebilir. Bkz . Yaşam döngüsü yönetimi ilkesi yürütme.

Bulut nesne depolamanız için yaşam döngüsü ilkeleri ayarlanmadan bu ayarı etkinleştirirseniz, arşivleme desteği sorguların başarılı olmasını sağlar ve sonuçlar arşivleme için işaretlenmiş dosyalardan alınan verileri içerir. Bkz Geri yüklenen verilerin örneklenmesi Azure Databricks tarafından nasıl yapılır?.

Uyarı

Bulut yaşam döngüsü ilkeniz Delta işlem günlüğünü (_delta_log/ dizin) arşivlemiyor olmalıdır. Bkz. Sınırlamalar.

Önemli

Arşiv desteği tamamen uyumlu Azure Databricks hesaplama ortamlarına dayanır ve sadece Delta Lake tabloları için ç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 kullanın SHOW ARCHIVED FILES.

SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];

Bu işlem, arşivlenmiş dosyalar için dosya adlarını Spark DataFrame olarak döndürür. Nesne depolama sağlayıcınızdan belgelenen yönergeleri izleyerek gerekli arşivlenmiş dosyaları geri yükleyin. Bkz. Arşivlenmiş dosyaları geri yükleme.

Azure Databricks'in geri yüklenen verileri nasıl denetlediği hakkında bilgi için bkz . Geri yüklenen veriler için Azure Databricks örneği nasıl yapılır?.

Not

Bu işlem sırasında Delta Lake yalnızca işlem günlüğünde yer alan veri istatistiklerine erişebilir. Varsayılan olarak, tablodaki ilk 32 sütunda toplanan istatistikler şunlardır:

  • En düşük değerler
  • En yüksek değerler
  • Null değer sayımları
  • Toplam kayıt sayısı

Döndürülen dosyalar, bir koşulu yerine getiren kayıtların dosyada mevcut olup olmadığı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.

Arşivlenmiş dosyaları geri yükleme

Geri yükleme gerektiren tüm dosyaları tanımlamak için, arşivlenmiş dosyaların listesini görüntülemek için kullanın SHOW ARCHIVED FILES .

Dosyaları çevrimiçi depolama katmanına geri yüklemek için yeniden doldurma API'lerini kullanın. Bkz. Arşiv katmanından blob yeniden doldurma.

Dosyaları bulut sağlayıcısı depolama alanınıza geri yükledikten sonra tablonuzu sorgulayabilirsiniz. Arşiv desteği, geri yüklenen dosyaları otomatik olarak tanır. Azure Databricks'in geri yüklenen verileri nasıl denetlediği hakkında bilgi için bkz . Geri yüklenen veriler için Azure Databricks örneği nasıl yapılır?.

Arşivlenmiş verileri güncelleştirme veya silme

Arşivlenmiş dosyalardaki verileri etkileyen bir MERGE, UPDATEveya DELETE işlemi çalıştırdığınızda işlem başarısız olur. Bu işlemleri çalıştırmak için verileri hızlı almayı destekleyen bir depolama katmanına geri yüklemeniz gerekir. Geri yüklemeniz gereken dosyaları belirlemek için kullanın SHOW ARCHIVED FILES (bkz . Arşivlenmiş dosyaları geri yükleme).

Geri yüklenen veriler için Azure Databricks nasıl örnekleme yapar?

Azure Databricks arşiv desteği etkinleştirilmiş bir tablo üzerinde tarama hazırladığında, dosyaların geri yüklenip geri yüklenmediğini belirlemek için sorgunun gerektirdiği belirtilen saklama süresinden eski dosyaları örnekler. Sonuçlar arşivlendiği varsayılan örnek dosyaların geri yüklendiğini gösteriyorsa, Azure Databricks sorgu için tüm dosyaların geri yüklendiğini ve sorgu işlemlerinin gerçekleştirildiğini varsayar. Sonuçlar arşivleme için işaretlenen dosyalardan alınan verileri içerir.

Örnekleme tüm sorgular için geçerli olmayabilir, bkz. Sınırlamalar.

Sınırlamalar

Arşiv desteği şu sınırlamalara sahiptir:

  • Arşivleme desteği yalnızca veri dosyaları için geçerlidir. Delta işlem günlüğündeki (_delta_log/ dizin) dosyalar arşivlenmiş bir depolama katmanına taşınırsa, tablo tamamen erişilemez hale gelir ve tabloya karşı tüm sorgular başarısız olur. Yolun arşivlemede yer almaması için _delta_log/ bulut yaşam döngüsü ilkenizi yapılandırmanız gerekir. Bkz. S3 Yaşam Döngüsü yapılandırma örnekleri.
  • 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 DROP COLUMN kullanamazsınız.
  • REORG TABLE APPLY PURGE elinden gelenin en iyisini yapmaya çalışır, ancak yalnızca silme vektör dosyaları ve arşivlenmemiş başvuru 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.
  • LIMIT arşiv desteği etkinleştirilmiş tablolardaki sorgular, geri yüklenen veriler için örneklemeyi tetiklemez. Bir tablonun verileri geri yüklenirse, çoğu sorgu geri yüklenen verileri sorgularken başarılı olur, ancak sorgu LIMIT bir DELTA_ARCHIVED_FILES_IN_LIMIT hata döndürür. Bkz Geri yüklenen verilerin örneklenmesi Azure Databricks tarafından nasıl yapılır?.

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ği delta.timeUntilArchived aynı aralıkta güncelleştirmeniz gerekir.

Arşivlenmeden önceki zaman aralığı kısaltılırsa (dosya oluşturulmasından sonraki süre daha kısa), Delta Lake tablosu için arşiv desteği tablo özelliği güncellendikten sonra 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 (arşivleme tetiklenmeden önce daha fazla zaman eklemek için), özelliği delta.timeUntilArchived yeni değere güncelleştirmek hatalara neden olabilir. Bulut sağlayıcıları, veri saklama ilkeleri değiştirildiğinde arşivlenmiş depolamadan dosyaları 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, delta.timeUntilArchived özelliğini 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 arşivlenir.
  2. 30 gün boyunca hiçbir yeni dosya arşivlenmemiştir (ilke genişletildiğinde arşivlenmeyen en eski dosyalar 60 gündür).
  3. 30 gün sonra yaşam döngüsü ilkesi arşivlenen tüm verileri doğru şekilde açıklar.

delta.timeUntilArchived ayarı, 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üresinde, arşivlenmiş dosyaları sorgulamaktan kaçınmak için şu yaklaşımlardan birini kullanabilirsiniz:

  1. Tüm dosyaların arşivlenebileceği 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 yine de bulut sağlayıcısı tarafından arşivlenmesi gerekir. Bu hataya neden olmaz, ancak sorgulanabilecek bazı veri dosyalarını yoksayar.
    • 30 gün sonra delta.timeUntilArchived90 daysolarak güncelleştirin.
  2. Gecikme süresi boyunca geçerli aralığı yansıtacak şekilde her gün delta.timeUntilArchived ayarı 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 delta.timeUntilArchived ayarını 67 days olarak ayarlamak, arşivlenen 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 hangi verilerin arşivlenmesini değiştirmez. Yalnızca Azure Databricks'in arşivlenmiş gibi davrandığı verileri değiştirir.