SlideShare une entreprise Scribd logo
1  sur  37
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 traitements en
parallèle “
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
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
Mise en place local
Launcher
DirectPipelineRunner : execution local
DataFlowPipelineRunner : lance l’execution / s’arrete
BlockingDataflowPipelineRunner : lance l’execution et
attends qu’il se termine.
Launcher
Cloud Storage Buckets
BigQuery Datasets
Pub/Sub Topics and Subscriptions
Cloud Datastore
=> Go to the Pipelines World
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 : 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.
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.
Concept - PCollections
“represents a very large data set in the cloud”
immutable
pas de ramdom access
Uniquement dans le pipelines
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, ...
Sfeir, Cloud, ...
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>...
Transform - GroupByKey
GroupByKey
<d, {Data}>, <s, { Sfeir,
Sync}>, <c, {Cloud}>
<d, Data>, <s, Sfeir>,
<c, Cloud>, <s, Sync>...
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>
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
Processing Time
1
4
2
3
1
23
4
5
5
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
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
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=3UfZN59Nsk8
Dataflow GCP : https://cloud.google.com/dataflow/
Geoffrey Garnotel
Email : ggarnotel@gmail.com
Twitter : @ggarnotel

Contenu connexe

Similaire à Présentation Google Dataflow

Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Neo4j
 
Activity
ActivityActivity
Activity
dido
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
PALO IT
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Bruno Bonnin
 

Similaire à Présentation Google Dataflow (20)

SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
Procédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénientsProcédures CLR pour SQL Server : avantages et inconvénients
Procédures CLR pour SQL Server : avantages et inconvénients
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019
 
Livecast: Mettez à disposition de vos partenaires une base de données SQL Azure
Livecast: Mettez à disposition de vos partenaires une base de données SQL AzureLivecast: Mettez à disposition de vos partenaires une base de données SQL Azure
Livecast: Mettez à disposition de vos partenaires une base de données SQL Azure
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
 
Activity
ActivityActivity
Activity
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Terraform - IAC - de quoi s'agit t'il ?.pdf
Terraform - IAC - de quoi s'agit t'il ?.pdfTerraform - IAC - de quoi s'agit t'il ?.pdf
Terraform - IAC - de quoi s'agit t'il ?.pdf
 
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 

Présentation Google Dataflow

Notes de l'éditeur

  1. 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.
  2. 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.
  3. How to convert input into accumulators How to combine accumulators How to extract output from accumulators
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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
  9. 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
  10. 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
  11. 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.
  12. 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
  13. 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