Je veux écrire une expression esper epl qui filtre les événements en fonction de la valeur retournée par ma fonction définie par l'utilisateur, mon utilisateur défini doit prendre deux objets événement à la fois. J'ai donc écrit une requête comme celle-ci.Esper fonctions définies par l'utilisateur qui prend deux paramètres
select window(*), 'CANDLE NAME' as candleType
from CandleStickEvent(myFunction(*) = 'true').win:length(2)
Bien que cela a fonctionné il passe un seul objet CandleStickEvent à un moment, mais je veux passer les deux objets dans la fenêtre.
Pour y parvenir, j'ai également essayé les requêtes suivantes. Mais rien n'a fonctionné.
"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent(myFunction(window(*)) = 'true').win:length(2) "
Cela donne ce message d'erreur,
La fonction d'agrégation 'fenêtre' exige que les événements agrégés fournissent un flux remove; S'il vous plaît définir une fenêtre de données sur le flux ou utiliser « firstever », « lastever » ou « nième » au lieu
I tente requête suivante aussi,
"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent.win:length(2) "
"output when myFunction(*) = 'true'"
Il ne donne aucune erreur mais mon la fonction n'est jamais déclenchée.
Quelqu'un peut-il m'aider à trouver un moyen de répondre à cette exigence.
Merci.