Présentation Google Dataflow

678 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
678
Sur SlideShare
0
Issues des intégrations
0
Intégrations
61
Actions
Partages
0
Téléchargements
9
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

    ×