是否可以使用 Apache Camel 读取大量数据 CSV和XML 文件(大约 1GB 每个文件)?
如果在这种情况下涉及任何性能问题或限制,Apache Camel提供了哪种解决方案。
答案 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>