Mule 4:Dataweave 2.0:如何处理大小超过10k的数据库记录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mule 4:Dataweave 2.0:如何处理大小超过10k的数据库记录?相关的知识,希望对你有一定的参考价值。
我有一个用例,我必须从两个不同的数据库中分别提取10k条记录,并进行一些数据扩充,然后将这20k条记录分批推送到第三个数据库中。
我遵循的方法:
- 使用分散收集从数据库中获取数据,以便我将两个有效负载都放在同一个Mule有效负载中,并且我可以将它们作为有效负载[0] .payload和有效负载[1] .payload进行访问
- 使用数据编织转换器加入记录
- 用于每个循环,以2k的批量将数据插入到第三个数据库中
但是这样做时,我经常在转换消息组件中遇到MULE JVM错误。
m子中是否有任何博客或任何设计模式可以更好地解决此问题?
答案
我通常在“ ETL”世界中看到2种模式:
- In-Memory:获得一台具有大量RAM的计算机,然后将所有内容都处理在内存中,就像您采用的方法一样。
- 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格式