我是Esper的新手,我试图让多个EPStatements的结果通过相同的UpdateListener运行。例如:
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPStatement avgStatement = epService.getEPAdministrator()
.createEPL("select avg(price) from OrderEvent.win:time(30 sec)");
EPStatement sumStatement = epService.getEPAdministrator()
.createEPL("select sum(price) from OrderEvent.win:time(60 sec)");
是否可以将这两个EPStatements的结果合并为一个单独的声明?类似的东西:
EPStatement bothStatements = epService.getEPAdministrator()
.createEPL("select * from avg(price), sum(price) where a.id=b.id");
bothStatements.addListener(listener);
我尝试将两个语句插入到Esper命名窗口中,但似乎我不能做这样的事情:
我希望能够将多个语句的结果组合在一起,并将一组结果(每个事件)放入一个输出流中。
感谢您的帮助。
答案 0 :(得分:0)
您是否认为可以将同一个侦听器附加到两个语句中。我的意思是“avgStatement.addListener(myListener)”和“sumStatement.addListener(myListener)”。
作为替代方法,您可以使用insert-into填充相同的流。这将是“插入到MyStream中选择平均值(价格)为avgPrice,0为sumPrice from ...”和“插入MyStream选择0为avgprice,sum(price)为sumPrice from ...”。
在visual basic中还有变体流的概念,如变体类型。这允许您将任何内容插入到变体流的流中,因为变体流不需要强类型化。