Google Dataflow
Sommaire
Origine et principe
Mise en place
Concepts
Windowing / Watermark
Présentation GCP
Dataflow origine
MapReduce
2004
FlumeJava
2010
MillWheel
2013
Présentation Dataflow
“ Se concentrer sur la logique des process plutôt que sur
l’orchestration physique pour mettre des t...
Présentation Dataflow
SDK
Job de Traitement de
donnée
GCP Service
Intégration et utilisation
de la Google Cloud
Platform e...
Mise en place sur le cloud
Création Compte GCP
Mettre disponible les APIs :
Google Cloud Dataflow API
Compute Engine API (...
Mise en place local
Launcher
DirectPipelineRunner : execution local
DataFlowPipelineRunner : lance l’execution / s’arrete
BlockingDataflowPipe...
Launcher
Cloud Storage Buckets
BigQuery Datasets
Pub/Sub Topics and Subscriptions
Cloud Datastore
=> Go to the Pipelines W...
Concept
Source
PCollection PCollection PCollection
Transform Transform
PIPELINES
Sink
Sink
Sink
Source
Concept
Pipelines : ensemble d’opération qui lis les données, les
transforme et qui écris les résultats / job
PCollections...
Concept - Pipelines
“ensemble des opérations qui lis les données, les transforme et
qui écris les résultats”
Possibilité d...
Concept - PCollections
“represents a very large data set in the cloud”
immutable
pas de ramdom access
Uniquement dans le p...
Concept - PCollections
Bounded
Unbounded
Transform
ParDo
GroupByKey
Combine
Flatten
Transform
Transform - ParDo (“Parallel Do”)
LowerCase Filter
Data, Sfeir, Cloud, ...
data, sfeir, cloud, ...
Data, Sfeir, Cloud, ......
Transform - ParDo (“Parallel Do”)
ExplodePrefixes KeyByFirstLetter
Data, Sfeir, Cloud, ...
d, da, dat, data, s, sf,
sfe, s...
Transform - GroupByKey
GroupByKey
<d, {Data}>, <s, { Sfeir,
Sync}>, <c, {Cloud}>
<d, Data>, <s, Sfeir>,
<c, Cloud>, <s, Sy...
Transform - Combine
Combine.perKey(C
ountFn())
GroupByKey
<d, Data>, <s, Sfeir>,
<c, Cloud>, <s, Sync>...
<d, {Data}>, <s,...
Source / Sink
Exemple
splitwords
Count
Format
Exemple
splitwords
Count
Format TopAndBottom
Windowing
Combine
GroupByKey
DataSet limité
Windowing
9:00 9:209:10 9:409:30
Windowing - Fixed
9:00 9:209:10 9:30 9:40
Défini le temps de la Window
Time
Windowing - Sliding
9:00 9:209:10 9:30 9:40
Défini le temps de la Window et la slide period
Time
Period
Windowing - Session
9:00 9:209:10 9:30 9:40
Défini le temps sans élement
Windowing
On joue avec le temps
Event Time Processing
Time
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
Proce...
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 p...
Trigger
Aider à gérer les late data / Récupérer des informations sur les
aggrégations en cours
3 types :
Time based
Data d...
WordCount BigQuery + TOP & MIN value
Link
DataFlow Model
http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf
Video Frances Perry :
https://www.youtube.com/watch?v=...
Geoffrey Garnotel
Email : ggarnotel@gmail.com
Twitter : @ggarnotel
Présentation Google Dataflow
Présentation Google Dataflow
Prochain SlideShare
Chargement dans…5
×

Présentation Google Dataflow

565 vues

Publié le

Slide de ma présentation lors de la soirée technique sur la manipulation de donnée du 03/12/2015

Publié dans : Données & analyses
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
565
Sur SlideShare
0
Issues des intégrations
0
Intégrations
61
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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
  • Présentation Google Dataflow

    1. 1. Google Dataflow
    2. 2. Sommaire Origine et principe Mise en place Concepts Windowing / Watermark
    3. 3. Présentation GCP
    4. 4. Dataflow origine MapReduce 2004 FlumeJava 2010 MillWheel 2013
    5. 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. 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. 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
    8. 8. Mise en place local
    9. 9. Launcher DirectPipelineRunner : execution local DataFlowPipelineRunner : lance l’execution / s’arrete BlockingDataflowPipelineRunner : lance l’execution et attends qu’il se termine.
    10. 10. Launcher Cloud Storage Buckets BigQuery Datasets Pub/Sub Topics and Subscriptions Cloud Datastore => Go to the Pipelines World
    11. 11. Concept Source PCollection PCollection PCollection Transform Transform PIPELINES Sink Sink Sink Source
    12. 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. 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.
    14. 14. Concept - PCollections “represents a very large data set in the cloud” immutable pas de ramdom access Uniquement dans le pipelines
    15. 15. Concept - PCollections Bounded Unbounded
    16. 16. Transform ParDo GroupByKey Combine Flatten Transform
    17. 17. Transform - ParDo (“Parallel Do”) LowerCase Filter Data, Sfeir, Cloud, ... data, sfeir, cloud, ... Data, Sfeir, Cloud, ... Sfeir, Cloud, ...
    18. 18. Transform - ParDo (“Parallel Do”) ExplodePrefixes KeyByFirstLetter Data, Sfeir, Cloud, ... d, da, dat, data, s, sf, sfe, sfei, sfeir, c, cl, clo, clou, cloud, ... Data, Sfeir, Cloud, Sync ... <d, Data>, <s, Sfeir>, <c, Cloud>, <s, Sync>...
    19. 19. Transform - GroupByKey GroupByKey <d, {Data}>, <s, { Sfeir, Sync}>, <c, {Cloud}> <d, Data>, <s, Sfeir>, <c, Cloud>, <s, Sync>...
    20. 20. Transform - Combine Combine.perKey(C ountFn()) GroupByKey <d, Data>, <s, Sfeir>, <c, Cloud>, <s, Sync>... <d, {Data}>, <s, { Sfeir, Sync}>, <c, {Cloud}> CountByKey <d, 1>, <s, 2>, <c, 1> <d, Data>, <s, Sfeir>, <c, Cloud>, <s, Sync>... <d, 1>, <s, 2>, <c, 1>
    21. 21. Source / Sink
    22. 22. Exemple splitwords Count Format
    23. 23. Exemple splitwords Count Format TopAndBottom
    24. 24. Windowing Combine GroupByKey DataSet limité
    25. 25. Windowing 9:00 9:209:10 9:409:30
    26. 26. Windowing - Fixed 9:00 9:209:10 9:30 9:40 Défini le temps de la Window Time
    27. 27. Windowing - Sliding 9:00 9:209:10 9:30 9:40 Défini le temps de la Window et la slide period Time Period
    28. 28. Windowing - Session 9:00 9:209:10 9:30 9:40 Défini le temps sans élement
    29. 29. Windowing On joue avec le temps Event Time Processing Time
    30. 30. 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
    31. 31. 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
    32. 32. 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
    33. 33. WordCount BigQuery + TOP & MIN value
    34. 34. Link DataFlow Model http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf Video Frances Perry : https://www.youtube.com/watch?v=3UfZN59Nsk8 Dataflow GCP : https://cloud.google.com/dataflow/
    35. 35. Geoffrey Garnotel Email : ggarnotel@gmail.com Twitter : @ggarnotel

    ×