Mule 4:Dataweave 2.0:如何处理大小超过10k的数据库记录?

问题描述 投票:0回答:1

我有一个用例,我必须从两个不同的数据库中分别提取10k条记录,并进行一些数据扩充,然后将这20k条记录分批推送到第三个数据库中。

我遵循的方法:

  1. 使用分散收集从数据库中获取数据,以便我将两个有效负载都放在同一个Mule有效负载中,并且我可以将它们作为有效负载[0] .payload和有效负载[1] .payload进行访问
  2. 使用数据编织转换器加入记录
  3. 用于每个循环,以2k的批量将数据插入到第三个数据库中

但是这样做时,我经常在转换消息组件中遇到MULE JVM错误。

m子中是否有任何博客或任何设计模式可以更好地解决此问题?

dataweave mule4
1个回答
0
投票

我通常在“ ETL”世界中看到2种模式:

  1. In-Memory:获得一台具有大量RAM的计算机,然后将所有内容都处理在内存中,就像您采用的方法一样。
  2. Classic ETL:他们使用一个临时区域,例如中间数据库,在其中放置所有信息,然后进行一些查询以一次提取所需的所有内容。这种方法使用的RAM少得多。

特别是在谈论Mule,这取决于您如何从流中获取信息,无论它们是否在内存中全部充满。例如,如果您执行groupBy之类的操作或对其进行搜索以迫使其返回,则可能是整个流都进入了Memory。

© www.soinside.com 2019 - 2024. All rights reserved.