數據不索引

重要的

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過濾相應的列。

刷新完整的索引

刷新DATASKIPPING指數(](db_name。]table_name

重建整個指數。即所有表的分區索引之後也可能如此。

刷新分區

刷新DATASKIPPING指數(](db_name。]table_name分區(part_col_name1(=val1),part_col_name2(=val2),…)

隻有重新索引指定的分區。這個操作通常應該比完整的索引刷新。

指數下降

下降DATASKIPPING指數(](db_name。]table_name

禁用數據跳過給定表和刪除所有索引數據。