Les principes de base du pipeline de streaming

Si vous débutez avec les pipelines de flux de données et Cloud Dataflow SQL, familiarisez-vous avec les collections, le fenêtrage, les filigranes et les déclencheur.

Types de collection

Une PCollection (ou collection) représente un ensemble de données multi-éléments qui peut être distribué et qui agit en tant que données du pipeline. Les transformations du pipeline utilisent les collections comme entrées et sorties pour chaque étape de votre pipeline. Une collection peut contenir un ensemble de données limité à une taille fixe ou un ensemble de données illimité provenant d'une source de données constamment mise à jour, telle que Cloud Pub/Sub.

Pour une collection limitée, les opérations de regroupement regroupent tous les éléments qui possèdent la même clé pour la collection entière. Cependant, avec une collection illimitée, il est impossible de rassembler tous les éléments. La mise à jour en continu de la source de données fournit un flot constant de nouveaux éléments, et le nombre d'élément est sans limite (on parle alors de flux de données).

Fonctions des fenêtres et du fenêtrage

Le fenêtrage permet le regroupement de collections illimitées en divisant les collections en fenêtres en fonction de l'horodatage de chaque élément. Chaque fenêtre contient un nombre fixe d'éléments. Les opérations de regroupement se font implicitement par fenêtre. Elles traitent chaque collection comme une succession de plusieurs fenêtres données, même si la collection en elle-même peut avoir une taille infinie.

Une fonction de fenêtrage indique comment attribuer les éléments aux fenêtres, et comment fusionner des fenêtres d'éléments groupés. Il existe trois fonctions de fenêtrage compatibles :

  • Tumbling windows (Fenêtres fixes dans Apache Beam)
  • Hopping windows (Fenêtres glissantes dans Apache Beam)
  • Session windows (Fenêtres de session)

Tumbling windows

C'est la forme de fenêtrage la plus simple. Une fenêtre Tumbling représente une durée cohérente, un intervalle de temps sans chevauchement, du flux de données. Exemple : Si les fenêtres sont paramétrées pour accueillir les éléments d'une durée de cinq minutes, tous les éléments de la collection illimitée dont la valeur d'horodatage est comprise entre 0:00:00 et 0:05:00 (non inclus) appartiennent à la première fenêtre. Les éléments dont la valeur d'horodatage est comprise entre 0:05:00 et 0:10:00 (non inclus) appartiennent à la deuxième fenêtre, et ainsi de suite.

Image montrant des fenêtres Tumbling d'une durée de 30 secondes

Figure 1 : Fenêtres Tumbling d'un durée de 30 secondes.

Hopping windows

Le fenêtrage Hopping représente également les intervalles de temps du flux des données, mais ils peuvent se chevaucher. Exemple : Chaque fenêtre accueille cinq minutes de flux de données, mais une nouvelle fenêtre démarre toutes les dix secondes. La fréquence à laquelle les fenêtres démarrent s'appelle la période. Ainsi, dans l'exemple ci-dessous, la durée d'une fenêtre est de cinq minutes, et celle d'une période, de dix secondes.

Puisque de nombreuses fenêtres se chevauchent, la plupart des éléments d'un ensemble de données appartient à plus d'une fenêtre. Le fenêtrage Hopping est utile pour calculer des moyennes de données. Dans notre exemple, vous pouvez calculer une moyenne mobile sur les données des dernières minutes, mises à jour toutes les 30 secondes.

Image montrant des fenêtres Hopping d'une durée de 1 minute et d'une période de 30 secondes

Figure 2 : Fenêtres Hopping avec un durée de 1 minute par fenêtre et 30 secondes de période.

Session windows (Fenêtres de session)

Les fenêtres de session contiennent des éléments qui sont compris dans un intervalle d'un autre élément. Le fenêtrage de session s'applique par clé. Il est utile pour les données qui sont distribuées avec irrégularité en fonction de la durée. Exemple : Un flux de données représentant l'activité d'un curseur de souris peut rencontrer de longues périodes d'inactivité entrecoupées de fortes concentrations de moments d'activité. Si les données surviennent après la durée d'intervalle minimale spécifiée, cela déclenche le début d'une nouvelle fenêtre.

Image montrant des fenêtres de session avec durée d'intervalle minimale

Figure 3 : Fenêtres de session avec une durée d'intervalle minimale. Chaque clé de données possède des fenêtres différentes en fonction de la distribution des données.

Filigranes

Les filigranes représentent la notion du système qui permet de prévoir que toutes les données d'une fenêtre sont arrivées dans le pipeline. Cloud Dataflow suit les filigranes car il n'est pas garanti que les données arrivent dans l'ordre chronologique ou à des intervalles prévisibles. De plus, rien ne certifie que les événements de données apparaissent dans le pipeline dans l'ordre de leur génération. Une fois qu'un filigrane dépasse une fenêtre, les éléments qui y arrivent après sont considérés comme données tardives.

Déclencheurs

Les déclencheurs déterminent à quel moment émettre les résultats agrégés à l'arrivée des données. Pour les données limitées, les résultats sont émis une fois que toutes les entrées ont été traitées. Pour les données illimitées. les résultats sont émis lorsque le filigrane dépasse la fin de la fenêtre, ce qui indique que le système estime que toutes les données d'entrée pour cette fenêtre ont été traitées.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.