使用Apache Nifi更新记录

时间:2019-11-06 07:15:55

标签: apache-nifi

我想要做的与here完全相同

但是当我使用QueryRecord处理器时,我得到一个错误:

  

准备语句时出错。

在我的情况下,我有60列以上,而我只想在第59列上执行。

SQL语句:

select ... (many columns),
case when MSISDN=1994 then 0
when MSISDN=94 then 0
end MSISDN,
..(another a few columns)
from Flowfile

我只想用0代替1994或94。

我必须为此使用另一个处理器吗?

1 个答案:

答案 0 :(得分:1)

错误消息指出

  

准备语句时出错。

您的SQL查询无效。

输入:

ID,MSISDN,FOO
1,1994,X
2,94,Y

查询:

SELECT ID,
    CASE 
        WHEN MSISDN=1994 THEN 0
        WHEN MSISDN=94 THEN 1
    END MSISDN,
    CASE 
        WHEN FOO='X' THEN 'BAR'
        WHEN FOO='Y' THEN 'BAZ'
    END FOO
FROM Flowfile

输出:

enter image description here

流量:

enter image description here

QueryRecord属性:

enter image description here

PS:如果您仍然无法创建有效的查询,请将完整查询添加到您的问题中,以便我们找出问题所在。