Azure Databricks iyileştirme önerileri

Yavaş sorgular ve yüksek hesaplama maliyetleri genellikle birkaç temel nedenden kaynaklanır: bir sorgunun ihtiyaç duyduğundan daha fazla veri okumak, düğümler arasında veri kaydırmak, kötü bir sorgu planı seçmek veya değişmeyen dosyaları yeniden yazmak. Azure Databricks, bu nedenlerin çoğunu büyük ölçekli ETL işlemeden ad hoc, etkileşimli sorgulara kadar uzanan iş yüklerinde otomatik olarak ele alır. Diğer optimizasyonlar ise sadece onları etkinleştirdiğinizde veya belirli bir iş yükü için ayarladığınızda geçerlidir.

Bu sayfa, çoğu iş yükü için önerilerle başlar, ardından optimizasyonları otomatik mi çalıştıklarına göre gruplara ayırır ve her birinin çözdüğü sorunu anlatır. Çoğu Databricks Runtime optimizasyonu, Azure Databricks'teki tablolar için varsayılan format olan Delta Lake'i gerektirir.

Bu önerilerle başlayın

Bu seçenekler, çoğu iş yükü için en büyük performans artışını sağlar. Ayrıca bu sayfadaki birçok otomatik optimizasyonun tam verimle çalışmasına yardımcı oluyorlar.

  • Tablo düzeni için sıvı kümeleme kullanın.Sıvı kümeleme, tablo bölümlemesinin yerini alır ve ZORDER. Verileri sık sık filtrelediğiniz sütunlara göre düzenler, bu da veri atlamayı ve dinamik dosya budama işlemlerini iyileştirir.
  • Unity Catalog yönetilen tablolarını kullanın.Öngörücü optimizasyon yönetilen tabloların bakımını otomatik olarak yapar. Bkz. Delta Lake ve Apache Iceberg için Unity Catalog tarafından yönetilen tablolar.
  • Photon destekli işlemeyi kullanın. Öngörücü I/O için Photon gereklidir; dinamik dosya budama için de MERGE, UPDATE ve DELETE ifadelerinde Photon gereklidir. Bkz . Photon nedir?.
  • Silme vektörlerini etkinleştirin. Predictive I/O, güncellemeler, silme ve birleştirmeler sırasında tüm dosyaları yeniden yazmaktan kaçınmak için silme vektörleri kullanır ve satır düzeyinde eşzamanlılık için bunlar gereklidir. Delta Lake tabloları için, silme vektörlerini açıkça etkinleştirmeniz gerekir. Bkz . Databricks'te silme vektörleri.
  • En son Databricks Runtime'ı kullanın. Yeni sürümler en yeni performans iyileştirmelerini içeriyor. Bazı optimizasyonlar minimum Databricks Runtime sürümü veya Photon destekli hesaplama gerektirir. Gereksinimler için ilgili sayfaya bakın.

Otomatik iyileştirmeler

