Veri göz ardı etme

Note

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

Delta Lake'e veya yönetilen Apache Iceberg tablosuna veri yazdığınızda veri atlama istatistikleri otomatik olarak toplanır. Azure Databricks, ilgisiz dosyaları atlamak ve sorguları hızlandırmak için sorgu zamanında dosya başına istatistikleri (en düşük ve en yüksek değerler, null sayılar ve toplam kayıtlar) kullanır.

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

İstatistik sütunlarını belirtme

Unity Kataloğu dış tabloları için istatistikler varsayılan olarak tablo şemanızda tanımlanan ilk 32 sütunda toplanır. Unity Kataloğu yönetilen tablolarında, dosya atlama istatistikleri tahmine dayalı iyileştirme kullanılarak akıllıca seçilir ve 32 sütun sınırı yoktur. Tahmine dayalı iyileştirme, istatistik toplamaya yönelik bir komut olarak otomatik olarak çalıştırılır ANALYZE. Databricks, veri bakımını basitleştirmek ve depolama maliyetlerini azaltmak için tüm Unity Kataloğu yönetilen tablolarında tahmine dayalı iyileştirmenin etkinleştirilmesini önerir. Bkz. Unity Kataloğu tarafından yönetilen tablolar için tahmine dayalı optimizasyon.

Tahmine dayalı iyileştirme kullanmıyorsanız, aşağıdaki tablo özelliklerinden birini ayarlayarak istatistik koleksiyonlarını 32 sütunla sınırlayan davranışı değiştirebilirsiniz:

Tablo özelliği Databricks Runtime destekleniyor Description
dataSkippingNumIndexedCols Desteklenen tüm Databricks Runtime sürümleri İstatistiklerin toplandığı sütun sayısını artırın veya azaltın. Sütun sırasına bağlıdır.
dataSkippingStatsColumns Databricks Runtime 13.3 LTS ve üzeri İstatistiklerin toplandığı sütun adlarının listesini belirtin. Yerine geçenler dataSkippingNumIndexedCols.

Tablo özellikleri, tablo oluşturma sırasında veya ALTER TABLE ifadeleri ile ayarlanabilir. Bkz. Tablo özellikleri referansı. Aşağıdaki örnek, adlandırılmış sütunlarda istatistik koleksiyonunu ayarlamak için varsayılan istatistik koleksiyonu davranışını geçersiz kılar:

Delta Gölü

ALTER TABLE table_name SET TBLPROPERTIES('delta.dataSkippingStatsColumns' = 'col1, col2, col3')

Buzdağı tablosu

ALTER TABLE table_name SET TBLPROPERTIES('iceberg.dataSkippingStatsColumns' = 'col1, col2, col3')

Bu özelliklerin 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. İstatistikler, geçerli istatistik sütunları listesine dahil edilmeyen sütunlar için kullanılmaz.

Databricks Runtime 14.3 LTS ve üzerinde tablo özelliklerini değiştirdiyseniz veya istatistikler için belirtilen sütunları değiştirdiyseniz, aşağıdaki komutu kullanarak bir tablo için istatistikleri yeniden derlemeyi el ile tetikleyebilirsiniz:

ANALYZE TABLE table_name COMPUTE DELTA STATISTICS

Note

İ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?

Note

Databricks, tüm yeni tablolar için sıvı kümeleme kullanılmasını önerir. Sıvı kümeleme ile birlikte kullanamazsınız ZORDER . Bkz Tablolar için sıvı kümeleme kullanma.

Z sıralama, aynı dosya kümesindeki ilgili bilgileri birlikte kullanmak için kullanılan bir tekniktir . Azure Databricks veri atlama algoritmaları otomatik olarak bu ortak yerelliği kullanır. Bu davranış, okunması gereken veri miktarını azaltır. Verileri Z-düzeninde sıralamak için, ZORDER BY ifadesinde sıralanacak sütunları belirtin.

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.

virgülle ayrılmış liste olarak ZORDER BY için birden çok sütun belirtebilirsiniz. Ancak, her ek sütunda etkinlik düşer.

Databricks, verimsiz olduğundan ve gereksiz işlem kaynakları kullandığından istatistiklerin toplanmadığı sütunlarda kullanmamanızı ZORDER BY önerir. Veri atlama, min, max ve count gibi sütuna özgü istatistikler gerektirir. Ş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.

Note

  • Z sıralaması idempotent değildir, ancak artımlı bir işlem olmayı hedefler. Z sıralaması için gereken sürenin, birden fazla çalıştırmada azalacağı garanti edilmez. Ancak, yalnızca Z sıralı 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ıralaması, demet sayısı açısından dengeli veri dosyaları üretmeyi amaçlar, ancak bu denge depolamadaki veri boyutu için her zaman geçerli olmayabilir. Dosya boyutları ile demet sayısı birbiriyle ilişkili olsa da, bu ilişkinin geçerli olmadığı durumlar olabilir; bu da optimizasyon görevi sürelerini çarpıtabilir.

    Örneğin, ZORDER BY yazarsanız ve en son kayıtlarınız geçmiştekilerden OPTIMIZE çok daha genişse (daha uzun diziler veya dize değerleri gibi), işin görev süreleri ve sonuçta elde edilen dosya boyutları dengesiz olabilir. Ancak bu yalnızca komutun OPTIMIZE kendisi için bir sorundur; büyük olasılıkla sonraki sorgular üzerinde herhangi bir olumsuz etkisi yoktur.