在Flink sql进行测试输出, 想把 sql查询的结果Table 转为DataStream 然后进行打印
当我们table.toAppendStream[Row]的时候 发现报错

其实这个因为我们sql 查的那个动态表 是Mysql 这类源, 他们是可以进行update,delete,insert操作的。
对于toAppendStream呢 是仅可以将追加流进行转换输出 比如kafka
所以我们使用
table.toRetractStream[Row].print() 即可
这操作呢打印结果是一个有两部分, 前面部分为boolean类型, 后面是你的select 其中 true表示insert ,false表示 update/delete
table.toRetractStream[Row].print() 即可
tableEnv.toRetractStream(table,EventLog.class).print();
对于Table / sql 转 Stream 可以看官网也有详细的讲解
官网

本文介绍了如何在Flink中将SQL查询的Table转换为DataStream并进行打印。由于MySQL等动态表支持update和delete操作,直接使用toAppendStream会报错。解决方法是使用toRetractStream,它的输出包括一个boolean值和Row,true表示insert,false表示update/delete。通过table.toRetractStream[Row].print()即可打印结果。此外,官方文档也提供了详细说明。
1440

被折叠的 条评论
为什么被折叠?



