是否可以在后续的ExecuteSQL
处理器中引用FlowFile的内容?
例如:
GenerateTableFetch
和ExecuteSQL
来轮询数据库表。QueryRecord
来转换结果-具体来说,使用MAX()
和GROUP BY
操作,因为我不能在GenerateTableFetch
处理器上使用此运算符。。
SELECT
hu_id
,wh_id
,MAX(audit_timestamp) AS "newest_timestamp"
FROM FLOWFILE
GROUP BY
hu_id
,wh_id
。
SELECT
FLOWFILE.hu_id
,FLOWFILE.wh_id
,FLOWFILE.newest_timestamp
,hum.status
,hum.location_id
FROM FLOWFILE
INNER JOIN AAD.dbo.t_hu_master hum ON
FLOWFILE.hu_id = hum.hu_id
AND FLOWFILE.wh_id = hum.wh_id
...有效地引用Avro FlowFile内容以执行多联接。
如果这不可能,那么是否有一个优雅的解决方法?到目前为止,我能想到的唯一解决方案是...
SplitAvro
ConvertAvroToJSON
EvaluateJSONPath
ReplaceText
(使用wh_id
和hu_id
创建一堆单独的SQL SELECT语句),然后... ExecuteSQL
任何想法或见解都受到赞赏!
答案 0 :(得分:2)
在即将发布的1.10.0版本中,您将能够使用LookupRecord和新的DatabaseRecordLookupService(请参见NIFI-6082)从数据库中进行查找,这实际上可以进行联接。同时,我认为您将需要类似的东西或脚本处理器(请参阅ExecuteGroovyScript的“其他详细信息”页面)来自己进行查找。