Я ищу способ получить каноническое представление операторов (количество и тип проектов, Selects, ...) и способ их объединения вместе, как используется в заявления EPL Эспер, такие как:Получите внутреннее представление инструкции EPL от Esper EPServiceProvider
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 от Esper's extensive documentation и, к сожалению, Calcite пока не предлагает уровень функциональности, который мне нужен, особенно для потоковой передачи данных.
Любые указатели были бы весьма благодарны.
Его довольно трудно понять ваш вопрос. Что вы хотите о «поиске способа получить каноническое представление операторов»? –