2017-06-19 142 views
0

我想读取一个CSV文件,处理行并将数行插入到数据库中,但我不希望每次插入一行,而是插入一行。如果是的话,可以吗?谢谢骆驼和批量插入

+0

哪数据库?你有什么尝试?这个问题不太可能会在这个状态下得到回答。在某个时候,文件需要一次读取一行。你可以线程并做并发插入。所以你不要通过痛苦的行插入行。 – Namphibian

+0

我使用Mysql作为数据库。我想优化我的插入,我必须做行聚合 – atoua

+0

为什么你不试着让它与单行首先工作..然后优化到多行? –

回答

0

开箱即用的数据库组件不是支持批量插入,就是很难整理出来。我过去成功的一种方法是使用split + aggregator模式,然后将它传递给使用JPA插入的自定义处理器。

伪代码:

from(file://inputfile.csv..) 
.splitter(.. by line..) 
.aggregate(.. by count ~ 50 or 100) 
.to(customJpaProcessor) 

然后在定制处理器,抢GroupedExchange和遍历行,坚持和一定数量后做.commit()

Camel Aggregator EIP

+0

我解决了我的问题我使用处理器来聚合我的数据并保存我的数据。谢谢。 – atoua

+0

atoua很高兴听到!你会帮我一个忙,并“接受”答案吗?谢谢=) –