OPTIMIZE
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Delta Lake verilerinin düzenini iyileştirir. İsteğe bağlı olarak bir veri alt kümesini iyileştirin veya verileri sütuna göre birlikte dağıtın. Birlikte bulundurma belirtmezseniz ve tablo sıvı kümeleme ile tanımlanmamışsa, kutu paketleme iyileştirmesi gerçekleştirilir.
Sözdizimi
OPTIMIZE table_name [WHERE predicate]
[ZORDER BY (col_name1 [, ...] ) ]
Not
- Paketleme iyileştirmesi aynı veri kümesinde iki kez çalıştırılırsa ikinci çalıştırmanın hiçbir etkisi olmayacağı anlamına gelir. Disk üzerindeki boyutlarına göre eşit dengeli veri dosyaları üretmeyi amaçlar, ancak dosya başına tanımlama grubu sayısı üretmesi gerekmez. Ancak, iki ölçü genellikle bağıntılı.
- Z-Ordering bir kez etkili değildir, ancak artımlı bir işlem olmayı amaçlar. Z-Ordering için geçen sürenin birden çok çalıştırmayı azaltması garanti değildir. Ancak, yalnızca Z-Ordered olan bir bölüme yeni veri eklenmediyse, bu bölümün başka bir Z Sıralaması herhangi bir etkiye sahip olmaz. 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.
Not
Databricks Runtime'ı kullanırken çıkış dosyası boyutunu denetlemek için Spark yapılandırmasını spark.databricks.delta.optimize.maxFileSize
ayarlayın. Varsayılan değer, boyutu 1 GB olarak ayarlayan değeridir 1073741824
. Değerin 104857600
belirtilmesi, dosya boyutunu 100 MB olarak ayarlar.
Parametreler
-
Var olan bir Delta tablosunu tanımlar. Ad bir zamansal belirtim içermemelidir.
WHERE
Verilen bölüm koşuluyla eşleşen satırların alt kümesini iyileştirin. Yalnızca bölüm anahtarı özniteliklerini içeren filtreler desteklenir.
Bu yan tümceyi sıvı kümelemeyi kullanan tablolarda kullanamazsınız.
ZORDER BY
Sütun bilgilerini aynı dosya kümesinde birlikte kullanın. Delta Lake veri atlama algoritmaları tarafından, okunması gereken veri miktarını önemli ölçüde azaltmak için ortak yerellik kullanılır. için
ZORDER BY
birden çok sütunu virgülle ayrılmış liste olarak belirtebilirsiniz. Ancak, her ek sütunda yerelliğin etkinliği azalır.Bu yan tümceyi sıvı kümelemeyi kullanan tablolarda kullanamazsınız.
Örnekler
> OPTIMIZE events;
> OPTIMIZE events WHERE date >= '2017-01-01';
> OPTIMIZE events
WHERE date >= current_timestamp() - INTERVAL 1 day
ZORDER BY (eventType);
Komut hakkında OPTIMIZE
daha fazla bilgi için bkz . Veri dosyası düzenini iyileştirme.