2016-06-29 12 views
0

Ich verwende WSO2 CEP für die Verarbeitung der Ereignisse aus einem Kafka-Thema. Ich möchte dies auf mehrere kafka-Themen verallgemeinern, die Protokolle in einem ähnlichen Format speichern, d. H. Jede Partition jedes Themas speichert Daten einer bestimmten Person.Ausführungsplan Vorlagen in Wso2 CEP

Das Szenario ist wie folgt; Ein Thema gibt eine Supergruppe an, in der jede Partition eine Person in dieser Gruppe ist. In jeder Partition existieren JSON-formatierte Datenpunkte {Banktransaktionsinformationen (Transaktionszeit, Kredit/Debit, Betrag) usw. dieser Person.

Ich möchte in der Lage sein, die Daten so zu zerlegen, dass ich schließlich Ströme von Betrag von der Person gutgeschrieben/abgebucht bekomme, dh nach dem ersten (Ebene der) Ausführungsplan werden verschiedene Personendaten in einzelne Datenströme aufgeteilt durch einen zweiten Ausführungsplan, der jeden Strom weiter in (Zeitstempel, Kredit/Soll) Strom und (Zeitstempel, Betrag) Strom unterbricht.

Naive Weise, dies zu erreichen, ist ein Programm zu schreiben, das Ausführungspläne (Siddhisql-Datei), Ereignisströme (JSON-Dateien), Ereignisempfänger und Herausgeber (XML-Dateien) programmatisch für Sie schreibt. Mit steigender Anzahl der Themen steigt jedoch die Anzahl dieser Dateien.

Gibt es irgendeine Möglichkeit, dies zu tun (zumindest Erstellung von Ausführungsplänen)?

Antwort

0

Sie können Ausführungsvorlagen erstellen, in denen Sie eine Ausführungsplanvorlage definieren und die erforderlichen Datenströme für die Vorlage einschließen können. Wenn Sie die Vorlage definieren, können Sie Parameter definieren, die später mit Istwerten konfiguriert werden können. In der aktuellen Version unterstützt CEP nicht die Einbindung von Empfängern und Publishern für die Vorlage.

Bitte beachten Sie die WSO2-Dokumentation n Creating Execution Templates. Um mehr über die Template-Struktur zu erfahren, beziehen Sie sich bitte auf this blog post.

+0

Vielen Dank für die Antwort. Aber es ist nicht das, was ich erwarte. Ist es möglich, eine Platzhaltervariable zu verwenden, um Streams zu empfangen und zu veröffentlichen? d. h. ich bekomme ein Drop-Down mit verfügbaren Streams und wähle das aus, an dem ich interessiert bin? –

+0

Technisch wäre es möglich, aber Drop-Down-Inhalt wäre komplex. In der Siddhi-Abfragevorlage können Sie einen Parameter mit $ angeben, in dem Sie den Stream definieren. Optionsdefinitionen können für Dropdown-Listenwerte enthalten sein. Diese Werte enthalten den Stream und seine Parameter. –