说到nifi,我是个彻头彻尾的傻瓜——所以请随意强调任何愚蠢/无知。
我在用nifi阅读Kafka主题的信息。
每个消息都包含json,其中包含一个名为function的字段,然后是一大堆基于函数的不同字段。例如,如果function=“login”,则需要用户名和密码字段,但如果function=“pay”,则需要“from”、“to”和“amount”字段。
我需要以不同的方式处理每种类型的函数。所以,基本上,我想阅读Kafka的信息,确定函数,然后根据函数将信息路由到适当的规则集。
听起来这应该很简单,但有一点复杂。我有大约500种不同类型的函数。所以,我不想为每个函数添加routeonattribute节点。
有没有更好的办法?如果这是“真正的代码”,我想我是在寻找“if”语句和某种“switch/case”语句之间的区别。。。。
1条答案
按热度按时间lc8prwob1#
首先使用evaluatejsonpath将函数提取到一个流文件属性中,然后使用routeonattribute,该属性需要添加500个条件,然后将这500个条件中的每一个连接到任何需要后续处理的地方。您唯一能做的另一件事是实现一个自定义处理器,在内部处理500个条件。