Apache Flink est un framework de traitement de flux open source permettant de traiter des flux de données illimités et limités. Dans le fonctionnement de la fenêtre temporelle de Flink, le déclencheur est un concept très important, qui détermine le moment où la fenêtre doit être calculée et les résultats affichés. Les déclencheurs définissent les conditions dans lesquelles une fenêtre est prête à être traitée (c'est-à-dire lorsque les calculs sont déclenchés). type de fenêtre
fenêtre de temps(Fenêtres temporelles) : fenêtres basées sur la division temporelle, telles que les fenêtres temporelles glissantes (Tumbling Time Windows) et les fenêtres temporelles glissantes (Sliding Time Windows).
fenêtre horaire de l'événement(Event Time Windows) : une fenêtre basée sur les horodatages des événements, qui peut gérer les données dans le désordre.
Déclenchement
Les déclencheurs sont utilisés pour définir les conditions lorsqu'une fenêtre est prête pour le calcul. Flink fournit des déclencheurs intégrés et permet aux utilisateurs de personnaliser les déclencheurs selon leurs besoins.
Déclencheur intégré
Déclencheur de temps de traitement : Un déclencheur basé sur le temps de traitement qui se déclenche chaque fois que l'intervalle de temps spécifié est atteint.
Déclencheur d'événement : Déclencheur basé sur l'heure de l'événement, déclenché lorsque l'heure de fin de la fenêtre atteint. Ceci convient au traitement de flux de données ordonnés ou non au moment de l'événement.
Compter les déclencheurs: Déclencheur basé sur le nombre d'éléments, déclenché lorsque le nombre d'éléments dans la fenêtre atteint le seuil spécifié.
Déclencheur personnalisé
Les utilisateurs peuvent créer des déclencheurs personnalisés en implémentant l'interface Trigger. Les déclencheurs personnalisés peuvent décider quand déclencher les calculs de fenêtre en fonction d'une logique complexe. Les déclencheurs personnalisés doivent généralement implémenter les méthodes suivantes :
surElement(élément, horodatage, fenêtre, ctx) : Appelé lorsqu'un élément est ajouté à la fenêtre.
sur l'heure de l'événement(time, window, ctx, out) : appelé lorsque l'heure de l'événement de la fenêtre arrive.
sur le temps de traitement(time, window, ctx, out) : Appelé lorsque le temps de traitement de la fenêtre arrive.
surMerge(autre) : appelé lorsque deux fenêtres sont fusionnées (par exemple, utilisé dans les fenêtres de session).
peut fusionner() : indique si le déclencheur prend en charge la fusion de fenêtres.
effet
La fonction principale des déclencheurs est de contrôler le timing de calcul des fenêtres, rendant les opérations de fenêtre de Flink plus flexibles et plus puissantes. En choisissant les bons déclencheurs, vous pouvez optimiser les performances et l'utilisation des ressources de vos applications de traitement de flux.
Exemple
Voici un exemple simple utilisant des fenêtres et des déclencheurs Flink (en supposant que l'API Java soit utilisée) :