présentation google dataflow
Post on 12-Apr-2017
599 Views
Preview:
TRANSCRIPT
Google Dataflow
Sommaire
Origine et principe
Mise en place
Concepts
Windowing / Watermark
Présentation GCP
Dataflow origine
MapReduce2004
FlumeJava2010
MillWheel2013
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 GCPMettre disponible les APIs :
Google Cloud Dataflow APICompute Engine API (Google Compute Engine)Google Cloud Logging APIGoogle Cloud StorageGoogle Cloud Storage JSON APIBigQuery APIGoogle Cloud Pub/SubGoogle 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 BucketsBigQuery DatasetsPub/Sub Topics and SubscriptionsCloud Datastore
=> Go to the Pipelines World
Concept
Source
PCollection PCollection PCollectionTransform Transform
PIPELINES
Sink
Sink
SinkSource
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 sortieI/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 accessUniquement 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(CountFn())
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
42
3
1
234
5
5
Windowing - Watermark
9:00 9:209:10 9:30 9:40
Event Time
Processing Time
1
42
3
1
234
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 basedData drivenCombined
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/
top related