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.maxRecordsPerFile
bir 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 - modelName
companyID - 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, , orderID
bitcoinValue
) 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.