使用Apache camel从CSV和XML文件中读取大量数据

时间:2018-06-08 08:32:12

标签: apache-camel

是否可以使用 Apache Camel 读取大量数据 CSV和XML 文件(大约 1GB 每个文件)?

如果在这种情况下涉及任何性能问题或限制,Apache Camel提供了哪种解决方案。

2 个答案:

答案 0 :(得分:1)

关于csv的答案就在这里 answer

要使用大型xml文件,您可以使用 http://camel.apache.org/stax.html

答案 1 :(得分:0)

在分析问题后,我找到了以下解决方案。

因此,如果我们可以在Camel上花费足够的RAM,那么1 GB就不算太多了。

这取决于以下问题

我们需要同时访问1 GB还是以任何顺序访问所有文件?

如果没有,那么我们必须" stream" CSV / XML文件,因此读作InputStream,然后按顺序获取我们需要的内容。

<强> CSV:

<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
    <from uri="direct:start"/>
    <split streaming="true">
        <tokenize token="\n"/>
        <to uri="mock:result"/>
    </split>
     <unmarshal><csv /></unmarshal>
</route>

<强> XML:

 <camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>    
    <from uri="direct:start"/>
    <split streaming="true">     
       <ref>staxRecord</ref>     
      <to uri="mock:result"/>
    </split>
  </route>
</camelContext>