I don't think you can specify custom triggers when using purer SQL, but maybe Fabian or Timo know a SQL way of implementing your goal.

On 12.03.2018 13:16, 李玥 wrote:
Hi Chirag,
Thank for your reply!
I found a provided ContinuousEventTimeTrigger should be worked in my situation. Most examples are based on Table API like ‘ds.keyBy(0).window().trigger(MyTrigger.of())…’, But how to apply the trigger to a pure Flink SQL Application ?






在 2018年3月12日,下午5:20,Chirag Dewan <chirag.dewa...@yahoo.in <mailto:chirag.dewa...@yahoo.in>> 写道:

Hi LiYue,

This should help : Apache Flink 1.5-SNAPSHOT Documentation: Windows <https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/windows.html#triggers>


        


    Apache Flink 1.5-SNAPSHOT Documentation: Windows

<https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/windows.html#triggers>



So basically you need to register a processing time trigger at every 10 minutes and on callback, you can FIRE the window result like this:

  @Override
public TriggerResult onProcessingTime(long time, TimeWindow window, TriggerContext ctx) throws Exception {
      // schedule next timer
ctx.registerProcessingTimeTimer(System.currentTimeMillis() + 1000L);
      return TriggerResult.FIRE;
    }


I hope it helps.

Chirag

On Monday, 12 March, 2018, 2:10:25 PM IST, 李玥 <liyue2...@gmail.com <mailto:liyue2...@gmail.com>> wrote:


Hi,team
I’m working on a event-time based aggregation application with flink SQL. Is there any way to keep sinking partial aggregation result BEFORE time window closed?
For example, My SQL:
    select …
    from my_table
    GROUP BY TUMBLE(`timestamp`, INTERVAL '1’ DAY),other_column;
Usually, Flink sink agg result after time-window closed, Is there any way to keep sinking TODAY’s partial aggregation result every 10 miniutes so we can see today’s performance on my chart.

Thanks!
LiYue



Reply via email to