hi

感谢您的建议,我这边尝试一下自定义实现sink的方式。




Best,
Jack










在 2020-06-15 18:08:15,"godfrey he" <godfre...@gmail.com> 写道:

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

Reply via email to