我每秒获得 800-1000 xml 。每个XML大约 50-60 KB 。我考虑使用 SplitXML和EvaluateXPath进行XML解析。但是我不知道内存使用情况和性能如何。这些处理器是否将整个xml加载到内存中?
答案 0 :(得分:4)
在处理器的文档中,有一个名为System Resource Considerations
的部分。本节告诉您此类风险。
SplitXml正在将FlowFile的全部内容加载到内存中,但是EvaluateXPath似乎没有这样做。您可以使用SplitRecord来代替SplitXml
,它不会将所有文档都加载到内存中。
答案 1 :(得分:1)
您正在执行哪种下游处理?您可能会发现,您可以使用SplitXml
和/或{{1}将EvaluateXPath
和UpdateRecord
替换为基于记录的处理器,例如QueryRecord
或XMLReader
}}。然后,您可以在“同一时间”处理XML文件中的所有记录,而不必将它们分开并对每个记录做相同的事情。