这是我的要求。我在Vertica有一张大桌子,base_table说,如下所示。base_table
ID \ path _path服务/经验
20 \x{e76f} /abc/xyz \ trz中等
22 \x{e76f}\x{e76f}专业
映射表
map_table1
path_id维路径
1\x{e76f}abc/xyz
map_table2
exp_id +经验
1名初学者
终表
ID \ path_id _服务_path_id_
20 -1- trz -
22 - brd 2
在第一种情况下,我需要获得ID作为1,因为路径列存在于map_table1和基表中,并将该记录插入到最终表中。
在第二种情况下,我需要在map_table2中插入id as 2,因为经验专业人员并不存在于该表中,并将其插入到最后的表中。
在Nifi中,我应该选择哪个处理器,或者流应该是什么样的呢?
发布于 2019-03-02 22:45:06
我不确定我是否正确地理解了您的问题,但是如果我概括了这种情况,您希望插入一个记录,如果它不存在,然后得到相应ID的值(该ID以前可能存在,也可能不存在)。
好消息是,NiFi可以轻松地使用像Vertica这样的数据库,看看QueryDatabaseTable处理器。
然而,这里的挑战是,NiFi被设计为有效地处理许多单独的消息,因此被设计成不太了解上下文。对于您的使用过程,您可能希望使用一个用于处理表的工具。通常,这方面的解决方案将是火花,或者也许可以通过一些过程将其内置到数据库中。
https://stackoverflow.com/questions/47129192
复制相似问题