【发布时间】:2019-02-21 07:39:42
【问题描述】:
我正在获取大约 每秒 800-1000 个 xml。每个 XML 大约 50-60 KB。我想使用 SplitXML 和 EvaluateXPath 进行 XML 解析。但我不知道内存使用和性能会如何。这些处理器是否会将整个 xml 加载到内存中?
【问题讨论】:
-
可以创建脚本来拆分xml
标签: xml xml-parsing apache-nifi
我正在获取大约 每秒 800-1000 个 xml。每个 XML 大约 50-60 KB。我想使用 SplitXML 和 EvaluateXPath 进行 XML 解析。但我不知道内存使用和性能会如何。这些处理器是否会将整个 xml 加载到内存中?
【问题讨论】:
标签: xml xml-parsing apache-nifi
在处理器的文档中有一个名为System Resource Considerations 的部分。本节将告诉您此类风险。
SplitXml 正在将 FlowFile 的全部内容加载到内存中,但 EvaluateXPath 似乎没有这样做。您可以使用PartitionRecord 代替SplitXml,它不会将所有文档加载到内存中。
【讨论】:
你在做什么样的下游处理?您可能会发现可以使用XMLReader 和/或XMLRecordSetWriter 将SplitXml 和EvaluateXPath 替换为基于记录的处理器,例如UpdateRecord 或QueryRecord。然后,您可以“同时”处理 XML 文件中的所有记录,而不必将它们拆分出来并对每个记录执行相同的操作。
【讨论】: