我正在使用ESPER进行流媒体事件处理。我正在创建语句,然后将它们添加到CEP引擎,如下所示。这是处理大量(每分钟百万事件)数据的正确方法吗?
Configuration cepConfig = new Configuration();
cepConfig.addEventType("StockTick", Tick.class.getName());
EPServiceProvider cep = EPServiceProviderManager.getProvider("myCEPEngine", cepConfig);
EPRuntime cepRT = cep.getEPRuntime();
EPAdministrator cepAdm = cep.getEPAdministrator();
EPStatement cepStatement = cepAdm.createEPL("select * from " +
"StockTick(symbol='AAPL').win:length(2) " +
"having avg(price) > 6.0");
EPStatement cepStatement2 = cepAdm.createEPL("select * from " +
"StockTick(symbol='AAPL').win:length(2) " +
"having avg(price) > 7.0");
CEPListener c = new CEPListener();
cepStatement.addListener(c);
cepStatement2.addListener(c);
我使用以下方式添加事件:
cepRT.sendEvent()
ESPER如何将事件映射到必须评估的查询?如果我有一个股票类型IBM的事件,它是否会根据这些语句进行评估?
答案 0 :(得分:1)
Esper查看过滤器表达式,在您的示例中为“symbol = AAPL”。这些进入一系列反向索引。您可以看到Esper是否使用@audit评估语句。