Es ist eine sehr komplexe Konzeption. 1. window (TumblingEventTimeWindows.of (Time.seconds (n))), hat diese Express zwei Konzept, Fenster: EventWindow, die Ereigniszeit wird durch das Wasserzeichen markiert, das Fenster wird durch das Wasserzeichen erstellt. Zeit ist die Ereigniszeit, n Sekunden ist Ereigniszeit. Die Fenstergröße ist die Ereigniszeitgröße. das Fenster [0 ~ 5s) berechnet nur einmal, wenn das Fenster [5 ~ 10s] schließt, kommt das Ergebnis heraus. 2. allowedLateness (Time.seconds (5)), dieser Express hat nur ein Konzept: die Verspätungszeit (das ist die reale Weltzeit). Aber es ist nicht so einfach wie es aussieht. Das heißt, wenn ein Ereignis [0 ~ 5s] kommt, erzeugt es ein Fenster [0 ~ 5s] oder legt es in das spezifische Fenster [0-5s], und wenn ein anderes Ereignis [5-10] kommt, wird die Witwe [0 ~ 5s) schließen, das neue Fenster [5 ~ 10s] erstellt. Verspätung wird ausgelöst, Ereignis kommt in Fenster [0 ~ 5s] < Verspätungszeit (dies ist die reale Weltzeit), so dass das Ereignis berechnet werden kann. Das ist nicht so genau. allowedLateness wird die Fensterberechnung ändern, dies wird sich von ONLY Window Calculate unterscheiden. OnceLate-Ereignis kommt, wird es einmalig berechnen. Reale Weltzeit ist tatsächlich Serverzeit. 3. neues Wasserzeichen (currentTime - N), dieses Express hat nur ein Konzept: die maximale Out of Reihenfolge, dies verzögert Fenster Berechnung, es ist nur Fensterzeit (geschlossene Zeit) Verzögerung N Sekunden. Es wird nur einmal berechnet.Flink Fenster, Ereignis Zeit, Verspätung, maxOutOfOrdeness
Am wichtigsten ist, wenn Ihre Datengeschwindigkeit zu schnell ist, tritt das Ereignis zu schnell in das Fenster ein, wenn sich das Fenster schließt, vielleicht kommt das berechnete Iterator noch Ereignis, so kann das Ergebnis Sie verwirren.
Ist dies eine Frage oder ein Kommentar? Stack Overflow ist ein Frage-Antwort-Service, also sollten Sie dies zu einer Frage umformulieren. Auch die Beschreibung der Konzepte von Ereigniszeit, Wasserzeichen und Fenstern und erlaubte Verspätung ist * nicht * korrekt. –
Das ist keine Frage, ich benutze nur Stack, um es aufzunehmen. Wenn Sie das Fenster nicht testen, Verspätung, maxoutoorder, wie können Sie mir sagen, dass es nicht korrekt ist. Ich kann Ihnen die Testdaten, den Testdatenserver und den Testcode geben. Sag mir nicht, was richtig ist oder nicht. Wenn Sie darauf bestehen, also bitte sagen Sie mir, die Verspätungszeit ist Wasserzeichenzeit oder Serverzeit? Sagen Sie die maximale Lieferzeit ist Wasserzeit oder Serverzeit? – Chen
Ich kann mich nicht einloggen Flink Forum, also kann ich keine Frage stellen, wenn ich Frage im Stapel über Flink stelle, scheint es nicht so viele Leute können es beantworten oder nicht so viele Leute haben Interesse daran. Also möchte ich einfach meine Erfahrung aufzeichnen. Ich kann Ihnen sagen, dass ich in meiner Cluster-Produce-Umgebung Daten auf dem lokalen Server aggregieren kann und dann Daten im Cluster zusammenfassen kann. Können Sie das tun? – Chen