I Funktionen auf einem Datenstrom tue,Flink: Trigger.onElement Arbeits
DataStream<Tuple4<String,String,Double,Double>> price_warning=datastream_in .flatMap(new Splitter())// transformation flatmap .keyBy(2) .window(SlidingProcessingTimeWindows.of(Time.seconds(180),Time.seconds(10))) .trigger(new ElementTimeTrigger()) .apply(new WindowFunction());
Dies ist ein Teil meines Code ist nur für die Idee, dass das, was ich tue. Hier, im Datenstrom, mache ich eine Flatmap, um die datastream_in
in Tuple
zu parsen, dann ist der Strom keyby
auf dem zweiten Feld von Tupel. Danach trage ich ein Schiebefenster gefolgt von trigger
. Hier verwende ich onElement()
Methode für die Auslösung. Schließlich verwende ich apply
als benutzerdefinierte Funktion.
Wenn ich den Code ausführen, wird die Anwendungsfunktion für jede Nachricht, die ich analysiert habe, 18 Mal aufgerufen (180/10, ref. Gleitendes Fenster). Was kann der Grund dafür sein? Wie funktioniert der Trigger genau mit Schiebefenster?
** Ich kann bei Bedarf auch den gesamten Code bereitstellen.