FLINK CEP(Java 8)-通过匹配模式实现持久的“身份”

时间:2019-05-28 19:02:49

标签: java apache-flink flink-cep

我正在尝试使用FLINK-CEP来衡量市场中的出价从拥有fBidState.OPEN所花费的时间。我正在接收具有ID和州的出价数据流,按目前的情况,我正在将所有“已出价”出价与所有“已出价”出价进行匹配。

我在BidState.Closed中有一个条件,该条件仅允许将具有相同ID的开标和闭标进行配对。但是,这感觉很不对劲,因为这种方式的匹配量增长得非常快,而且我觉得可以用模式来完成。因此,是否有办法确保“开始”和“结束”对象具有相同的ID?

patternStream.process

1 个答案:

答案 0 :(得分:1)

我想出了如何实现自己想要的行为:BidEventDataStream 必须设置键 ,以便在具有相同键的对象上进行图案匹配。无需更改问题中的代码,但是必须编辑BidEventDataStream以捕获BidEvent.getBidId()

BidEventDataStream.keyBy(new KeySelector<BidEvent, Long>() {
                    @Override
                    public Long getKey(BidEventvalue) {
                        return value.getBidId();
                    }
                })