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] 两条结果到下游;
>  - 如果是*没有变化,则不做任何处理*;
>   - 再次注册一个新的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);
>>
>>   EnvironmentSettings settings = 
>> EnvironmentSettings.newInstance().useBlink
>>
>> StreamTableEnvironment tEnv = StreamTableEnvironment.create(env,
>> settings);
>>
>> tEnv.getConfig().getConfiguration().setBoolean(
>> "table.exec.emit.early-fire.enabled", true);
>> tEnv.getConfig().getConfiguration().setString(
>> "table.exec.emit.early-fire.delay", "1000 ms");
>>
>> Table table = tEnv.fromDataStream(
>> env.addSource(new SourceData()), "generate_time, name, city, id,
>> event_time.proctime");
>> tEnv.createTemporaryView("person", table);
>>
>> String emit =
>> "SELECT name, COUNT(DISTINCT id)" +
>> "FROM person " +
>> "GROUP BY TUMBLE(event_time, interval '10' second), name";
>>
>> Table result = tEnv.sqlQuery(emit);
>> tEnv.toRetractStream(result, Row.class).print();
>>
>> env.execute("IncrementalGrouping");
>> }
>>
>> private static final class SourceData implements
>> SourceFunction> {
>> @Override
>> public void run(SourceContext> ctx) throws
>> Exception {
>> while (true) {
>> long time = System.currentTimeMillis();
>> ctx.collect(Tuple4.of(time, "flink", "bj", 1L));
>> }
>> }
>>
>> @Override
>> public void cancel() {
>>
>> }
>> }
>> }
>>
>>
>>
>>
>>
>> 2020年3月27日 下午3:23,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分钟窗口
>> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>>
>> Best,
>> Jingsong Lee
>>
>>
>>
>> --
>>
>> Benchao Li
>> School of Electronics Engineering and Computer Science, Peking University
>> Tel:+86-15650713730
>> Email: libenc...@gmail.com ; libenc...@pku.edu.cn
>>
>>
>>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn
>
>
>

-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


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

2020-04-15 文章 刘建刚
感谢 Benchao,问题应解决了!

> 2020年4月15日 下午3:38,Benchao Li  写道:
> 
> Hi 建刚,
> 
> 现在Emit的原理是这样子的:
> - 当某个key下面来了第一条数据的时候,注册一个emit delay之后的处理时间定时器;
> - 当定时器到了的时候,
>   - 检查当前的key下的聚合结果跟上次输出的结果是否有变化,
>  - 如果有变化,就发送-[old], +[new] 两条结果到下游;
>  - 如果是没有变化,则不做任何处理;
>   - 再次注册一个新的emit delay之后的处理时间定时器。
> 
> 你可以根据这个原理,再对照下你的数据,看看是否符合预期。
> 
> 刘建刚 mailto:liujiangangp...@gmail.com>> 
> 于2020年4月15日周三 下午3:32写道:
> 我们也经常有固定窗口定期触发的需求,但是添加以下参数并没有得到预期的效果(10秒的窗口,期待每秒都输出结果),是我的使用方法不对还是其他问题呢?多谢各位,下面是伪代码:
> 
> public class EarlyEmitter {
>public static void main(String[] args) throws Exception {
>   StreamExecutionEnvironment env = 
> StreamExecutionEnvironment.getExecutionEnvironment();
>   env.setParallelism(1);
> 
>   EnvironmentSettings settings = 
> EnvironmentSettings.newInstance().useBlink
>   StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, 
> settings);
> 
>   
> tEnv.getConfig().getConfiguration().setBoolean("table.exec.emit.early-fire.enabled",
>  true);
>   
> tEnv.getConfig().getConfiguration().setString("table.exec.emit.early-fire.delay",
>  "1000 ms");
> 
>   Table table = tEnv.fromDataStream(
> env.addSource(new SourceData()), "generate_time, name, city, id, 
> event_time.proctime");
>   tEnv.createTemporaryView("person", table);
> 
>   String emit =
> "SELECT name, COUNT(DISTINCT id)" +
>   "FROM person " +
>   "GROUP BY TUMBLE(event_time, interval '10' second), name";
> 
>   Table result = tEnv.sqlQuery(emit);
>   tEnv.toRetractStream(result, Row.class).print();
> 
>   env.execute("IncrementalGrouping");
>}
> 
>private static final class SourceData implements 
> SourceFunction> {
>   @Override
>   public void run(SourceContext> ctx) 
> throws Exception {
>  while (true) {
> long time = System.currentTimeMillis();
> ctx.collect(Tuple4.of(time, "flink", "bj", 1L));
>  }
>   }
> 
>   @Override
>   public void cancel() {
> 
>   }
>}
> }
> 
> 
> 
> 
>> 2020年3月27日 下午3:23,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 mailto:jingsongl...@gmail.com>> 
>> 于2020年3月27日周五 下午2:51写道:
>> 
>>> Hi,
>>> 
>>> For #1:
>>> 创建级联的两级window:
>>> - 1分钟窗口
>>> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>>> 
>>> Best,
>>> Jingsong Lee
>>> 
>> 
>> 
>> -- 
>> 
>> Benchao Li
>> School of Electronics Engineering and Computer Science, Peking University
>> Tel:+86-15650713730
>> Email: libenc...@gmail.com ; 
>> libenc...@pku.edu.cn 
> 
> 
> 
> -- 
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com ; libenc...@pku.edu.cn 
> 


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

