【发布时间】:2017-07-14 20:20:24
【问题描述】:
我们正在尝试提取大约。来自数据库的 40 GB 数据并希望生成多个 csv 文件。我们以流方式使用 mule DB 连接器,它返回 'ResultSetIterator'
Q1) 如何将此ResultSetIterator 转换为arraylist?或任何我们可以进一步用于生成文件的可读格式
Q2)我们尝试使用 For-Each 组件将这些数据拆分成块,它适用于有限的数据集和大量数据,提供SerializationException
在下面的输入 sn-p 中,我们使用 for-each 制作数据块并将其提供给多个文件的批处理
<batch:job name="testBatchWithDBOutside">
<batch:input>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
</batch:input>
<batch:process-records>
<batch:step name="Batch_Step">
<batch:commit size="10" doc:name="Batch Commit">
<object-to-string-transformer doc:name="Object to String"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="C:\output" outputPattern="#[message.id].txt" responseTimeout="10000" doc:name="File"/>
</batch:commit>
</batch:step>
</batch:process-records>
</batch:job>
<flow name="testBatchWithDBOutsideFlow" processingStrategy="synchronous">
<file:inbound-endpoint path="C:\input" responseTimeout="10000" doc:name="File"/>
<db:select config-ref="MySQL_Configuration" streaming="true" fetchSize="10" doc:name="Database">
<db:parameterized-query><![CDATA[select * from classicmodels]]></db:parameterized-query>
</db:select>
<foreach batchSize="5" doc:name="For Each">
<batch:execute name="testBatchWithDBOutside" doc:name="testBatchWithDBOutside"/>
</foreach>
</flow>
【问题讨论】:
标签: mule mule-studio mule-component anypoint-studio mule-el