5. Présentation Dataflow
“ Se concentrer sur la logique des process plutôt que sur
l’orchestration physique pour mettre des traitements en
parallèle “
6. Présentation Dataflow
SDK
Job de Traitement de
donnée
GCP Service
Intégration et utilisation
de la Google Cloud
Platform et de ses outils
7. Mise en place sur le cloud
Création Compte GCP
Mettre disponible les APIs :
Google Cloud Dataflow API
Compute Engine API (Google Compute Engine)
Google Cloud Logging API
Google Cloud Storage
Google Cloud Storage JSON API
BigQuery API
Google Cloud Pub/Sub
Google Cloud Datastore API
12. Concept
Pipelines : ensemble d’opération qui lis les données, les
transforme et qui écris les résultats / job
PCollections : Ensemble de données (bounded /
unbounded )
Transforms : Action pour manipuler les données, prend
N PCollection en entrée et en fournit une autre en
sortie
I/O sources and sinks : sources en entrée / Sink en
sortie.
13. Concept - Pipelines
“ensemble des opérations qui lis les données, les transforme et
qui écris les résultats”
Possibilité de créer plusieurs Pipelines mais pas d’interaction
entre.
Runner Cloud Dataflow Service ou autre.
31. Windowing - Watermark
9:00 9:209:10 9:30 9:40
Gérer le décalage entre le time event et le processing time
Event Time
Processing Time
1
4
2
3
1
23
4
5
5
32. Windowing - Watermark
9:00 9:209:10 9:30 9:40
Event Time
Processing Time
1
4
2
3
1
23
4
5
5
Le Watermark va permettre de prendre en compte la donnée 2 mais la donnée 5 sera considéré comme une
donnée en retard (data late)
On peut ajouter une gestion des data late au Watermark
33. Trigger
Aider à gérer les late data / Récupérer des informations sur les
aggrégations en cours
3 types :
Time based
Data driven
Combined
Ensemble de données typés non limité : en mémoire sur une simple instance Compute Engine ou sur un datastore plus important …
… ou en stream : seul contrainte être capable de les sérialiser soit en utilisant des données que dataflow maitrise soit en lui fornissant comment les encoder.
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
How to convert input into accumulators
How to combine accumulators
How to extract output from accumulators
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
Toute les données n’arrive pas forcément en même temps, les données ne sont pas garanti pour arrivé dans le correct ordre temporel
Dataflow “surveille” un temps les données arrivant avec le même timestamps : watermark celle qui arrive plus tard sont des late data
Une window de 60 s, un watermark de 10 seconde, Dataflow va surveiller les données de 0 à 70 / de 60 à 130s … Data lag
Trigger : accumulation mode : Permet de dire quand on peut acceder au donnée “en avance” par exemple: temps de 10 minutes mais on veut suivre l’évolution d’une moyenne par exemple tous les 100 éléments .
activer : accumulatingFiredPanes / discardingFiredPanes
Transforme les données : d’une(N) PCollection à 1 (N) PCollection
Ne sont pas forcément appliquer dans l’ordre qu’ils sont mis. Dataflow va améliorer l’ordre selon un ordre de dépendance et une optimisation des exec.
Trigger : accumulation mode : Permet de dire quand on peut acceder au donnée “en avance” par exemple: temps de 10 minutes mais on veut suivre l’évolution d’une moyenne par exemple tous les 100 éléments .
activer : accumulatingFiredPanes / discardingFiredPanes
Trigger : accumulation mode : Permet de dire quand on peut acceder au donnée “en avance” par exemple: temps de 10 minutes mais on veut suivre l’évolution d’une moyenne par exemple tous les 100 éléments .
activer : accumulatingFiredPanes / discardingFiredPanes