如何在 Esper 中为多个语句获取一个输出流?

How do I get one output stream for several statements in Esper?

我是 Esper 的新手,我正在尝试通过同一个 UpdateListener 将多个 EPSstatements 的结果发送到 运行。例如:

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)");

是否可以将这两个 EPSstatements 的结果合并到一个单独的报表中?类似于:

EPStatement bothStatements = epService.getEPAdministrator()
                            .createEPL("select * from avg(price), sum(price) where a.id=b.id");
bothStatements.addListener(listener);

我尝试将这两个语句插入到名为 Window 的 Esper 中,但似乎我无法在以下位置执行类似的操作:

我希望能够合并多个语句的结果并将一组结果(每个事件)放入单个输出流中。

感谢您的帮助。

您是否考虑过可以将同一个侦听器附加到两个语句。我的意思是 "avgStatement.addListener(myListener)" 和 "sumStatement.addListener(myListener)".

作为替代方法,您可以使用 insert-into 来填充相同的流。就像 "insert into MyStream select avg(price) as avgPrice, 0 as sumPrice from ..." 和 "insert into MyStream select 0 as avgprice, sum(price) as sumPrice from ...".

和visual basic中的变体类型一样,也有变体流的概念。这使您可以将任何内容插入变体流的流中,因为变体流不需要强类型化。