在NiFi流程中,我想读取JSON结构,拆分它,使用有效负载执行SQL查询,最后将每个结果输出到JSON文件中。
但是我在ExecuteSQL
处理器中检索拆分的FlowFile属性的值时遇到了问题。
答案 0 :(得分:4)
EvaluateJsonPath
和ExtractText
之间需要额外的SplitJson
(或ExecuteSQL
)处理器 - 表达式语言表达式无法评估参数替换的流文件内容,因此您的SQL表达式最终为SELECT * FROM foo WHERE id = ;
,这就是您遇到语法错误的原因。
表达式语言从flowfile属性读取,因此您需要将JSON内容解析为可访问的属性。 EvaluateJsonPath
处理器正是这样做的。您需要做的就是添加一个自定义属性(单击属性对话框右上角的+
),然后将JSON中的id
值提取到一个flowfile属性中。然后将matched
关系从此处理器连接到ExecuteSQL
处理器。