Duplikate über Fenster hinweg entfernen Trigger / Brände

Nehmen wir an, ich habe eine unbegrenzte Sammlung von Sätzen, die von userid eingegeben wurden, und ich möchte einen ständig aktualisierten Wert dafür, ob der Benutzer ärgerlich ist. Wir können berechnen, ob ein Benutzer ärgerlich ist, indem wir alle Sätze, die er jemals gesagt hat, an die Funktion übergeben isAnnoying (). Für immer

Ich setze das Fenster auf global mit einem Trigger afterElement (1), accumulatingFiredPanes (), do GroupByKey und einem ParDo, der die Benutzer-ID isAnnoying @ ausgib

Das funktioniert für immer, sammelt den Status für jeden Benutzer usw. an. Es stellt sich jedoch heraus, dass ein neuer Satz die meiste Zeit nicht ändert, ob ein Benutzer nervt. In den meisten Fällen wird daher das Fenster ausgelöst und eine Benutzer-ID (isAnnoying) ausgegeben Tupel, es ist ein redundantes Update und das io war unnötig. Wie fange ich diese doppelten Aktualisierungen ab und lasse sie fallen, während ich jedes Mal ein Update erhalte, wenn ein Satz eingeht, der den isAnnoying-Wert ändert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage