从 Esper EPServiceProvider 获取 EPL 语句的内部表示
Get an internal representation of EPL statement from Esper EPServiceProvider
我正在寻找一种方法来获得运算符的规范表示(项目、选择等的数量和类型)以及它们在 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=[+(+(*([=11=], [=11=]), *(, )), *(, ))], ts=[])
EnumerableTableScan(table=[[OverallSchema, FilteredEvents]])
但是我无法从 Esper's extensive documentation 中找到 Esper 中等效项的任何指针,不幸的是 Calcite 还没有提供我需要的功能级别,尤其是对于流数据。
任何指点将不胜感激。
我正在寻找一种方法来获得运算符的规范表示(项目、选择等的数量和类型)以及它们在 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=[+(+(*([=11=], [=11=]), *(, )), *(, ))], ts=[])
EnumerableTableScan(table=[[OverallSchema, FilteredEvents]])
但是我无法从 Esper's extensive documentation 中找到 Esper 中等效项的任何指针,不幸的是 Calcite 还没有提供我需要的功能级别,尤其是对于流数据。
任何指点将不胜感激。