可以具体描述下你的问题么,没太看懂你的问题。
smallwong 于2020年10月14日周三 下午6:57写道:
> 哈喽,请问是做了什么调整?才10秒的窗口,期待每秒都输出结果的
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
--
Best,
Benchao Li
哈喽,请问是做了什么调整?才10秒的窗口,期待每秒都输出结果的
--
Sent from: http://apache-flink.147419.n8.nabble.com/
非常开心能够帮助到你~
刘建刚 于2020年4月15日周三 下午3:57写道:
> 感谢 Benchao,问题应解决了!
>
> 2020年4月15日 下午3:38,Benchao Li 写道:
>
> Hi 建刚,
>
> 现在Emit的原理是这样子的:
> - *当某个key*下面来了第一条数据的时候,注册一个emit delay之后的*处理时间定时器*;
> - 当定时器到了的时候,
> - 检查当前的key下的聚合结果跟上次输出的结果是否有变化,
> - 如果有变化,就发送-[old], +[new] 两条结果到下游;
> -
感谢 Benchao,问题应解决了!
> 2020年4月15日 下午3:38,Benchao Li 写道:
>
> Hi 建刚,
>
> 现在Emit的原理是这样子的:
> - 当某个key下面来了第一条数据的时候,注册一个emit delay之后的处理时间定时器;
> - 当定时器到了的时候,
> - 检查当前的key下的聚合结果跟上次输出的结果是否有变化,
> - 如果有变化,就发送-[old], +[new] 两条结果到下游;
> - 如果是没有变化,则不做任何处理;
> - 再次注册一个新的emit delay之后的处理时间定时器。
>
>
Hi 建刚,
现在Emit的原理是这样子的:
- *当某个key*下面来了第一条数据的时候,注册一个emit delay之后的*处理时间定时器*;
- 当定时器到了的时候,
- 检查当前的key下的聚合结果跟上次输出的结果是否有变化,
- 如果有变化,就发送-[old], +[new] 两条结果到下游;
- 如果是*没有变化,则不做任何处理*;
- 再次注册一个新的emit delay之后的处理时间定时器。
你可以根据这个原理,再对照下你的数据,看看是否符合预期。
刘建刚 于2020年4月15日周三 下午3:32写道:
>
>
我们也经常有固定窗口定期触发的需求,但是添加以下参数并没有得到预期的效果(10秒的窗口,期待每秒都输出结果),是我的使用方法不对还是其他问题呢?多谢各位,下面是伪代码:
public class EarlyEmitter {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
哈哈,学习了,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写道:
>
> >
> >
> >
> >
Hi,
这个输出是retract的是by design的,你可以自己改造下sink,来输出你想要的结果。
fast emit是按照处理时间来提前输出的。比如某个key下面来了第一条数据之后,开始设置一个固定周期的定时,如果下个周期聚合结果有发生变化,则输出。
flink小猪 <18579099...@163.com> 于2020年3月28日周六 下午8:25写道:
>
>
>
> 感谢您的回复,我试了一下,的确通过您说的这种方式,可以得到一个retract流的数据。换一个场景
> 我需要每小时计算当天的交易额(例如两点到了,我应该输出从0点到2点的总交易额)我想获得如下结果:
>
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
> >
第一个场景: 从SQL的角度,增加时间字段精确到分钟为key,格式如-MM-dd HH:mm。这样是不是就可以实现你要到效果了。
flink小猪 <18579099...@163.com> 于2020年3月27日周五 上午11:29写道:
> 我有两个需求
> 1.如果我需要开一个一分钟的窗口,但是我希望能够每5分钟输出一次结果(输出每分钟的聚合结果,即输出5行聚合结果),该怎么办?
> 2.如果我需要开一个一个小时的窗口,但是我希望能够每5分钟输出一次结果(窗口数据还没全部到达,先输出当前已经聚合的结果),该怎么办?
--
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.
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分钟窗口
> -
Hi,
For #1:
创建级联的两级window:
- 1分钟窗口
- 5分钟窗口,计算只是保存数据,发送明细数据结果
Best,
Jingsong Lee
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行聚合结果),该怎么办?
>
14 matches
Mail list logo