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.
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 BYyazarsanız ve en son kayıtlarınız geçmiştekilerdenOPTIMIZEç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 komutunOPTIMIZEkendisi için bir sorundur; büyük olasılıkla sonraki sorgular üzerinde herhangi bir olumsuz etkisi yoktur.