开发者社区> 问答> 正文

Flink对事件流程的多段时间控制怎么实现(可能使用CEP)?

已解决

一段基于事件时间的流中有e1、e2、e3、e4、e5这五个事件,
流程要求:

   事件流程有序,即:e1之后发生e2,e2之后发生e3,e3之后发生e4,e4之后发生e5,但事件到达flink可能是乱序的
   e1、e2要求在3s内发生;
   e3、e4在5s内发生

flink怎么做这种多段的时间超时控制啊,CEP只能控制一整段的。
(滴滴的CEP分享很nice,但是不知道怎么把time转换为NFA,这样就做不到那种两个事件之间细粒度的时间控制,原生flink怎么应对这种情况呢?)

展开
收起
我的聚宝盆 2018-11-21 10:41:01 3348 0
2 条回答
写回答
取消 提交回答
  • 采纳回答

    我理解你的需求实际是要求window的size是可变的,如果用DataStream,可以通过自定义一个WindowAssigner实现(见方法DataStream.windowAll(WindowAssigner<? super T, W> assigner)),基于time的自定义的WindowAssigner实现可参见类TumblingProcessingTimeWindows或TumblingEventTimeWindows。

    2019-07-17 23:15:40
    赞同 展开评论 打赏
  • 有解决办法了吗

    2019-10-14 18:01:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载