Veri göz ardı etme

Not

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.

Tabloya veri yazdığınızda veri atlama bilgileri otomatik olarak toplanır. Azure Databricks, 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.

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 Açıklama
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:

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

-- For Iceberg tables
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. geçerli istatistik sütunları listesine dahil edilmeyen sütunlar için istatistiklerden yararlanı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

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?

Not

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 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ıralaması idempotent değildir, ancak artımlı bir işlem olmayı hedefler. Z sıralama süresinin birden fazla çalıştırmada azalacağı garanti edilmez. 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-ordering, veri dosyalarını demet sayısı açısından eşit dengeli bir şekilde oluşturmaya çalışır, ancak diskteki veri boyutunu dengelemeyi amaçlamaz. İ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, ZORDER BYtarih ve en son kayıtlarınız geçmiştekilerden çok daha geniş (örneğin, daha uzun diziler veya dize değerleri) ise, bu durumda işin görev sürelerinin yanı sıra sonuçta elde edilen dosya boyutlarının da çarpıtılması beklenir.OPTIMIZE Ancak bu yalnızca komutun OPTIMIZE kendisi için bir sorundur; sonraki sorgular üzerinde herhangi bir olumsuz etkisi olmamalıdır.