Nifi:由于SQL查询中存在非法字符,因此无法执行ExecuteSQL

时间:2018-10-19 14:24:08

标签: apache-nifi

我的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命名规范进行某些处理。我可以知道可以解决这个问题吗?

2 个答案:

答案 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