hi jack,jincheng Flink 1.11 支持直接将select的结果collect到本地,例如: CloseableIterator<Row> it = tEnv.executeSql("select ...").collect(); while(it.hasNext()) { it.next() .... }
但是 pyflink 还没有引入 collect() 接口。(后续会完善?@jincheng) 但是1.11的TableResult#collect实现对流的query支持不完整(只支持append only的query),master已经完整支持。 可以参照 jincheng 的意见,(或者结合 TableResult#collect 的实现),完成一个自己的 sink 也可以。 Best, Godfrey jincheng sun <sunjincheng...@gmail.com> 于2020年6月15日周一 下午4:14写道: > 你好 Jack, > > > pyflink 从source通过sql对数据进行查询聚合等操作 不输出到sink中,而是可以直接作为结果, > 我这边可以通过开发web接口直接查询这个结果,不必去sink中进行查询 > > 我理解你上面说的 【直接作为结果】+ 【web接口查询】已经包含了“sink”的动作。只是这个“sink” 是这样的实现而已。对于您的场景: > 1. 如果您想直接将结果不落地(不存储)执行推送的 web页面,可以自定义一个Web Socket的Sink。 > 2. 如果您不是想直接推送到web页面,而是通过查询拉取结果,那么您上面说的 > 【直接作为结果】这句话就要描述一下,您想怎样作为结果?我理解是要落盘的(持久化),所以这里持久化本质也是一个sink。Flink可以支持很多中sink,比如:数据库,文件系统,消息队列等等。您可以参考官方文档: > > https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/connect.html > > 如果上面回复 没有解决你的问题,欢迎随时反馈~~ > > Best, > Jincheng > > > > Jeff Zhang <zjf...@gmail.com> 于2020年6月9日周二 下午5:39写道: > >> 可以用zeppelin的z.show 来查询job结果。这边有pyflink在zeppelin上的入门教程 >> https://www.bilibili.com/video/BV1Te411W73b?p=20 >> 可以加入钉钉群讨论:30022475 >> >> >> >> jack <wslyk...@163.com> 于2020年6月9日周二 下午5:28写道: >> >>> 问题请教: >>> 描述: pyflink 从source通过sql对数据进行查询聚合等操作 >>> 不输出到sink中,而是可以直接作为结果,我这边可以通过开发web接口直接查询这个结果,不必去sink中进行查询。 >>> >>> flink能否实现这样的方式? >>> 感谢 >>> >> >> >> -- >> Best Regards >> >> Jeff Zhang >> >