Apache flink 查询结果和已注册表链接的字段类型不匹配
由table.printSchema()打印的查询结果架构:Apache flink 查询结果和已注册表链接的字段类型不匹配,apache-flink,flink-streaming,flink-sql,Apache Flink,Flink Streaming,Flink Sql,由table.printSchema()打印的查询结果架构: |--deviceId:BIGINT |--频道:字符串 |--schemaId:BIGINT |--productId:BIGINT |--架构:遗留('RAW','ANY') 执行table.toRetractStream[DeviceSchema].print()时出现错误,引发异常: Exception in thread "main" org.apache.flink.table.api.ValidationExcepti
|--deviceId:BIGINT
|--频道:字符串
|--schemaId:BIGINT
|--productId:BIGINT
|--架构:遗留('RAW','ANY')
执行table.toRetractStream[DeviceSchema].print()时出现错误,引发异常:
Exception in thread "main" org.apache.flink.table.api.ValidationException: Field types of query result and registered TableSink do not match.
Query schema: [deviceId: BIGINT, channel: STRING, schemaId: BIGINT, productId: BIGINT, schema: RAW('com.yunmo.iot.schema.Schema', ?)]
Sink schema: [deviceId: BIGINT, channel: STRING, schemaId: BIGINT, productId: BIGINT, schema: LEGACY('RAW', 'ANY<com.yunmo.iot.schema.Schema>')]
线程“main”org.apache.flink.table.api.ValidationException中的异常:查询结果和注册的表链接的字段类型不匹配。
查询架构:[deviceId:BIGINT,channel:STRING,schemaId:BIGINT,productId:BIGINT,schema:RAW('com.yunmo.iot.schema.schema',?)]
接收器架构:[deviceId:BIGINT,channel:STRING,schemaId:BIGINT,productId:BIGINT,schema:LEGACY('RAW','ANY')]
com.yunmo.iot.schema.schema是泛型类型
查询架构的schema字段从LEGACY('RAW'更改为RAW),但Sink架构仍然是LEGACY('RAW'不幸的是,Flink表和SQL API的类型系统返工尚未完成,可能并非所有层都能很好地配合。您是如何定义您的数据类型的?您是否混合了
数据类型
和不推荐的类型
?一致地使用类型
现在应该可以解决问题。否则,请放心在Flink的问题跟踪器上打开问题。我看到您创建了一个关于此的问题:。
是的,这是blink planner中的一个bug,我们将在1.10.1中修复它。您现在可以使用旧的planner作为解决方案。我既没有使用数据类型也没有使用类型,只需调用fromDataStream和StoreTracStream即可。
Exception in thread "main" org.apache.flink.table.api.ValidationException: Field types of query result and registered TableSink do not match.
Query schema: [deviceId: BIGINT, channel: STRING, schemaId: BIGINT, productId: BIGINT, schema: RAW('com.yunmo.iot.schema.Schema', ?)]
Sink schema: [deviceId: BIGINT, channel: STRING, schemaId: BIGINT, productId: BIGINT, schema: LEGACY('RAW', 'ANY<com.yunmo.iot.schema.Schema>')]