3
如何拆分apache camel中的sql查询结果?让我们说你会得到1000行的结果,你想不是一个接一个地处理它们,而是分组1组= 10行。阿帕奇骆驼:如何将sql结果拆分成组
以下Apache Camel配置查找具有给定RECORD_ID的记录,在下一步中,Camel“splitter”迭代第一个查询的结果并运行另一个查询。
例如,如果我们得到1000行作为查询的结果db.query.select.active.record然后第二个查询db.query.select.compute.statistics将运行1000倍(对于以前的查询的每一行)。由于性能不是最优的,我们想创建一组RECORD_ID例如:第一个查询会返回1000行,我们会将它分成100个组(每组10行),然后我们只能运行100x的查询。
示例配置:
<route>
<from uri="seda:retrieveAlphaData" />
<process ref="alphaResourceInitializer"/>
<to uri="sql:{{db.query.select.active.record}}" />
<camel:split>
<camel:simple>${in.body}</camel:simple>
<camel:setHeader headerName="recordId">
<camel:simple>${in.body[RECORD_ID]}</camel:simple>
</camel:setHeader>
<setBody>
<simple>${in.body[RECORD_NAME]}</simple>
</setBody>
<to uri="sql:{{db.query.select.compute.statistics}}" />
<process ref="allActiveRecordDataFormatTransformer" />
<camel:marshal ref="json" />
<to uri="bean:activeRecordSdbPersister?method=processIt" />
</camel:split>
</route>