Apache NiFi EvaluateXQuery - PullRequest
       1

Apache NiFi EvaluateXQuery

0 голосов
/ 22 февраля 2019

Я пытаюсь использовать NiFi, чтобы разбить документ XML на несколько потоковых файлов.XML содержит много элементов из веб-службы.Я пытаюсь обработать каждое событие отдельно.Я думаю, что EvaluateXQuery - подходящий процессор, но я не могу придумать, добавить ли мой XQuery, если местом назначения является потоковый файл, а не атрибут.Я знаю, что должен добавить пару свойство / значение на странице конфигурации / свойств процессора, но не могу понять, каким должно быть имя свойства.Это имеет значение?

1 Ответ

0 голосов
/ 22 февраля 2019

Если вам нужно извлечь только один элемент, тогда да, добавьте динамическое свойство с любым именем и установите для пункта назначения значение flowfile-content .

Вы можете добавить несколько динамических свойств в процессор, чтобы извлечь элементы в атрибуты в исходящем файле потока.Если вы хотите затем заменить содержимое файла потока на атрибуты, вы можете использовать процессор, такой как ReplaceText или AttributesToJson, чтобы объединить несколько атрибутов в содержимое файла потока.

Несколько вещей, которые нужно запомнить:

  • извлечение нескольких больших элементов в атрибуты - это анти-паттерн, так как это ухудшит производительность в куче
  • вы можетеЛучше сначала разбить XML-файл на порции с помощью SplitXML, чтобы затем извлечь отдельный элемент на порцию в содержимое потокового файла (или атрибут)
...