我正在使用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,...)来自filename
的AS SELECT列[0],列[1],列[2];
使用带有标题的CSV文件,即将语句更改为:
CREATE TABLE(name1,name2,name3,...)AS SELECT name1,name2,name3 from filename
;
在标题行中定义name1,name2等时,性能有显着差异,从执行整个过程的一致13分钟到9分钟。
答案 0 :(得分:0)
您无法在单个服务器上运行多个drillibits。
是的,在我的观察中,当我们计算大量数据时,钻头使用大量的过程功率,CPU使用率达到300-400%。我认为它使用单线程作为镶木地板文件。