Delta Lake için veri atlama

Delta tablosuna veri yazdığınızda veri atlama bilgileri otomatik olarak toplanır. Azure Databricks'te Delta Lake, daha hızlı sorgular sağlamak için sorgu zamanında bu bilgilerden (en düşük ve en yüksek değerler, null sayılar ve dosya başına toplam kayıtlar) yararlanır.

Not

Databricks Runtime 13.3 ve üzeri sürümleri için Databricks, Delta tablo düzeni için kümeleme kullanılmasını önerir. Kümeleme, Z sıralama ile uyumlu değildir. Bkz. Delta tabloları için sıvı kümeleme kullanma.

Deyimlerde ZORDER kullanılan sütunlar için toplanan istatistikleriniz olmalıdır. Bkz . Z sıralama nedir?.

Delta istatistik sütunlarını belirtme

Varsayılan olarak Delta Lake, tablo şemanızda tanımlanan ilk 32 sütunla ilgili istatistikleri toplar. Bu koleksiyon için iç içe sütundaki her alan tek bir sütun olarak kabul edilir. Aşağıdaki tablo özelliklerinden birini ayarlayarak bu davranışı değiştirebilirsiniz:

Tablo özelliği Databricks Runtime destekleniyor Açıklama
delta.dataSkippingNumIndexedCols Desteklenen tüm Databricks Runtime sürümleri Delta'nın istatistikleri topladığı sütun sayısını artırın veya azaltın. Sütun sırasına bağlıdır.
delta.dataSkippingStatsColumns Databricks Runtime 13.3 LTS ve üzeri Delta Lake'in istatistikleri topladığı sütun adlarının listesini belirtin. Yerine geçenler dataSkippingNumIndexedCols.

Tablo özellikleri tablo oluşturma sırasında veya deyimleriyle ALTER TABLE ayarlanabilir. Bkz . Delta tablosu özellikleri başvurusu.

Bu özelliğin güncelleştirilmesi, mevcut verilerin istatistiklerini otomatik olarak yeniden derlemez. Bunun yerine, tabloya veri eklerken veya güncelleştirirken gelecekteki istatistik toplama davranışını etkiler. Delta Lake, geçerli istatistik sütunları listesine dahil olmayan sütunlar için istatistiklerden yararlanmaz.

Databricks Runtime 14.3 LTS ve üzerinde, aşağıdaki komutu kullanarak Delta tablosu için istatistikleri yeniden derlemeyi el ile tetikleyebilirsiniz:

ANALYZE TABLE table_name COMPUTE DELTA STATISTICS

Not

İstatistik koleksiyonu sırasında uzun dizeler kesilir. Özellikle de sütunlar sorguları filtrelemek için sık kullanılmadıysa, uzun dize sütunlarını istatistik koleksiyonunun dışında tutabilirsiniz.

Z sıralama nedir?

Z sıralama, aynı dosya kümesindeki ilgili bilgileri birlikte kullanmak için kullanılan bir tekniktir . Bu ortak yerellik, Azure Databricks veri atlama algoritmalarında Delta Lake tarafından otomatik olarak kullanılır. Bu davranış, Azure Databricks'te Delta Lake'in okuması gereken veri miktarını önemli ölçüde azaltır. Z-order verilerine, yan tümcesinde ZORDER BY sıralanması gereken sütunları belirtirsiniz:

OPTIMIZE events
WHERE date >= current_timestamp() - INTERVAL 1 day
ZORDER BY (eventType)

Bir sütunun sorgu koşullarında yaygın olarak kullanılmasını bekliyorsanız ve bu sütunun kardinalitesi yüksekse (çok sayıda ayrı değer) kullanın ZORDER BY.

için ZORDER BY birden çok sütunu virgülle ayrılmış liste olarak belirtebilirsiniz. Ancak, her ek sütunda yerelliğin etkinliği düşer. Üzerinde istatistik toplanmayan sütunlarda Z sıralaması etkisiz ve kaynak israfı olabilir. Bunun nedeni, veri atlama işleminin minimum, maksimum ve sayı gibi sütun yerel istatistikleri gerektirmesidir. Şemadaki sütunları yeniden sıralayarak belirli sütunlarda istatistik toplamayı yapılandırabilir veya istatistikleri toplamak için sütun sayısını artırabilirsiniz.

Not

  • Z sıralama bir kez etkili değildir, ancak artımlı bir işlem olmayı hedefler. Z sıralama için geçen sürenin birden çok çalıştırmayı azaltması garanti değildir. Ancak, yalnızca Z sıralı olan bir bölüme yeni veri eklenmediyse, bu bölümün başka bir Z sıralamasının hiçbir etkisi olmaz.

  • Z sıralama, tanımlama grubu sayısına göre eşit dengeli veri dosyaları oluşturmayı amaçlar, ancak diskte veri boyutu olması gerekmez. İki ölçü genellikle bağıntılı olur, ancak durum böyle olmadığında, en iyi duruma getirme görev sürelerinde dengesizliğe yol açan durumlar olabilir.

    Örneğin, tarih ve ZORDER BYen son kayıtlarınız geçmiştekilerden çok daha genişse (örneğin, daha uzun diziler veya dize değerleri), işin görev sürelerinin yanı sıra sonuçta elde edilen dosya boyutlarının da çarpıtılması beklenirOPTIMIZE. Ancak bu yalnızca komutun OPTIMIZE kendisi için bir sorundur; sonraki sorgular üzerinde herhangi bir olumsuz etkisi olmamalıdır.