Apache nifi ApacheNIFI查询

Apache nifi ApacheNIFI查询,apache-nifi,Apache Nifi,我试图使用NiFi将XML文档分解为多个流文件。XML包含来自web服务的许多元素。我试图分别处理每个事件。我认为EvaluateXQuery是合适的处理器,但如果目标是一个flowfile而不是一个属性,我不知道如何添加我的XQuery。我知道我必须在processor config/properties页面中添加一个属性/值对,但我不知道属性名称应该是什么。这有关系吗 如果只需要提取一个元素,那么是的,添加一个具有任意名称的动态属性,并将目标设置为flowfile内容 您可以向处理器添加多个

我试图使用NiFi将XML文档分解为多个流文件。XML包含来自web服务的许多元素。我试图分别处理每个事件。我认为EvaluateXQuery是合适的处理器,但如果目标是一个flowfile而不是一个属性,我不知道如何添加我的XQuery。我知道我必须在processor config/properties页面中添加一个属性/值对,但我不知道属性名称应该是什么。这有关系吗

如果只需要提取一个元素,那么是的,添加一个具有任意名称的动态属性,并将目标设置为flowfile内容

您可以向处理器添加多个动态属性,以将元素提取到传出流文件的属性中。如果随后要用属性替换流文件内容,可以使用类似于
ReplaceText
AttributesToJson
的处理器将多个属性组合到流文件内容中

有几件事需要记住:

  • 将多个大型元素提取到属性是一种反模式,因为这将损害堆的性能
  • 您最好先通过
    SplitXML
    将XML文件分割成块,然后将每个块的单个元素提取到flowfile内容(或属性)中

如果只需要提取一个元素,那么是的,添加一个具有任意名称的动态属性,并将目标设置为flowfile内容

您可以向处理器添加多个动态属性,以将元素提取到传出流文件的属性中。如果随后要用属性替换流文件内容,可以使用类似于
ReplaceText
AttributesToJson
的处理器将多个属性组合到流文件内容中

有几件事需要记住:

  • 将多个大型元素提取到属性是一种反模式,因为这将损害堆的性能
  • 您最好先通过
    SplitXML
    将XML文件分割成块,然后将每个块的单个元素提取到flowfile内容(或属性)中

谢谢!你的回答使我确信我走上了正确的道路。我确信我不知怎么搞砸了房产的名称。相反,我的XQuery很糟糕。仔细阅读文档发现,带有flowfile内容目标的XQuery处理器忽略了属性名称。谢谢!你的回答使我确信我走上了正确的道路。我确信我不知怎么搞砸了房产的名称。相反,我的XQuery很糟糕。仔细阅读文档后发现,具有flowfile内容目标的XQuery处理器忽略了属性名称。