我正在尝试使用FLINK-CEP来衡量市场中的出价从拥有f
到BidState.OPEN
所花费的时间。我正在接收具有ID和州的出价数据流,按目前的情况,我正在将所有“已出价”出价与所有“已出价”出价进行匹配。
我在BidState.Closed
中有一个条件,该条件仅允许将具有相同ID的开标和闭标进行配对。但是,这感觉很不对劲,因为这种方式的匹配量增长得非常快,而且我觉得可以用模式来完成。因此,是否有办法确保“开始”和“结束”对象具有相同的ID?
patternStream.process
答案 0 :(得分:1)
我想出了如何实现自己想要的行为:BidEventDataStream
必须设置键 ,以便在具有相同键的对象上进行图案匹配。无需更改问题中的代码,但是必须编辑BidEventDataStream
以捕获BidEvent.getBidId()
:
BidEventDataStream.keyBy(new KeySelector<BidEvent, Long>() {
@Override
public Long getKey(BidEventvalue) {
return value.getBidId();
}
})