2020-04-15 文章 Benchao Li
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);
>
>   EnvironmentSettings settings = 
> EnvironmentSettings.newInstance().useBlink
>
> StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, settings)
> ;
>
> tEnv.getConfig().getConfiguration().setBoolean(
> "table.exec.emit.early-fire.enabled", true);
> tEnv.getConfig().getConfiguration().setString(
> "table.exec.emit.early-fire.delay", "1000 ms");
>
> Table table = tEnv.fromDataStream(
> env.addSource(new SourceData()), "generate_time, name, city, id,
> event_time.proctime");
> tEnv.createTemporaryView("person", table);
>
> String emit =
> "SELECT name, COUNT(DISTINCT id)" +
> "FROM person " +
> "GROUP BY TUMBLE(event_time, interval '10' second), name";
>
> Table result = tEnv.sqlQuery(emit);
> tEnv.toRetractStream(result, Row.class).print();
>
> env.execute("IncrementalGrouping");
> }
>
> private static final class SourceData implements
> SourceFunction> {
> @Override
> public void run(SourceContext> ctx) throws
> Exception {
> while (true) {
> long time = System.currentTimeMillis();
> ctx.collect(Tuple4.of(time, "flink", "bj", 1L));
> }
> }
>
> @Override
> public void cancel() {
>
> }
> }
> }
>
>
>
>
>
> 2020年3月27日 下午3:23,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分钟窗口
> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>
> Best,
> Jingsong Lee
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com ; libenc...@pku.edu.cn
>
>
>

-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


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

2020-04-15 文章 刘建刚
我们也经常有固定窗口定期触发的需求,但是添加以下参数并没有得到预期的效果(10秒的窗口,期待每秒都输出结果),是我的使用方法不对还是其他问题呢?多谢各位,下面是伪代码:

public class EarlyEmitter {
   public static void main(String[] args) throws Exception {
  StreamExecutionEnvironment env = 
StreamExecutionEnvironment.getExecutionEnvironment();
  env.setParallelism(1);

  EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlink
  StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, 
settings);

  
tEnv.getConfig().getConfiguration().setBoolean("table.exec.emit.early-fire.enabled",
 true);
  
tEnv.getConfig().getConfiguration().setString("table.exec.emit.early-fire.delay",
 "1000 ms");

  Table table = tEnv.fromDataStream(
env.addSource(new SourceData()), "generate_time, name, city, id, 
event_time.proctime");
  tEnv.createTemporaryView("person", table);

  String emit =
"SELECT name, COUNT(DISTINCT id)" +
  "FROM person " +
  "GROUP BY TUMBLE(event_time, interval '10' second), name";

  Table result = tEnv.sqlQuery(emit);
  tEnv.toRetractStream(result, Row.class).print();

  env.execute("IncrementalGrouping");
   }

   private static final class SourceData implements SourceFunction> {
  @Override
  public void run(SourceContext> ctx) 
throws Exception {
 while (true) {
long time = System.currentTimeMillis();
ctx.collect(Tuple4.of(time, "flink", "bj", 1L));
 }
  }

  @Override
  public void cancel() {

  }
   }
}




