OPTIMIZE

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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.maxFileSizeayarlayın. Varsayılan değer, boyutu 1 GB olarak ayarlayan değeridir 1073741824. Değerin 104857600 belirtilmesi, dosya boyutunu 100 MB olarak ayarlar.

Parametreler

  • table_name

    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.