Nifi PutDatabaseRecord 使用 where 条件更新 table

Nifi PutDatabaseRecord to update a table with where condition

如何使用 PutDatabaseRecord 仅更新具有多个列的 table 命名学生的三列?我正在尝试使用 NiFi 通过 where 子句实现以下查询。

update student set class=v1,name=v2,section=v3 where 
id = v4

我正在使用 ExecuteSQL 处理器获取值 v1、v2、v3、v4。同一天可以有 100 名学生注册。因此,v1、v2、v3、v4 将是 json

的数组
 SELECT class,name,section,id
    FROM registration where registerd_on='20210530';

我的 PutDatabaseRecord 配置。我想了解如何在此处指定 where 条件?

根据文档

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.14.0/org.apache.nifi.processors.standard.PutDatabaseRecord/

Update keys - 以逗号分隔的列名列表,用于唯一标识一行。

因此,如果只有一列 id 作为 table 行标识符,则必须设置 Update keys = id

关于跟踪 sql 查询。尝试将以下行添加到 conf\logback.xml

<logger name="org.apache.nifi.processors.standard.PutDatabaseRecord" level="DEBUG"/>

有时 sql 应该出现在日志中,但我真的无法理解代码中的逻辑...

https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutDatabaseRecord.java