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>