从Esper EPServiceProvider获取EPL语句的内部表示

时间:2017-02-06 17:13:34

标签: java sql distributed-computing esper

我正在寻找一种方法来获取运算符的规范表示(项目的数量和类型,选择,......)以及它们在Esper的EPL语句中使用的链接方式,如:

SELECT x,y,z,ts FROM AccelEvents WHERE vibe=0
SELECT x*x+y*y+z*z AS ed, ts FROM FilteredEvents
SELECT Math.pow(ed,0.5) as sqrted, ts FROM EdEvents
SELECT r1('ts') as ts FROM SqrtEdEvents 
  MATCH_RECOGNIZE (MEASURES A AS r1, B AS r2 PATTERN (A B) 
  DEFINE A AS (A.sqrted > THR), B AS (B.sqrted <= THR))

我会感谢类似Apache Calcite在解析查询时提供的内容:

LogicalTableModify(table=[[OverallSchema, EdEvents]], operation=[INSERT], updateColumnList=[[]], flattened=[true])
  LogicalProject(ed=[+(+(*($0, $0), *($1, $1)), *($2, $2))], ts=[$3])
    EnumerableTableScan(table=[[OverallSchema, FilteredEvents]])

但是,我无法从Esper's extensive documentation找到Esper中等效的指针,不幸的是,Calcite还没有提供我需要的功能级别,特别是对于流数据。

任何指针都会非常感激。

1 个答案:

答案 0 :(得分:0)