Bu optimizasyonlar varsayılan olarak açıktır. Etkinleştirmenize gerek yok, ancak bazıları tablolarınız ve işlem kaynaklarınız belirli koşulları karşıladığında, örneğin Photon kullanmak veya tablo istatistiklerini güncel tutmak gibi durumlarda daha fazla fayda sağlar.

  • Disk önbellekleme: Aynı uzak Parquet ve Delta Lake veri dosyalarını tekrar tekrar okuyan sorguları hızlandırır. Azure Databricks, dosyaların kopyalarını hesaplama düğümlerinin yerel depolamasında önbelleğe alır; böylece sonraki okumalar yerel olarak gerçekleştirilir. Azure Databricks, bunu destekleyen worker instance tiplerinde bunu otomatik olarak etkinleştirir.
  • Dinamik dosya budama: Delta Lake tablolarındaki birleşmelerde eşleşen satırlar içeremeyecek dosyaları atlar. MERGE, UPDATE, ve DELETE ifadeler dinamik dosya budama için Photon destekli hesaplama gerektirir.
  • Low shuffle merge: Her dosyadaki birkaç satırı güncelleyen veya silen MERGE işlemleri hızlandırır. Düşük shuffle merge, değiştirilmemiş satırları karıştırmadan işler ve mevcut veri düzenini korur.
  • Uyarlanabilir sorgu yürütme: Sorgular çalışırken, verinin gerçek boyutuna göre sorgu planlarını yeniden optimize eder. Bu, yavaş join stratejilerini, çok fazla küçük görevi ve yanlış tahminlerden kaynaklanan çarpık görevleri düzeltir.
  • Öngörücü I/O: Photon özellikli işlem kaynaklarında güncellemeler, silmeler ve birleştirmeler sırasında veri taramalarını hızlandırır ve yeniden yazılan verileri azaltır.
  • Maliyet tabanlı optimizer: Tablo ve sütun istatistiklerini kullanarak özellikle birden fazla join içeren sorgular için verimli sorgu planları seçer. Maliyet tabanlı optimizasyon aracı istatistiklere dayanır, bu yüzden toplayın ve güncel tutun.
  • Öngörücü optimizasyon: Unity Catalog tarafından yönetilen tablolarda VACUUM, ANALYZE ve OPTIMIZE işlemlerini otomatik olarak çalıştırır; böylece tablo bakımını planlamanıza gerek kalmaz. Ayrıca, maliyet tabanlı optimizatorun kullandığı istatistikleri güncel tutar. Hesabınızda etkin olup olmadığını kontrol etmek için, öngörücü optimizasyonun etkin olup olmadığını doğrula.

Yapılandırdığınız optimizasyonlar

Bu optimizasyonlar onları açmanızı, ayarlamanızı veya tablo yapılandırmasını değiştirmenizi gerektirir. Bir iş yükü, varsayılan ayarların kapsamadığı davranışa ihtiyaç duyduğunda bunları kullanın.

  • Arşiv desteği: Bulut yaşam döngüsü politikaları eski tablo dosyalarını depolama maliyetlerini azaltmak için arşiv depolama katmanlarına taşıdığında kullanın. Arşivleme desteği, Azure Databricks'e belirli bir dönemden eski dosyaları görmezden gelmesini söyler, böylece yaşam döngüsü politikası yalnızca son verileri okuyan sorguları bozmaz. Bu özellik Genel Önizleme aşamasındadır.
  • Aralık birleştirmesi: Birleştirmelerde aralık içinde bir nokta veya aralık örtüşmesi koşulu kullanıldığında kullanın. Databricks SQL aralık birleştirmelerini otomatik olarak optimize eder. Diğer işlem ortamlarında, aralık birleştirmelerini join ipuçları veya oturum yapılandırmasıyla ayarlayın.
  • İzolasyon seviyeleri ve yazma çakışmaları: Aynı tabloya yapılan eşzamanlı yazmalar çakıştığında veya bir iş yükü varsayılan WriteSerializable izolasyon seviyesinden daha sıkı garantiler gerektirdiğinde kullanılır. Serileştirilebilir izolasyon, eşzamanlı yazma işlemlerinde iş hacmini azaltır. Satır düzeyinde eşzamanlılık, gereksinimlerini karşılayan tablolarda eşzamanlı yazımlar arasındaki birçok çatışmayı otomatik olarak çözer.
  • Tam metin arama dizinleri: Sorgular metin sütunlarında alt dizeleri veya sözcükleri search ya da isearch işlevleriyle ararken kullanılır. İndeks, eşleşen satırlar içeremeyen dosyaları atlar. Bu özellik Beta sürümündedir.

Not

Bloom filtre indeksleri, artık kullanılmayan bir veri atlama özelliğidir. Yazma yükü ekliyor ve ayarlaması zordur. Eğer tablolarınızda varsa, onları değiştirmek ve kaldırmak için Bloom filtre indeksleri (kullanımdan kaldırıldı) sayfasına bakın.

Diğer performans özellikleri

Yavaş veya pahalı iş yüklerini teşhis edin

Bir iş yükü beklenenden daha yavaş veya pahalıysa ve nedenini bilmiyorsanız, yapılandırmayı değiştirmeden önce darboğazı bulmak için Spark arayüzü kullanın. Maliyet ve performans sorunlarını Spark arayüzü kullanarak teşhis edin.