Re: flinksql如何控制结果输出的频率

2020-10-14 文章 Benchao Li
可以具体描述下你的问题么,没太看懂你的问题。 smallwong 于2020年10月14日周三 下午6:57写道: > 哈喽,请问是做了什么调整?才10秒的窗口,期待每秒都输出结果的 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ -- Best, Benchao Li

Re: flinksql如何控制结果输出的频率

2020-10-14 文章 smallwong
哈喽,请问是做了什么调整?才10秒的窗口,期待每秒都输出结果的 -- Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flinksql如何控制结果输出的频率

2020-04-15 文章 Benchao Li
非常开心能够帮助到你~ 刘建刚 于2020年4月15日周三 下午3:57写道: > 感谢 Benchao,问题应解决了! > > 2020年4月15日 下午3:38,Benchao Li 写道: > > Hi 建刚, > > 现在Emit的原理是这样子的: > - *当某个key*下面来了第一条数据的时候,注册一个emit delay之后的*处理时间定时器*; > - 当定时器到了的时候, > - 检查当前的key下的聚合结果跟上次输出的结果是否有变化, > - 如果有变化,就发送-[old], +[new] 两条结果到下游; > -

Re: flinksql如何控制结果输出的频率

2020-04-15 文章 刘建刚
感谢 Benchao,问题应解决了! > 2020年4月15日 下午3:38,Benchao Li 写道: > > Hi 建刚, > > 现在Emit的原理是这样子的: > - 当某个key下面来了第一条数据的时候,注册一个emit delay之后的处理时间定时器; > - 当定时器到了的时候, > - 检查当前的key下的聚合结果跟上次输出的结果是否有变化, > - 如果有变化,就发送-[old], +[new] 两条结果到下游; > - 如果是没有变化,则不做任何处理; > - 再次注册一个新的emit delay之后的处理时间定时器。 > >

Re: flinksql如何控制结果输出的频率

2020-04-15 文章 Benchao Li
Hi 建刚, 现在Emit的原理是这样子的: - *当某个key*下面来了第一条数据的时候,注册一个emit delay之后的*处理时间定时器*; - 当定时器到了的时候, - 检查当前的key下的聚合结果跟上次输出的结果是否有变化, - 如果有变化,就发送-[old], +[new] 两条结果到下游; - 如果是*没有变化,则不做任何处理*; - 再次注册一个新的emit delay之后的处理时间定时器。 你可以根据这个原理,再对照下你的数据,看看是否符合预期。 刘建刚 于2020年4月15日周三 下午3:32写道: > >

Re: flinksql如何控制结果输出的频率

2020-04-15 文章 刘建刚
我们也经常有固定窗口定期触发的需求,但是添加以下参数并没有得到预期的效果(10秒的窗口,期待每秒都输出结果),是我的使用方法不对还是其他问题呢?多谢各位,下面是伪代码: public class EarlyEmitter { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(1);

Re: Re: flinksql如何控制结果输出的频率

2020-03-29 文章 LakeShen
哈哈,学习了,Benchao, Benchao Li 于2020年3月28日周六 下午11:26写道: > Hi, > > 这个输出是retract的是by design的,你可以自己改造下sink,来输出你想要的结果。 > fast > emit是按照处理时间来提前输出的。比如某个key下面来了第一条数据之后,开始设置一个固定周期的定时,如果下个周期聚合结果有发生变化,则输出。 > > flink小猪 <18579099...@163.com> 于2020年3月28日周六 下午8:25写道: > > > > > > > > >

Re: Re: flinksql如何控制结果输出的频率

2020-03-28 文章 Benchao Li
Hi, 这个输出是retract的是by design的,你可以自己改造下sink,来输出你想要的结果。 fast emit是按照处理时间来提前输出的。比如某个key下面来了第一条数据之后,开始设置一个固定周期的定时,如果下个周期聚合结果有发生变化,则输出。 flink小猪 <18579099...@163.com> 于2020年3月28日周六 下午8:25写道: > > > > 感谢您的回复,我试了一下,的确通过您说的这种方式,可以得到一个retract流的数据。换一个场景 > 我需要每小时计算当天的交易额(例如两点到了,我应该输出从0点到2点的总交易额)我想获得如下结果: >

Re: flinksql如何控制结果输出的频率

2020-03-27 文章 Benchao Li
Jark, 这个功能我们用的还挺多的~ 现在还有个痛点是window operator不支持retract输入,所以用了emit就没有办法做到窗口级联使用了。 Jark Wu 于2020年3月27日周五 下午8:01写道: > Benchao 可以啊。这么隐秘的实验性功能都被你发现了 :D > > On Fri, 27 Mar 2020 at 15:24, Benchao Li wrote: > > > Hi, > > > > 对于第二个场景,可以尝试一下fast emit: > > table.exec.emit.early-fire.enabled = true > >

Re: flinksql如何控制结果输出的频率

2020-03-27 文章 Tianwang Li
第一个场景: 从SQL的角度,增加时间字段精确到分钟为key,格式如-MM-dd HH:mm。这样是不是就可以实现你要到效果了。 flink小猪 <18579099...@163.com> 于2020年3月27日周五 上午11:29写道: > 我有两个需求 > 1.如果我需要开一个一分钟的窗口,但是我希望能够每5分钟输出一次结果(输出每分钟的聚合结果,即输出5行聚合结果),该怎么办? > 2.如果我需要开一个一个小时的窗口,但是我希望能够每5分钟输出一次结果(窗口数据还没全部到达,先输出当前已经聚合的结果),该怎么办? --

Re: flinksql如何控制结果输出的频率

2020-03-27 文章 Jark Wu
Benchao 可以啊。这么隐秘的实验性功能都被你发现了 :D On Fri, 27 Mar 2020 at 15:24, Benchao Li wrote: > Hi, > > 对于第二个场景,可以尝试一下fast emit: > table.exec.emit.early-fire.enabled = true > table.exec.emit.early-fire.delay = 5min > > PS: > 1. 这个feature并没有在官方文档里面写出来,目前应该是一个实验性质的feature > 2.

Re: flinksql如何控制结果输出的频率

2020-03-27 文章 Benchao Li
Hi, 对于第二个场景,可以尝试一下fast emit: table.exec.emit.early-fire.enabled = true table.exec.emit.early-fire.delay = 5min PS: 1. 这个feature并没有在官方文档里面写出来,目前应该是一个实验性质的feature 2. window加了emit之后,会由原来输出append结果变成输出retract结果 Jingsong Li 于2020年3月27日周五 下午2:51写道: > Hi, > > For #1: > 创建级联的两级window: > - 1分钟窗口 > -

Re: flinksql如何控制结果输出的频率

2020-03-27 文章 Jingsong Li
Hi, For #1: 创建级联的两级window: - 1分钟窗口 - 5分钟窗口,计算只是保存数据,发送明细数据结果 Best, Jingsong Lee

Re: flinksql如何控制结果输出的频率

2020-03-26 文章 Jun Zhang
hi: 你可以自定义一个trigger [1] 第二个场景是可以的,第一种场景我没有遇到过这种场景,你可以试试。 https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html flink小猪 <18579099...@163.com> 于2020年3月27日周五 上午11:29写道: > 我有两个需求 > 1.如果我需要开一个一分钟的窗口,但是我希望能够每5分钟输出一次结果(输出每分钟的聚合结果,即输出5行聚合结果),该怎么办? >