數據不索引
重要的
DATASKIPPING指數
刪除在磚7.0運行時。相反,我們建議您使用三角洲表提供改進的數據跳過功能。
重要的
這個文檔已經退休了,可能不會被更新。產品、服務或技術中提到的這些內容不再支持。看到數據不與z順序索引三角洲湖。
描述
除了分區修剪,磚運行時包含另一個特點,是為了避免掃描無關的數據,即數據跳過索引。它使用文件級數據為了執行額外的跳過文件粒度。這工作,但不依賴,Hive-style分區。
數據的有效性不取決於你的數據的特點和它的物理布局。跳過在文件粒度,重要的是,你的水平分區數據跨多個文件。這通常會發生由於有多個附加工作,(shuffle)分區,用桶裝,和/或使用spark.sql.files.maxRecordsPerFile
。最好的作品與桶排序表(df.write.bucketBy (…) .sortBy (…) .saveAsTable (…)
/創建表…集群通過…排序通過…
),或者與列與分區鍵(例如,名牌- - - - - -modelName
,companyID- - - - - -上漲空間
),而且當你的數據恰好展覽一些sortedness / clusteredness(例如,orderID
,bitcoinValue
)。
請注意
這個測試功能有許多重要的限製:
選擇:需要手動啟用,基於每個表而創建的。
這是SQL隻有:沒有DataFrame API。
一旦索引表,後續的影響
插入
或添加分區
操作是沒有保證的可見,直到指數是顯式地刷新。
SQL語法
創建索引
創建DATASKIPPING指數在(表](db_name。]table_name
使數據不給定表第一(左邊)N支持列,N是由spark.databricks.io.skipping.defaultNumIndexedCols
(默認值:32)
partitionBy
列總是索引,不計入N。
創建索引的列
創建DATASKIPPING指數在(表](db_name。]table_name為列(col1,…)
使數據不給定表指定列的列表。同上,所有partitionBy
總是會列索引除了指定的。
描述指數
描述DATASKIPPING指數(擴展]在(表](db_name。]table_name
顯示哪些列給定表的索引,以及相應的類型的文件級數據收集。
如果擴展
指定,第三列稱為“effectiveness_score”顯示出一個近似測量有益我們期望DataSkipping過濾相應的列。