2016-07-21 36 views
4

TL: DR; Ist es möglich, einen benutzerdefinierten Trigger zu erstellen, der nur ausgelöst wird, wenn ein Flag gesetzt ist? Ist es möglich, den Job mit einem Trigger mit einer großen Verzögerung zu implementieren, während wir wissen, dass ein großes Datenereignis stattfindet, und dann ein Update für den Job bereitzustellen, wobei der Trigger eine normale oder keine Verzögerung hat, sobald das Ereignis beendet ist?Unterstützt der Datenfluss benutzerdefinierte Trigger oder das Aktualisieren von Triggerverzögerungen?

Im Anschluss an: Remove duplicates across window triggers/firings

Die Situation, in der diese die meisten in problematischer Weise geschieht (in Millionen von doppelten Zündungen), wenn wir eine Verfüllung von alten Daten tun. Da wir wissen, wann das passiert ist, habe ich mich gefragt, ob wir einen benutzerdefinierten Trigger implementieren könnten, der nicht ausgelöst wird, solange eine Flagge gesetzt ist. Ist das etwas, das möglich wäre? Alternativ könnten wir den Job mit einem Trigger bereitstellen, der eine große Verzögerung mit sich bringt, während Backfill läuft, und dann ein Update mit dem normalen Trigger ausgeben, wenn er fertig ist?

Antwort

1

Dataflow unterstützt noch keine benutzerdefinierten Trigger oder Trigger, die auf einigen separaten Metadaten basieren. Sie können jedoch die Häufigkeit eines Verarbeitungszeitauslösers mit Update ändern. Ändern Sie einfach den Wert der Builder-Funktion plusDelay() und führen Sie sie wie gewohnt mit --update aus.

+0

Nur ein Follow-Up, nach dem Update, bedeutet das, dass alle Groupbys, die zuvor auf den Trigger gewartet haben, gefeuert werden? Oder werden sie nicht feuern, bis ein neues Stück Daten ins Fenster kommt? – bfabry

+1

Sie werden entweder nach dem alten Timeout feuern, wenn keine neuen Daten angezeigt werden, oder nach dem neuen Timeout, wenn neue Daten angezeigt werden – danielm

+0

super danke – bfabry

Verwandte Themen