Mule ESB数据库批量和批处理

时间:2016-02-23 17:52:13

标签: mule batch-processing mule-studio anypoint-studio

您正在尝试从一个表中获取记录并插入另一个表(MS SQL)当我将其作为键值获取并使用批处理进行提交时,大小为1000但是当2000个记录只有两行时在表中插入的位置。 我尝试使用批量模式,但批量模式要求动态查询 以下是我的查询 INSERT INTO Sample VALUES( #[payload.Index], #[payload.Name])和有效载荷是 {Index=1,Name=XX},{Index=2,Name=XX},{Index=3,Name=XX}等 请帮助我如何在Mule ESB中使用批量模式以及我可以为此编写的动态查询.Batch只是发布第一行所以我认为使用批量内部批处理将解决我的问题。谢谢提前!!!

1 个答案:

答案 0 :(得分:4)

您可以将// Create a Token from the existing customer on the platform's account stripe.tokens.create( { customer: CUSTOMER_ID, card: CARD_ID }, { stripe_account: CONNECTED_STRIPE_ACCOUNT_ID }, // id of the connected account function(err, token) { // callback } bulk mode = "true"一起使用。

parameterized query

查看此bulk mode link from mule

  

允许使用一个查询提交数据集合,而不是对集合中的每个参数集执行一个查询。启用   批量模式可以降低应用程序的性能   单个查询执行的数量。批量模式需要一个   参数化查询至少有一个参数。

确保<db:insert config-ref="Database_Configuration" bulkMode="true" doc:name="Database"> <db:parameterized-query> <![CDATA[INSERT INTO Sample(column1, column2) VALUES( #[payload.Index], #[payload.Name]) ]]></db:parameterized-query> </db:insert> payload类型Collection进入bulk mode

log4j2.xml中,在debug模式下添加数据库模块的日志记录,以查看mule传递给数据库的实际查询。非常适合调试。

 <AsyncLogger name="org.mule.module.db" level="DEBUG"/>

请注意,bulk mode 将与batch-processing一起使用。 2中的任何一个都可以工作,但如果你的目的只是插入数据,bulk-mode远比批处理更有效。