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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mule 4:Dataweave 2.0:如何处理大小超过10k的数据库记录?相关的知识,希望对你有一定的参考价值。

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

我遵循的方法:

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

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

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

答案

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

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

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

以上是关于Mule 4:Dataweave 2.0:如何处理大小超过10k的数据库记录?的主要内容,如果未能解决你的问题,请参考以下文章

从dataweave 2.0 Mule 4中的父JSON对象中提取JSON键值对的子集作为对象

在dataweave 2.0 Mule4中将XML CDATA格式转换为JSON格式

使用 Mule Dataweave 导入 CSV?

Mule DataWeave 转换消息失败,缺少元数据:id 属性

如何忽略 DataWeave Mule esb 中的空对象

如何处理 Retrofit 2.0 中的错误