Объединить поток файлов на основе условий, используя нифи? - PullRequest
0 голосов
/ 28 июня 2018

У меня было 3 потока файлов, приходящих с одного процессора.

FF1 -> {a: 1, b: 2, c: 'name'}

FF2 -> {a: 1, b: 5, c: 'fruit'}

FF3 -> {a: 2, b: 3, c: 'abc'}

Используя процессор MergeContent, я могу объединить все файлы потоков, но мое требование - объединить файлы потоков на Key.

Ожидаемый вывод, если я присоединюсь с ключом 'a':

FF1 -> [{a: 1, b: 2, c: 'name'}, {a: 1, b: 5, c: 'fruit'}]

FF2 -> [{a: 2, b: 3, c: 'abc'}]

1 Ответ

0 голосов
/ 28 июня 2018

MergeContent имеет свойство «Атрибут корреляции», которое является именем атрибута файла потока, который будет использоваться для группировки файлов потока с одинаковым значением для атрибута (ключ в вашем примере).

Вам нужно будет извлечь значение поля «a» в атрибут файла потока, используя что-то вроде EvaluateJsonPath или ExtractText, или какой-то другой обработчик сценариев, а затем, как только вы попадете в атрибут, такой как «my.key», вы добавите my.key в свойстве Correlation Attribute.

...