優化

適用於:勾選“是”磚的SQL勾選“是”磚運行時

優化Delta Lake數據布局。可選地優化數據子集或按列組合數據。如果未指定托管位置,則執行打包優化。

語法

優化table_name在哪裏謂詞ZORDER通過col_name1(,...

請注意

  • 裝箱優化是冪等,這意味著如果在同一數據集上運行兩次,第二次運行沒有影響。它的目標是根據數據文件在磁盤上的大小生成均衡的數據文件,但不一定是每個文件的元組數量。然而,這兩項指標通常是相關的。

  • z值是不是冪等但目標是一個增量操作。z排序所花費的時間不能保證在多次運行中減少。然而,如果沒有新的數據被添加到一個Z-Ordered分區,那麼該分區的另一個Z-Ordered將不會有任何影響。它的目標是根據元組的數量生成均衡的數據文件,但不一定是磁盤上的數據大小。這兩個度量通常是相關的,但有時情況並非如此,從而導致優化任務時間的傾斜。

請注意

在使用Databricks Runtime時,要控製輸出文件大小,請設置火花配置spark.databricks.delta.optimize.maxFileSize.默認值為1073741824,將大小設置為1gb。指定值104857600設置文件大小為100mb。

參數

  • table_name

    標識現有的Delta表。名稱中不能包含時間規範

  • 在哪裏

    優化與給定分區謂詞匹配的行子集。隻支持包含分區鍵屬性的篩選器。

  • ZORDER通過

    在同一組文件中合並列信息。Delta Lake數據跳過算法使用共局部性來顯著減少需要讀取的數據量。可以為指定多個列ZORDER通過作為逗號分隔的列表。但是,每增加一列,局部性的有效性就會下降。

例子

優化事件優化事件在哪裏日期> =“2017-01-01”優化事件在哪裏日期> =current_timestamp()-時間間隔1一天ZORDER通過eventType

有關的更多信息優化命令,看到緊湊的數據文件與優化三角洲湖