请在下面找到我的流程,
ExecuteSQL
- > SplitAvro
- > ConvertAvroToJSON
- > ConvertJSONToSql
- > PutSQL
请注意接收 5403 并发送 10804 的ConvertJSONToSQL
处理器。有人可以解释一下这里发生了什么吗?我希望看到IN和OUT计数与CovertAvroToJSON
处理器一样。这个增加的数字将直接影响我的最终输出表,在那里我可以看到所有记录的重复。
ConvertJSONToSQL
处理器注入可能重复的SQL插入语句?
更新2/28
我已经取出了SplitAvro
处理器,并且没有重复的记录!请在下面的流程中找到,
ExecuteSQL
- > ConvertAvroToJSON
- > ConvertJSONToSql
- > PutSQL
虽然我还没弄清楚确切的问题!
答案 0 :(得分:3)
您的流/数据是否有可能即使在SplitAvro和ConvertAvroToJSON之后,流文件也包含JSON数组?根据文档,“如果输入是一个JSON元素数组,则数组中的每个元素都作为单独的FlowFile输出到'sql'关系”。
也许试试ConvertAvroToJSON - > SplitJSON而不是SplitAvro - > ConvertAvroToJSON。如果你仍然在“顶层”获得数组,那么ConvertJsonToSQL仍然会为数组中的每个元素创建一个流文件。在这种情况下,您可能需要另一个SplitAvro或(或者)一个SplitJson。