優化(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。

參數

  • table_name

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

  • 在哪裏

    優化匹配給定分區謂詞的行子集。隻支持涉及分區鍵屬性的過濾器。

  • ZORDER通過

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

例子

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

有關的更多信息優化命令,看到通過文件管理優化性能