2017-12-15 3 views
0

Lassen Sie sagen, ich habe 2 Streams:Ist es möglich 2 Kafka KStreams zu verbinden, wo die JoinWindows Dauer im Objekt von 1 der Streams gespeichert ist?

  1. Timewindow
  2. Numbers (mit Zeitstempel)

Ist es an Benutzer entweder DSL-API oder Prozess API möglich (mit Zeit, Endzeit beginnen) um die Streams so zu verbinden, dass die Ausgabe das TimeWindow-Objekt enthält, das die Summe der Zahlen enthält, die innerhalb des in TimeWindow angegebenen Zeitraums liegen?
Um genau zu sein, wie stellen Sie XXX, wo es ist die Dauer speichern in win.getDuration() wo win ist die in ValueJoiner referenzierte.

Die JoinWindows nach ist 0, weil TimeWindows Zeitstempel Endtime ist. Die XXX-Dauer sollte als TimeWindows-Endzeit berechnet werden - Startzeit in Millisekunden.

Vielen Dank für jede Hilfe!

+0

Es ist nicht möglich mit der DSL, aber mit Prozessor-API können Sie alles bauen :) Aber Beratung geben, wie ist der Rahmen, was SO bieten kann. Es ist eine ziemlich tiefe Frage. Sie müssen einen benutzerdefinierten Speicher verwenden und Ihren eigenen 'Prozessor' schreiben, der den Join berechnet ... –

Antwort

0

Dank Matthias 'Aufruf, ich rolle zurück, um Prozessor-API mit der Implementierung von TimestampExtractors und der Verwendung von im Speicher Speicher zu verwenden (standardmäßig RockDB zu verwenden), um diese Funktion zu implementieren.

Verwandte Themen