这是我的要求。 我在Vertica中有一个大表说base_table如下。 base_table
ID |路径|服务|经验
20 | / abc / xyz | trz |适度
22 | / wer / cmz | brd |专业
映射表
map_table1
path_id |路径
1 | / ABC / XYZ
map_table2
exp_id |经验
1 |初学者
决赛桌
ID | path_id |服务| exp_id
20 | 1 | trz | -
22 | - | brd | 2
在第一种情况下,我需要将ID设置为1,因为map_table1中存在路径列以及基表,并将该记录插入到最终表中。
在第二种情况下,我需要在map_table2中插入id为2,因为该表中不存在体验专业人员以及将其插入到最终表中。
我应该选择哪些处理器或Nifi中的流程如何?
答案 0 :(得分:0)
我不确定我是否正确理解了您的问题,但是如果我将这种情况概括化,则希望插入一条不存在的记录,然后获取相应ID的值(可能存在或可能不存在)之前)。
好消息是NiFi可以轻松地与Vertica之类的数据库一起使用,看看QueryDatabaseTable处理器。
然而,这里的挑战是NiFi旨在有效处理许多单独的消息,因此其设计并不是非常了解上下文。对于您的用例,您可能需要使用为与表一起使用而构建的工具。通常,解决方案为Spark,或者可以通过一些过程将其内置到数据库中。