- 主题:请教一个flink的问题
flink设置了window之后,是每个window结束的时候才调用一次sink?
还是有办法每个数据过来之后都sink一下
--
FROM 180.167.95.*
那在这个window结束之前,结果就不可见了?
如果我一个window是一天的话,那岂不是要一天结束了才能知道统计结果
【 在 emirbobo (骑白马的) 的大作中提到: 】
: 每个window结束sink一次
--
FROM 180.167.95.*
谢谢
那看来我这个就不能用窗口了
【 在 emirbobo (骑白马的) 的大作中提到: 】
: 窗口就是你收集数据的时间区间,没有结束会一直收集,不会sink
--
FROM 180.167.95.*
假如我的sink是写数据库
这种做法的好处就是不用来一条数据就写一次数据库?
如果写数据库的频率比较低的话,是不是干脆别开窗口了?
【 在 zeus2615 (zeuslord·呆猫) 的大作中提到: 】
: 这种场景一般是开两个窗口,一个细粒度去写临时存储,另一个完整粒度去写最终存储。完整粒度内的去读临时存储
--
FROM 180.167.95.*
执行sink本身是异步的吗
【 在 zeus2615 (zeuslord·呆猫) 的大作中提到: 】
: 一般窗口是做聚合数据的,你的场景根本就不是聚合而是每条数据触发的话,就不需要这么干,直接用方法异步出去就行了
--
FROM 180.167.95.*
想了想,应该是同步的
要做成异步的,估计还得借助外部队列之类的东西来搞
【 在 guestking (无) 的大作中提到: 】
: 执行sink本身是异步的吗
--
FROM 180.167.95.*
我不是说和主线程是不是同步
我是说在每个slot里面应该是同步的
比如我并行设置为8,这8个线程被sink阻塞的话,那么就没法再处理后面的数据了,要
等sink完成才行
【 在 emirbobo (骑白马的) 的大作中提到: 】
: 主线程和sink在不同线程,你可以试试在main函数设置一个其他类的静态变量,在sink里是取不到的
--
FROM 101.86.19.*
滑动窗口,你也是要等窗口结束了才能得到数据
【 在 ilovecpp (cpp) 的大作中提到: 】
: 用滑动窗口啊。
--
FROM 101.86.19.*