Performansı iyileştirmek için değişken parçalama kullanma

Varyant parçalama, sık görülen alanları altyapıdaki Parquet dosyalarında ayrı sütunlar olarak depolayarak VARIANT sütunlarında sorgu performansını artırır. Parçalama, alanları okumak için gereken G/Ç'yi azaltır ve ikili blob yerine sütunlu biçim kullanarak sıkıştırmayı geliştirir.

Bkz. VARIANT türü, Apache Iceberg ve Delta Lake için varyant türü desteği ve Varyant verilerini sorgulama.

Requirements

Parçalanmış VARIANT tablolarını okumak ve yazmak için Databricks Runtime 17.3 veya üzeri gereklidir. Değişken istatistik toplama ve veri atlama ile en iyi sorgu performansı için Databricks, Databricks Runtime 18.1 veya üzerini önerir.

Parçalama özelliğini etkinleştirme

Databricks Runtime 17.3 sürümünden itibaren, VARIANT kullanarak bir veya daha fazla CREATE TABLE sütunu içeren yeni bir tablo oluşturduğunuzda parçalama otomatik olarak etkinleştirilir.

CREATE OR REPLACE TABLE ve ALTER TABLE, parçalama özelliğini otomatik olarak etkinleştirmez. Bu, mevcut tabloların ve iş yüklerinin parçalama davranışının değiştirilmesini önler.

Mevcut tablolar için, enableVariantShredding tablo özelliğini TRUE olarak ayarlayarak parçalamayı el ile etkinleştirebilir ve özelliği FALSE olarak ayarlayarak devre dışı bırakabilirsiniz:

Delta Gölü

ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');

Buzdağı tablosu

ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');

tablo özelliğinin enableVariantShredding olarak ayarlandığını truedenetleyerek parçalamanın etkinleştirildiğini doğrulayın.

Belirli bir tablo için parçalama işlemini geri çevirme

Belirli bir tabloyu gelecekteki yazmalarda parçalamanın dışında tutmak için tablo özelliğini olarak enableVariantShreddingayarlayınFALSE:

Delta Gölü

ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');

Buzdağı tablosu

ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');

Mevcut tablodan parçalama kaldırma

Mevcut bir tablodaki silinecek özelliği kaldırmak için ALTER TABLE komutunu kullanın. Bu işlem ayrıca, parçalanmış VARIANT verileri bulunduğu yerde parçalara ayrılmamış VARIANT biçimine yeniden yazar ve enableVariantShredding tablosu özelliğini false olarak ayarlar.

ALTER TABLE my_table DROP FEATURE "variantShredding";

Sınırlamalar

  • Verilerin parçalanması, yazma işlemlerine bazı ek yük getirir.
  • Parçalamanın etkinleştirilmesi, tablodaki mevcut VARIANT verileri otomatik olarak dönüştürmez. Yalnızca özellik etkinleştirildikten sonra yazılan veriler için geçerlidir. Mevcut VARIANT verileri yeniden yazmak için kullanın REORG TABLE my_table APPLY (SHRED VARIANT).
  • Parçalama, diziler veya VARIANT haritalar içinde depolanan veriler hariç olmak üzere VARIANT yapılardaki en üst düzey VARIANT sütunlara veya alanlara uygulanır.