В соответствии с логикой маршрутизации, которую вы упомянули выше, поток может быть следующим:
ListFile(s) -> FetchFile(s) -> RouteOnAttribute -> PutFile(s)
В RouteOnAttribute
вы можете использовать поддержку языка выражений NiFi. Например, вы можете иметь три атрибута:
destination.one : ${filename:startsWith('abc')}
destination.two : ${filename:startsWith('def')}
destination.three : ${filename:startsWith('xyz')}
Объяснение
У вас будет три ListFile
процессора, подключенных к трем FetchFile
процессорам. Затем подключите выход Success
всех трех процессоров к RouteOnAttribute
, и после определения трех вышеупомянутых отношений вы можете подключить три отношения к соответствующим процессорам PutFile
.
В приведенном выше примере RouteOnAttribute
направляет файлы, имена которых начинаются с abc
, в отношение destination.one
, имена файлов, начинающиеся с def
, переходят в destination.two
и т. Д.