> 2020年3月27日 下午3:23,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分钟窗口
>> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>> 
>> Best,
>> Jingsong Lee
>> 
> 
> 
> -- 
> 
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn



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写道:
>
> >
> >
> >
> > 感谢您的回复,我试了一下,的确通过您说的这种方式,可以得到一个retract流的数据。换一个场景
> > 我需要每小时计算当天的交易额(例如两点到了,我应该输出从0点到2点的总交易额)我想获得如下结果:
> > 2020-03-28T01:00 100
> > 2020-03-28T02:00 280
> > 
> > 2020-03-28T23:00 18000
> > 2020-03-28T00:00 19520
> > 2020-03-29T01:00 120
> > 2020-03-29T01:00 230
> > 我应该获得是一个不断append的数据流,而不是retract数据流。
> > 并且设置提前发射的事件,flink应该是选取的处理时间而不是事件时间?
> >
> >
> >
> >
> >
> >
> >
> >
> > 在 2020-03-27 15:23:39,"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分钟窗口
> > >> - 5分钟窗口,计算只是保存数据,发送明细数据结果
> > >>
> > >> Best,
> > >> Jingsong Lee
> > >>
> > >
> > >
> > >--
> > >
> > >Benchao Li
> > >School of Electronics Engineering and Computer Science, Peking
> University
> > >Tel:+86-15650713730
> > >Email: libenc...@gmail.com; libenc...@pku.edu.cn
> >
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn
>


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点的总交易额)我想获得如下结果:
> 2020-03-28T01:00 100
> 2020-03-28T02:00 280
> 
> 2020-03-28T23:00 18000
> 2020-03-28T00:00 19520
> 2020-03-29T01:00 120
> 2020-03-29T01:00 230
> 我应该获得是一个不断append的数据流,而不是retract数据流。
> 并且设置提前发射的事件,flink应该是选取的处理时间而不是事件时间?
>
>
>
>
>
>
>
>
> 在 2020-03-27 15:23:39,"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分钟窗口
> >> - 5分钟窗口,计算只是保存数据,发送明细数据结果
> >>
> >> Best,
> >> Jingsong Lee
> >>
> >
> >
> >--
> >
> >Benchao Li
> >School of Electronics Engineering and Computer Science, Peking University
> >Tel:+86-15650713730
> >Email: libenc...@gmail.com; libenc...@pku.edu.cn
>


-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


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

2020-03-28 文章 flink小猪



感谢您的回复,我试了一下,的确通过您说的这种方式,可以得到一个retract流的数据。换一个场景
我需要每小时计算当天的交易额(例如两点到了,我应该输出从0点到2点的总交易额)我想获得如下结果:
2020-03-28T01:00 100
2020-03-28T02:00 280

2020-03-28T23:00 18000
2020-03-28T00:00 19520
2020-03-29T01:00 120
2020-03-29T01:00 230
我应该获得是一个不断append的数据流,而不是retract数据流。
并且设置提前发射的事件,flink应该是选取的处理时间而不是事件时间?








在 2020-03-27 15:23:39,"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分钟窗口
>> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>>
>> Best,
>> Jingsong Lee
>>
>
>
>-- 
>
>Benchao Li
>School of Electronics Engineering and Computer Science, Peking University
>Tel:+86-15650713730
>Email: libenc...@gmail.com; libenc...@pku.edu.cn


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
> > 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分钟窗口
> > > - 5分钟窗口,计算只是保存数据,发送明细数据结果
> > >
> > > Best,
> > > Jingsong Lee
> > >
> >
> >
> > --
> >
> > Benchao Li
> > School of Electronics Engineering and Computer Science, Peking University
> > Tel:+86-15650713730
> > Email: libenc...@gmail.com; libenc...@pku.edu.cn
> >
>


-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


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分钟输出一次结果(窗口数据还没全部到达,先输出当前已经聚合的结果),该怎么办?



-- 
**
 tivanli
**


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. window加了emit之后,会由原来输出append结果变成输出retract结果
>
> Jingsong Li  于2020年3月27日周五 下午2:51写道:
>
> > Hi,
> >
> > For #1:
> > 创建级联的两级window:
> > - 1分钟窗口
> > - 5分钟窗口,计算只是保存数据,发送明细数据结果
> >
> > Best,
> > Jingsong Lee
> >
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn
>


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分钟窗口
> - 5分钟窗口,计算只是保存数据,发送明细数据结果
>
> Best,
> Jingsong Lee
>


-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


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行聚合结果),该怎么办?
> 2.如果我需要开一个一个小时的窗口,但是我希望能够每5分钟输出一次结果(窗口数据还没全部到达,先输出当前已经聚合的结果),该怎么办?


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

2020-03-26 文章 flink小猪
我有两个需求
1.如果我需要开一个一分钟的窗口,但是我希望能够每5分钟输出一次结果(输出每分钟的聚合结果,即输出5行聚合结果),该怎么办?
2.如果我需要开一个一个小时的窗口,但是我希望能够每5分钟输出一次结果(窗口数据还没全部到达,先输出当前已经聚合的结果),该怎么办?