如何解决具有不同列的输入文件将在单个Nifi流中加载
我有一些具有不同列名的输入文件。我可以创建一个通用的Nifi流来处理所有类型的文件吗?每个文件将具有不同类型的列和要加载的不同类型的输出表。例如,文件1将具有要加载到表AB的列A,列B,文件2将具有要加载到表CDE的列C,列D,列E。我可以在单个流程中实现此目的,还是应该为不同类型的文件创建不同的流程?我是Nifi的新手,请提出建议。
解决方法
您应该只用一个流程就可以做到这一点,也许可以使用RouteOnContent来查找标题,以便您知道文件的类型。每个传出连接将对应于不同类型的文件/输出表,因此您可以在每个传出连接的另一端具有一个UpdateAttribute,以设置诸如表名之类的属性,可能是记录模式(如果使用基于记录的然后,您可以使用漏斗合并子流,或者仅将所有传出连接连接到下一个下游处理器是什么(例如,PutDatabaseTable)。
如果您根本不想拆分流程,则可能需要通过单个脚本(例如,使用ExecuteScript)完成识别文件类型和设置属性的相同工作。无论如何,下游处理器应该能够使用NiFi Expression Language来使用属性,以便同一处理器可以适当地处理不同的文件类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。