gpt4 book ai didi

java - 如何提高 Apache Drill 的写入性能

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:41 24 4
gpt4 key购买 nike

我正在使用 CTAS 语句从 Apache Drill 中的 csv 创建 parquet 文件。我尝试了多次实验来更改各种配置参数,甚至尝试写入 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 还是 parquet,性能都是相同的,因此 Drill 写入数据的能力通常会受到限制。

更新2:从使用 csv 文件作为输入切换到不带标题的 CTAS 语句,使用以下形式的语句:

CREATE TABLE (col1, col2, col3, ...) AS SELECT columns[0], columns[1], column[2] from filename;

使用带标题的 CSV 文件,即将语句更改为:

CREATE TABLE (name1, name2, name3, ...) AS SELECT name1, name2, name3 from 文件名;

标题行中定义的 name1、name2 等对性能产生了显着影响,从执行整个过程的一致 13 分钟缩短到 9 分钟。

最佳答案

您不能在单个服务器上运行多个演习。

是的,根据我的观察,当我们计算大量数据时,drill 也会使用大量的处理能力,很多时候 CPU 使用率会达到 300-400%,而且我认为它对 parquet 文件使用单线程。

关于java - 如何提高 Apache Drill 的写入性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com