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.
Ö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 COLUMNkullanamazsınız. -
REORG TABLE APPLY PURGEelinden gelenin en iyisini yapmaya çalışır, ancak yalnızca silme vektör dosyaları ve arşivlenmemiş başvuru veri dosyaları üzerinde çalışır.PURGEarş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.
-
LIMITarş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 sorguLIMITbirDELTA_ARCHIVED_FILES_IN_LIMIThata 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:
- İlke değiştiğinde 60 ile 90 günlük arasındaki tüm kayıtlar arşivlenir.
- 30 gün boyunca hiçbir yeni dosya arşivlenmemiştir (ilke genişletildiğinde arşivlenmeyen en eski dosyalar 60 gündür).
- 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:
- Tüm dosyaların arşivlenebileceği süre geçene kadar ayarı
delta.timeUntilArchivedeski 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.
- Gecikme süresi boyunca geçerli aralığı yansıtacak şekilde her gün
delta.timeUntilArchivedayarı 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.timeUntilArchivedayarını67 daysolarak 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.
- 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
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.