如何在 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 中,但似乎我无法在以下位置执行类似的操作:
- 事件 = (id, itemName, price)
- 语句 1 = (id, avg)
- Statement2 = (id, sum)
- 已命名 Window = (id, avg, sum)
我希望能够合并多个语句的结果并将一组结果(每个事件)放入单个输出流中。
感谢您的帮助。
您是否考虑过可以将同一个侦听器附加到两个语句。我的意思是 "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中的变体类型一样,也有变体流的概念。这使您可以将任何内容插入变体流的流中,因为变体流不需要强类型化。
我是 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 中,但似乎我无法在以下位置执行类似的操作:
- 事件 = (id, itemName, price)
- 语句 1 = (id, avg)
- Statement2 = (id, sum)
- 已命名 Window = (id, avg, sum)
我希望能够合并多个语句的结果并将一组结果(每个事件)放入单个输出流中。
感谢您的帮助。
您是否考虑过可以将同一个侦听器附加到两个语句。我的意思是 "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中的变体类型一样,也有变体流的概念。这使您可以将任何内容插入变体流的流中,因为变体流不需要强类型化。