Apache flink 如何使用Flink中提供的cost estimator类获取Flink中的运营成本

Apache flink 如何使用Flink中提供的cost estimator类获取Flink中的运营成本,apache-flink,flink-streaming,flink-cep,Apache Flink,Flink Streaming,Flink Cep,我想对Flink CEP引擎进行性能分析,我遇到了这些课程 org.apache.flink.optimizer.costs.CostEstimator; org.apache.flink.optimizer.costs.Costs; org.apache.flink.optimizer.costs.DefaultCostEstimator; 但问题是我不知道如何使用这两个类。有人能给我提供一个代码或暗示,关于如何在Flink中找到运营商{join example}的成本估算 下面是我在F

我想对Flink CEP引擎进行性能分析,我遇到了这些课程

org.apache.flink.optimizer.costs.CostEstimator; 
org.apache.flink.optimizer.costs.Costs; 
org.apache.flink.optimizer.costs.DefaultCostEstimator;
但问题是我不知道如何使用这两个类。有人能给我提供一个代码或暗示,关于如何在Flink中找到运营商{join example}的成本估算

下面是我在Flink中执行的连接的代码

DataStream<JoinedEvent> joinedEventDataStream = stream1.join(stream2).where(new KeySelector<RRIntervalStreamEvent, Long>() {
        @Override
        public Long getKey(RRIntervalStreamEvent rrIntervalStreamEvent) throws Exception {
            return rrIntervalStreamEvent.getTime();
        }
    })
            .equalTo(new KeySelector<qrsIntervalStreamEvent, Long>() {
        @Override
        public Long getKey(qrsIntervalStreamEvent qrsIntervalStreamEvent) throws Exception {
            return qrsIntervalStreamEvent.getTime();
        }
    })
            .window(TumblingEventTimeWindows.of(Time.milliseconds(1000)))
            .apply(new JoinFunction<RRIntervalStreamEvent, qrsIntervalStreamEvent, JoinedEvent>() {
                @Override
                public JoinedEvent join(RRIntervalStreamEvent rr, qrsIntervalStreamEvent qrs) throws Exception {

                    //getting the cost -- just checking

                   // costs.getCpuCost();

                    return new JoinedEvent(rr.getTime(),rr.getSensor_id(),qrs.getSensor_id(),rr.getRRInterval(),qrs.getQrsInterval());
                }
            });
DataStream joinedEventDataStream=stream1.join(stream2).where(newkeyselector(){
@凌驾
公共长getKey(RRIntervalStreamEvent RRIntervalStreamEvent)引发异常{
返回rrIntervalStreamEvent.getTime();
}
})
.equalTo(新的键选择器(){
@凌驾
公共长getKey(qrsIntervalStreamEvent qrsIntervalStreamEvent)引发异常{
返回qrsIntervalStreamEvent.getTime();
}
})
.window(tumblingeventimewindows.of(时间.毫秒(1000)))
.apply(新函数(){
@凌驾
public JoinedEvent join(RRIntervalStreamEvent rr,qrsIntervalStreamEvent qrs)引发异常{
//获取成本--只是检查一下
//costs.getCpuCost();
返回新的JoineEvent(rr.getTime(),rr.getSensor_id(),qrs.getSensor_id(),rr.getRRInterval(),qrs.getQrsInterval());
}
});

如何计算此联接的成本?

成本类属于DataSet API(Flink的批处理API)的优化器,而CEP库是基于DataStream API构建的。DataStream API不利用DataSet API

CEP库和数据集优化器是完全不相关的。因此,不可能使用此代码来估计CEP模式的成本。我也不知道还有另一种内置的方法来估算CEP模式(或任何其他数据流程序)的成本