数据库
NiFi
问题描述
使用ExecuteSQL处理器调度表时,会出现以下错误消息:
ExecuteSQL [id = 09033e32-e840-1aed-3062-6e8cbc5551ba] ExecuteSQL [id = 09033e32-e840-1aed-3062-6e8cbc5551ba]由于createSchema无法处理会话:未知的SQL类型1111 / uuid(表:国家/地区, column:id)不能转换为Avro类型;可管理地产生1秒钟的处理器:java.lang.IllegalArgumentException:createSchema:未知的SQL类型1111 / uuid(表:国家/地区,列:id)无法转换为Avro类型
请注意,流文件不会从传入队列中删除,也不会发送到“失败”关系,从而导致失败尝试的无休止循环。
尝试解决问题
可能但不是首选的解决方案
最后的记录
答案 0 :(得分:1)
我相信UUID不是标准的JDBC类型,而是特定于Postgres。
JDBC类型类显示SQL类型1111为“ OTHER”:
/**
* The constant in the Java programming language that indicates
* that the SQL type is database-specific and
* gets mapped to a Java object that can be accessed via
* the methods <code>getObject</code> and <code>setObject</code>.
*/
public final static int OTHER = 1111;
所以我不确定NiFi怎么知道在这里做什么,因为它可能取决于DB的类型。
答案 1 :(得分:0)
您是否尝试过创建将列定义为:: text的视图?
SELECT
"v"."UUID_COLUMN"::text AS UUID_COLUMN
FROM
...