優化(Delta Lake on Databricks)
優化三角洲湖數據的布局。可選地優化數據子集或按列合並數據。如果不指定存放位置,則執行裝箱優化。
語法
優化table_name[在哪裏謂詞][ZORDER通過(col_name1(,...])]
請注意
裝箱優化冪等,這意味著如果在同一個數據集上運行兩次,那麼第二次運行沒有效果。它的目標是根據磁盤上的大小生成均勻平衡的數據文件,而不是每個文件的元組數量。然而,這兩個指標通常是相關的。
z值是不是冪等但目標是一個增量操作。z順序所花費的時間並不能保證在多次運行中減少。但是,如果沒有新數據添加到一個隻有Z-Ordered的分區,那麼該分區的另一個Z-Ordered將不起任何作用。它的目標是就元組的數量產生均勻平衡的數據文件,但不一定是磁盤上的數據大小。這兩個度量通常是相關的,但有時情況並非如此,從而導致優化任務時間的傾斜。
若要控製輸出文件大小,請設置火花配置
spark.databricks.delta.optimize.maxFileSize
.默認值為1073741824
,將大小設置為1 GB。指定的值104857600
將文件大小設置為100 MB。
參數
標識現有的Delta表。名稱中不能包含時間規範.
在哪裏
優化匹配給定分區謂詞的行子集。隻支持涉及分區鍵屬性的過濾器。
ZORDER通過
將列信息放在同一組文件中。Delta Lake數據跳過算法使用共局部性來顯著減少需要讀取的數據量。可以指定多個列
ZORDER通過
作為一個逗號分隔的列表。然而,局部性的有效性隨著每增加一列而下降。
例子
優化事件優化事件在哪裏日期> =“2017-01-01”優化事件在哪裏日期> =current_timestamp()-時間間隔1一天ZORDER通過(eventType)
有關的更多信息優化
命令,看到通過文件管理優化性能.