You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by qishang zhong <zh...@gmail.com> on 2019/12/23 13:37:15 UTC

CEP匹配乱序数据的问题

HI,大家好。

咨询一个问题,flink-training-exercises练习的工程里面
com.ververica.flinktraining.solutions.datastream_java.cep.LongRidesSolution

Pattern<TaxiRide, TaxiRide> completedRides =
Pattern.<TaxiRide>begin("start")
.where(new SimpleCondition<TaxiRide>() {
@Override
public boolean filter(TaxiRide ride) throws Exception {
return ride.isStart;
}
})
.next("end")
.where(new SimpleCondition<TaxiRide>() {
@Override
public boolean filter(TaxiRide ride) throws Exception {
return !ride.isStart;
}
});

现在有一个类似的监控场景,也是需要超时后输出没有匹配到的数据,但是流的数据有可能产生乱序。
是不是就不能匹配例子中的Pattern?
如果我想乱序的数据也要匹配上,不作为超时输出有什么对应的解决方案吗?

Re: CEP匹配乱序数据的问题

Posted by jingjing bai <ba...@gmail.com>.
CEP的 sql中order by ,  不会因为乱序导致不匹配。
在api中没用过,可以看看是否有对应的api

qishang zhong <zh...@gmail.com> 于2019年12月23日周一 下午9:37写道:

> HI,大家好。
>
> 咨询一个问题,flink-training-exercises练习的工程里面
> com.ververica.flinktraining.solutions.datastream_java.cep.LongRidesSolution
>
> Pattern<TaxiRide, TaxiRide> completedRides =
> Pattern.<TaxiRide>begin("start")
> .where(new SimpleCondition<TaxiRide>() {
> @Override
> public boolean filter(TaxiRide ride) throws Exception {
> return ride.isStart;
> }
> })
> .next("end")
> .where(new SimpleCondition<TaxiRide>() {
> @Override
> public boolean filter(TaxiRide ride) throws Exception {
> return !ride.isStart;
> }
> });
>
> 现在有一个类似的监控场景,也是需要超时后输出没有匹配到的数据,但是流的数据有可能产生乱序。
> 是不是就不能匹配例子中的Pattern?
> 如果我想乱序的数据也要匹配上,不作为超时输出有什么对应的解决方案吗?
>