我的NIFI流具有
...->ExecuteSQL->CovertRecord->..
在处理我的流程时,它停留在ExecuteSQL
处理器上。我的ExecuteSQL运行如下查询:
select f_id,UDF_MD5('J=iDl47av=L'||foo||'%Xh)R/ljFrp') from bar
错误[计时器驱动的进程线程10] o.a.nifi.processors.standard.ExecuteSQL ExecuteSQL [id = 5ea0e2b3-0af5-3e47-6d53-964fe8cbf9f7] ExecuteSQL [id = 5ea0e2b3-0af5-3e47-6d53-964fe8cbf9f7]处理失败 org.apache.avro.SchemaParseException导致的会话:非法字符 在:udf_md5(((('J = iDl47av = L'|| foo)||'%Xh)R / ljFrp'));; 处理程序的管理产量为1秒: org.apache.avro.SchemaParseException:非法字符: udf_md5(((('J = iDl47av = L'|| foo)||'%Xh)R / ljFrp')) org.apache.avro.SchemaParseException:非法字符: udf_md5(((('J = iDl47av = L'|| foo)||'%Xh)R / ljFrp'))
我认为它必须对udf_md5属性的Avro命名规范进行某些处理。我可以知道可以解决这个问题吗?
答案 0 :(得分:1)
尝试在ExecuteSQL中将“规范化表/列名”设置为true。
答案 1 :(得分:1)
尝试使用别名作为udf_md5函数列,然后尝试再次运行查询。
查询:
select f_id,UDF_MD5('J=iDl47av=L'||foo||'%Xh)R/ljFrp') as udf_md from bar