Esper如何将事件与适当的查询匹配

时间:2014-10-18 08:47:31

标签: java esper complex-event-processing

我正在使用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的事件,它是否会根据这些语句进行评估?

1 个答案:

答案 0 :(得分:1)

Esper查看过滤器表达式,在您的示例中为“symbol = AAPL”。这些进入一系列反向索引。您可以看到Esper是否使用@audit评估语句。