【问题标题】:Nifi SplitXML and EvaluateXPath performance and memory usage?Nifi SplitXML 和 EvaluateXPath 性能和内存使用情况?
【发布时间】:2019-02-21 07:39:42
【问题描述】:

我正在获取大约 每秒 800-1000 个 xml。每个 XML 大约 50-60 KB。我想使用 SplitXML 和 EvaluateXPath 进行 XML 解析。但我不知道内存使用和性能会如何。这些处理器是否会将整个 xml 加载到内存中?

【问题讨论】:

  • 可以创建脚本来拆分xml

标签: xml xml-parsing apache-nifi


【解决方案1】:

在处理器的文档中有一个名为System Resource Considerations 的部分。本节将告诉您此类风险。 SplitXml 正在将 FlowFile 的全部内容加载到内存中,但 EvaluateXPath 似乎没有这样做。您可以使用PartitionRecord 代替SplitXml,它不会将所有文档加载到内存中。

【讨论】:

    【解决方案2】:

    你在做什么样的下游处理?您可能会发现可以使用XMLReader 和/或XMLRecordSetWriterSplitXmlEvaluateXPath 替换为基于记录的处理器,例如UpdateRecordQueryRecord。然后,您可以“同时”处理 XML 文件中的所有记录,而不必将它们拆分出来并对每个记录执行相同的操作。

    【讨论】:

    • 我想将嵌套的 XML 拆分为一个 xml 部分。在某些过程中,我必须提取节点的属性。例如,A 节点(它具有 id 属性)有 B 个子节点。我必须将每个 B 子节点作为一个具有 A 节点 id 属性的流文件。 (每个输出流文件必须有父节点的id属性)
    • 我还能按标签分割文件吗?你能帮我看看怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2021-12-08
    • 2011-08-21
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多