Veri atlama dizini

Önemli

DATASKIPPING INDEX Databricks Runtime 7.0'da kaldırıldı. Bunun yerine geliştirilmiş veri atlama özellikleri sunan Delta tablolarını kullanmanızı öneririz.

Önemli

Bu belge kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir. Bu içerikte belirtilen ürünler, hizmetler veya teknolojiler artık desteklenmemektedir. Bkz. Delta Lake için veri atlama.

Açıklama

Databricks Runtime, bölüm ayıklamaya ek olarak ilgisiz verileri taramaktan kaçınmaya yönelik başka bir özellik (Veri Atlama Dizini) içerir. Dosya ayrıntı düzeyinde ek atlama gerçekleştirmek için dosya düzeyinde istatistikleri kullanır. Bu, Hive stili bölümleme ile çalışır, ancak buna bağlı değildir.

Veri atlamanın etkinliği, verilerinizin özelliklerine ve fiziksel düzenine bağlıdır. Atlama işlemi dosya ayrıntı düzeyinde yapıldığından, verilerinizin birden çok dosya arasında yatay olarak bölümlenmesi önemlidir. Bu durum genellikle birden çok ekleme işinin, (karıştırma) bölümlemenin, demetlemenin ve/veya kullanımının spark.sql.files.maxRecordsPerFilebir sonucu olarak gerçekleşir. Sıralanmış demetlere (df.write.bucketBy(...).sortBy(...).saveAsTable(...)CREATE TABLE ... CLUSTERED BY ... SORTED BY ... / ) sahip tablolarda veya bölüm anahtarlarıyla (örneğin , brandName - modelNamecompanyID - stockPrice) bağıntılı sütunlara sahip tablolarda en iyi şekilde çalışır, ancak verileriniz bir tür sıralanmışlık / kümelenmişlik (örneğin, , orderIDbitcoinValue) sergilediğinde de çalışır.

Not

Bu beta özelliğinin bir dizi önemli sınırlaması vardır:

  • Kabul Et: Tablo başına el ile etkinleştirilmesi gerekir.
  • Yalnızca SQL'dir: Bunun için DataFrame API'si yoktur.
  • Bir tablo dizine eklendikten sonra, dizin açıkça REFRESHed olana kadar izleyen INSERT veya işlemlerin etkilerinin görünür olacağı garantilanmazADD PARTITION.

SQL söz dizimi

Dizin Oluştur

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

N tarafından denetlendiğispark.databricks.io.skipping.defaultNumIndexedCols ilk (en soldaki) N sütun için verilen tabloda Veri Atlama'yı etkinleştirir (varsayılan olarak: 32)

partitionBy sütunlar her zaman dizine alınır ve bu N'ye doğru sayılmaz.

Sütunlar için Dizin Oluşturma

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    FOR COLUMNS (col1, ...)

Belirtilen sütun listesi için verilen tabloda Veri Atlama'ya olanak tanır. Yukarıdakiyle aynı şekilde, tüm partitionBy sütunlar her zaman belirtilenlere ek olarak dizine alınacaktır.

Dizini Açıklama

DESCRIBE DATASKIPPING INDEX [EXTENDED] ON [TABLE] [db_name.]table_name

Belirli bir tablonun hangi sütunlarının dizine alındığını ve toplanan ilgili dosya düzeyi istatistik türlerini görüntüler.

Belirtilirse EXTENDED , DataSkipping'in ilgili sütunlardaki filtreler için ne kadar yararlı olacağının yaklaşık bir ölçüsünü sağlayan "effectiveness_score" adlı üçüncü bir sütun görüntülenir.

Tam Dizini Yenile

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Dizinin tamamını yeniden oluşturur. Diğer bir deyişle, tablonun tüm bölümleri yeniden dizine alınacaktır.

Bölümleri Yenile

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    PARTITION (part_col_name1[=val1], part_col_name2[=val2], ...)

Yalnızca belirtilen bölümleri yeniden dizinler. Bu işlem genellikle tam dizin yenilemesinden daha hızlı olmalıdır.

Dizin Kaldır

DROP DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Verilen tabloda Veri Atlama özelliğini devre dışı bırakır ve tüm dizin verilerini siler.