[英]How can I improve the write performance of Apache Drill
我正在使用CTAS
語句從Apache Drill中的csv創建一個鑲木地板文件。 我嘗試過更改各種配置參數的多個實驗,甚至嘗試寫入tmpfs。
我的測試總是花費相同的時間。 我不是IO界限。 我可能是CPU綁定的,大多數情況下,一個java線程始終處於100%。
實驗嘗試:
store.parquet.compression=none
store.parquet.page-size=8192
planner.slice_target=10000
store.parquet.block-size=104857600
store.text.estimated_row_size_bytes=4k
我已經得出結論,也許Drill是單線程的寫作,任何人都可以證實這一點嗎?
使用12核服務器,我有足夠的空間可供使用。
是否可以在單個服務器上運行多個鑽取鑽頭?
更新:無論CTAS輸出格式是csv還是鑲木地板,看起來性能都是相同的,因此一般來說,Drill寫入數據的能力似乎有限。
更新2:使用csv文件作為輸入切換到沒有標題的CTAS語句,使用以下形式的語句:
CREATE TABLE(col1,col2,col3,...)AS SELECT列[0],列[1],列[2]來自filename
;
使用帶有標題的CSV文件,即將語句更改為:
CREATE TABLE(name1,name2,name3,...)AS SELECT name1,name2,name3 from filename
;
其中name1,name2等在標題行中定義了性能上的顯着差異,從執行整個過程的一致13分鍾到9分鍾。
您無法在單個服務器上運行多個drillibits。
是的,在我的觀察中,當我們計算大量數據並且我認為它使用單線程用於鑲木地板文件時,鑽頭使用大量的過程功率CPU使用率達到300-400%。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.