緊湊的數據文件與優化在三角洲湖

看到優化

三角洲湖磚可以提高閱讀的速度從表查詢。改善這種速度的一個方法是將小文件合並成更大的。

語法的例子

你觸發壓縮通過運行優化命令:

優化δ' /數據/事件
delta.tables進口*deltaTable=DeltaTableforPath(火花,“/數據/事件”)deltaTable優化()executeCompaction()
進口ioδ_瓦爾deltaTable=DeltaTableforPath(火花,“/數據/事件”)deltaTable優化()。executeCompaction()

或者,交替:

優化事件
delta.tables進口*deltaTable=DeltaTableforName(火花,“事件”)deltaTable優化()executeCompaction()
進口ioδ_瓦爾deltaTable=DeltaTableforName(火花,“事件”)deltaTable優化()。executeCompaction()

如果你有一個大的數據量,隻有想優化的一個子集,您可以指定一個可選的分區使用謂詞在哪裏:

優化事件在哪裏日期> =“2022-11-18”
delta.tables進口*deltaTable=DeltaTableforName(火花,“事件”)deltaTable優化()在哪裏(“日期= 2021-11-18”)executeCompaction()
進口ioδ_瓦爾deltaTable=DeltaTableforName(火花,“事件”)deltaTable優化()。在哪裏(“日期= 2021-11-18”)。executeCompaction()

請注意

  • 裝箱優化冪等,也就是說,如果是相同的數據集上運行兩次,第二次運行沒有影響。

  • 裝箱計劃生產均衡數據文件對磁盤上它們的大小,但不一定是元組每個文件的數量。然而,這兩個指標往往是相關的。

  • Python和Scala api執行優化操作可從磚運行時11.0及以上。

三角洲的讀者表使用快照隔離,這意味著他們不中斷時優化從事務日誌刪除不必要的文件。優化沒有相關數據修改表,所以讀之前和之後的一個優化有相同的結果。執行優化桌子上這是一個流源不影響任何當前或未來的流,將此表作為一個源。優化返回文件的統計數據(最小、最大、總,等等)的文件刪除和添加的文件操作。優化數據也包含z值統計,批次的數量,和分區優化。

你也可以自動使用緊湊的小文件自動優化在磚