2016-07-13 24 views
0

Mit siddhi 4.1.0Siddhi CEP 4.x: Mehrere Ergebnisse pro Gruppe, wenn die Zeit Batch-Fenster

mit Gibt es eine Möglichkeit time.windowBatch zu den kommenden Veranstaltungen zu bewerben? Ich habe verstanden, dass das Zeitfenster auf bereits eingetroffenen Ereignissen basiert.

Sagen Sie zum Beispiel,

ich mehrere Ergebnisse bin immer während window.timeBatch (2 min) mit group by-Klausel verwendet wird.

In der angegebenen 2 min Dauer habe ich die 50 Eingabeereignisse periodisch bestanden. Das erwartete Verhalten sind all diese Ereignisse, die zusammengefügt und als einzelnes Ergebnis angegeben werden (verwendete Zählfunktion zur Überprüfung). Aber es gibt zwei Ergebnisse wie 40 und 10. Sind die ersten 40 Ereignisse in die Zeitfensterperiode und die zweite in das nächste Fenster? In diesem Fall, wie ich zusammenführen werde oder alle diese Ereignisse bekommen, sind einzelne Ausgaben für 2 Minuten?

Auch ich möchte das Zeitfenster starten, sobald das erste Ereignis eintraf.

Ich erlebte das Zeitfenster läuft im Hintergrund, für den Fall, dass die Ereignisse in der Mitte des ersten Zeitfensters kommen sammelt es die Ereignisse nur für 1 min. Die verbleibenden einminütigen Ereignisse werden vom nächsten Zeitfenster erfasst. So, endlich habe ich 2 Batch-Ergebnisse bekommen.

Bitte schlagen Sie vor, dass es noch eine andere Lösung zu erreichen gibt.

Usecase:

Mein usecase basiert auf Zeitdauer (time.windowBatch (1 min)) für die Schalter zu überwachen. Ich möchte folgenden Anwendungsfall implementieren.

Anwendungsfall: Der Switch sendet die SNMP-Traps an CEP. Die Traps sind wie switchFanFailed und switchFanOk.

Wenn ich switchFanFailed Trap empfange, wird die nächste Trap, die ich erwarte, switchFanOk Trap innerhalb der 1 Minute sein. Wenn der switchFanOk Trap nicht innerhalb von 1 min empfangen wird, generiert CEP eine Benachrichtigung per E-Mail. Andernfalls wird diese Falle verworfen.

Obwohl mein Trap-Generator die Traps switchFanFailed und switchFanOk innerhalb von 1 min Dauer als Konstante erzeugt, kann ich die Traps in einigen Fällen nicht im selben Fenster empfangen.

Sagen Sie zum Beispiel, switchFanFailed kommt Ende der 0,50 s, von hier aus sollte ich 1 Minute warten, um SwitchFanOk Trap erwarten.

Antwort

0

Sorry, ich bin etwas verwirrt mit Ihrem usecase .. :)

Ob usecase auf Zeit oder Länge oder beides .. Für Zeit Batch-Fenster basiert, es beginnt erst nach dem ersten Ereignis kommt ..

Wenn Sie zu warten, bis 50 Ereignisse (oder eine nicht von Ereignissen kommen), dann Sie lengthBatch Fenster verwenden .. Wenn Sie bearbeiten wollen, basierend auf Zeit und Batch dann timeBatch Fenster verwenden ..

Sie tun hast du irgendein festes no von ereignissen? Wenn nicht, kann CEP/Siddhi nicht unbegrenzt warten. Es sollte etwas zu sagen Ende der Charge geben. Ist das nicht?

+0

Danke für Ihre Antwort. Fügte den Usecase als Referenz hinzu. – Muthusamy

+0

OK, habe es .. Wir müssen Muster für Ihre Usecase, nicht eine Zeit Batch-Fenster verwenden .. Sie können Probe [1], die Ihrer Anforderung ähnelt .. [1] https://docs.wso2.com/display/CEP400/Sample + 0111 + - + Erkennen + Nichtvorkommen + mit + Mustern – Mohanadarshan

+0

Danke für den Tipp! Ich überprüfe das Muster. – Muthusamy

0

Ich hatte ein identisches Problem und es erstellt immer zwei zusammengefasst für eine beliebige Anzahl von Datensätzen in meine Gruppierung Abfrage gesendet.Die Lösung für mein Problem war, dass ein Wert sich von dem anderen unterscheidet, der in der Gruppierung verwendet wurde. Ich empfehle Ihnen, die Gruppierung zu überprüfen.

Wenn Sie daran denken, zwei Datensätze zusammenzuführen, empfehle ich Ihnen, ein Zeitbatchfenster timeBatch (1 min) zu verwenden, das den Ausgang Ihres aktuellen Datensatzes zusammenfasst.