Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 查询结果和已注册表链接的字段类型不匹配_Apache Flink_Flink Streaming_Flink Sql - Fatal编程技术网

Apache flink 查询结果和已注册表链接的字段类型不匹配

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

由table.printSchema()打印的查询结果架构:

|--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>')]