所以磚給我們偉大的工具包的形式優化和真空。但是,在操作方麵,我真的困惑的最佳實踐。
我們應該使優化寫道:“通過設置以下一個工作區水平?
spark.conf.set (“spark.databricks.delta.optimizeWrite.enabled”,“真正的”)#寫作速度
spark.conf.set (“spark.databricks.delta.autoCompact.enabled”,“真正的”)#壓縮文件
或
我們應該明確執行優化命令在數據庫表和一組頻率。同樣,如果我們使優化寫在空間層麵上,我們應該分別需要再次執行優化表級別。他們是相同的還是不同的?
決定在優化後解決,當我們應該運行真空。我們應該在相同的腳本運行優化和真空嗎?如果沒有,應該是理想的秩序
好的沒有問題。
自動優化實際上存在兩個操作。你有優化寫道(delta.autoOptimize.optimizeWrite)
旨在寫128 MB的文件。這是一個近似的大小,取決於數據集特征。通常128 MB是不可能的。
然後還有汽車壓實(delta.autoOptimize.autoCompact)。
後一個人寫,磚檢查文件是否可以進一步被壓縮,並運行一個優化工作(128 MB的文件大小而不是1 GB的文件大小使用的標準
優化)進一步壓縮文件的分區最小文件的數量。
當然這些優化的成本(shuffle初版)。然而,淨結果往往是積極的因為你寫較小的文件仍然是足夠好的查詢性能。
吞吐量的增加如下:假設你想寫1000 mb。
在一個典型的優化的例子中,這將創建一個1000 mb的分區。單個分區意味著1任務執行的一名工人。
如果你會寫1000 mb的128 mb的分區,可以並行化寫為4或5的任務,因此更多的吞吐量。
優化部分我認為文檔做一項偉大的工作。
https://docs.microsoft.com/en-us/azure/databricks/delta/optimizations/auto-optimize
基本上是:使用自動優化,但如果您的數據變大,也使用手動優化。
真空的部分:
https://community.m.eheci.com/s/question/0D53f00001SKZVmCAP/optimize-and-vacuum-which-is-the-best..。
好的沒有問題。
自動優化實際上存在兩個操作。你有優化寫道(delta.autoOptimize.optimizeWrite)
旨在寫128 MB的文件。這是一個近似的大小,取決於數據集特征。通常128 MB是不可能的。
然後還有汽車壓實(delta.autoOptimize.autoCompact)。
後一個人寫,磚檢查文件是否可以進一步被壓縮,並運行一個優化工作(128 MB的文件大小而不是1 GB的文件大小使用的標準
優化)進一步壓縮文件的分區最小文件的數量。
當然這些優化的成本(shuffle初版)。然而,淨結果往往是積極的因為你寫較小的文件仍然是足夠好的查詢性能。
吞吐量的增加如下:假設你想寫1000 mb。
在一個典型的優化的例子中,這將創建一個1000 mb的分區。單個分區意味著1任務執行的一名工人。
如果你會寫1000 mb的128 mb的分區,可以並行化寫為4或5的任務,因此更多的吞吐量。