我在不同的位置有 3 个文件,我使用 3 个列表文件处理器,然后是提取文件处理器。现在我想将这些文件路由到它们各自的目的地,这对于所有 3 个文件都是不同的。需要一些关于如何做到这一点的帮助。
谢谢
根据您上面提到的路由逻辑,您可以将流程设为:
ListFile(s) -> FetchFile(s) -> RouteOnAttribute -> PutFile(s)
Run Code Online (Sandbox Code Playgroud)
在 中RouteOnAttribute,您可以使用 NiFi 表达式语言支持。例如,您可以拥有三个属性:
destination.one : ${filename:startsWith('abc')}
destination.two : ${filename:startsWith('def')}
destination.three : ${filename:startsWith('xyz')}
Run Code Online (Sandbox Code Playgroud)
解释
您将有三个ListFile处理器连接到三个FetchFile处理器。然后将Success所有三个处理器的输出连接到RouteOnAttribute,定义好以上三个关系后,就可以将这三个关系连接到相关的PutFile处理器上。
在上面的示例中,将RouteOnAttribute名称以 开头的文件路由abc到关系destination.one,以 开头的文件名def转到destination.two等等。
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |