Flink sql使用中报错问题以及解决

Flink sql 报错问题以及解决

记录在使用Flink sql时出现的问题以及解决方式

1.时间戳问题

消费kafka数据,转换成一个DataStream后,通过tableEnv进行将DataStream的数据注册成表,在执行查询的时候出现了报错,后再进入到官网查看,说需要传入一个timestamp而我传入的是一个BigInt,导致出现了报错,

org.apache.flink.table.api.ValidationException: SQL validation failed. From line 1, column 121 to line 1, column 157: Cannot apply 'TUMBLE' to arguments of type 'TUMBLE(<VARCHAR(65536)>, <INTERVAL MINUTE>)'. Supported form(s): 'TUMBLE(<DATETIME>, <DATETIME_INTERVAL>)'
'TUMBLE(<DATETIME>, <DATETIME_INTERVAL>, <TIME>)'

这个问题我查找半天,我传入了时间戳,而他要的是timestamp,后来去官网查找,由于官网没有给具体的一个原因,后来我在Flink的钉钉的Apache Flink China社区群中,群中Committer大佬指出了问题


image.png

在我后来的代码我中将元素中的时间戳 新加字段Timestamp类型,在注册表的时候,将时间戳指定为rowTime,在后面就可以使用时间进行窗口操作了

总结
也就是说我们直接使用时间戳是不行的,因为Flink会将我们的时间戳识别成BigInt,所以我们需要在创建之初需要将时间戳转换成Timestamp类型才可以

具体代码


image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容