Beam Me Up: Voyaging into Big Data

Michele Titolo
Michele TitoloComputers ¯\_(ツ)_/¯ at Square
Beam Me Up:
Voyaging Into Big Data
Michele Titolo
Senior Software Engineer, Square
@micheletitolo
@micheletitolo
Big Data Is All
Around Us
@micheletitolo
Apache Beam Is One
Of The Available
Tools
@micheletitolo
@micheletitolo
Benefits At Square
@micheletitolo
24x
Faster
10x
Uploads
<$100
Backfill
@micheletitolo
‣ What is Beam
‣ How to build a pipeline
‣ Tips and Gotchas
What We Will Cover
What Is Beam
@micheletitolo
Abstraction
@micheletitolo
Built For Parallelism
@micheletitolo
Time
1
2
3
Time
1
2
3
@micheletitolo
Highly Scalable
@micheletitolo
Sits On Top Of Or
Adjacent To Other
Tools
@micheletitolo
Portable
BIG
Not Just for
Data
Building Beam Pipelines
@micheletitolo
Runners
Pipeline Code
@micheletitolo
Runners
Pipeline Code
@micheletitolo
Executor.
Don’t Build Yourself
@micheletitolo
@micheletitolo
@micheletitolo
https://beam.apache.org/documentation/runners/capability-matrix/
@micheletitolo
1 2 3
@micheletitolo
1 2 3
0 0> 1
@micheletitolo
1 2 3
> 1
@micheletitolo
1 2 3
> 1
@micheletitolo
Deployment
https://beam.apache.org/documentation/runners/capability-matrix/
@micheletitolo
Runners
Pipeline Code
@micheletitolo
Pipelines Are Defined
Solely In Code
@micheletitolo
Java, Python, Go
@micheletitolo
No Explicit
Dependency Graph
@micheletitolo
Create A Pipeline
Object
@micheletitolo
Initial Data
https://beam.apache.org/documentation/io/built-in/
@micheletitolo
Use A Small Dataset To
Test
@micheletitolo
Run And Test Locally
@micheletitolo
Collections and
Transformations
@micheletitolo
PCollection
DoFn & PTransform
@micheletitolo
PCollections Are Kind
Of Like Arrays
@micheletitolo
Must Be Uniform
@micheletitolo
Transformations
Applied To Entire
PCollection
@micheletitolo
Contents
@micheletitolo
Inputs And Outputs
Must Serialize To Disk
@micheletitolo
KV: one key hash
@micheletitolo
Composite Objects
@micheletitolo
GroupByKey
:{ }
@micheletitolo
CoGroupByKey
:
{ }{
}
A
B
:
:
@micheletitolo
DoFn & PTransform
@micheletitolo
Most Of The Code Is In
These
@micheletitolo
DoFn
@micheletitolo
Process PCollection 1
Element at a Time
@micheletitolo
PTransform
@micheletitolo
Single Input And
Output Type
@micheletitolo
Side Inputs
@micheletitolo
Built In
Transformations
@micheletitolo
Flatten, Combine,
Partition
@micheletitolo
Statistics: Count, Mean,
Max Etc
@micheletitolo
Metrics
@micheletitolo
Outputs
@micheletitolo
1 2 3
PCollection
DoFn
PCollection PCollection
PCollection
Pipeline
https://beam.apache.org/get-started/wordcount-example/
DoFn DoFn
Tips And Gotchas
@micheletitolo
Input
@micheletitolo
Input
worker 1 worker 2
@micheletitolo
Input
workerworker workerworkerworker workerworkerworker worker
@micheletitolo
Input
worker
@micheletitolo
Keep
Transformations
Small And Simple
@micheletitolo
A B C3
B C2
Time
A B C1
A
@micheletitolo
3
B C2
Time
A B C1
A
RESHUFFLE
D E F
@micheletitolo
Smaller -> Resilient
@micheletitolo
Input
@micheletitolo
Input
@micheletitolo
Something
WILL PROBABLY
GO
WRONG
1 2 3
1 2 3
1 2
@micheletitolo
No Dead Letter
Queue
@micheletitolo
:
:
{ }{
}
:
@micheletitolo
:
{ }
:
{ }:
{ }
:
{ } :
{ }
Partition
:
{ }{ }: :
{ }{ }:
:
{ }{ }:
:
{ }{ }:
:
{ }{ }:
@micheletitolo
Idempotency
@micheletitolo
Intermediate State
Goes Away After
Finish
@micheletitolo
@micheletitolo
Api Ratelimits
@micheletitolo
Multiple Of The
Same Pipeline Can
Be Running
In Summary
@micheletitolo
Beam Is A General
Purpose Tool
@micheletitolo
Adaptable To Many
Scenarios
@micheletitolo
Easy To Get Started
@micheletitolo
Significantly
Improved Some ETLs
@micheletitolo
Questions?
• https://unsplash.com/photos/MShiKyjGhck
• https://unsplash.com/photos/DByY8MbE9OE
• https://unsplash.com/photos/fR47SivxkSM
• https://unsplash.com/photos/m3TYLFI_mDo
Photo Credits
1 of 90

Recommended

Della Valle Enterprise 2.0- Potenzialità di combinare SOA e Web 2.0 by
Della Valle Enterprise 2.0- Potenzialità di combinare SOA e Web 2.0Della Valle Enterprise 2.0- Potenzialità di combinare SOA e Web 2.0
Della Valle Enterprise 2.0- Potenzialità di combinare SOA e Web 2.0Emanuele Della Valle
556 views45 slides
From iOS to Distributed Systems by
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed SystemsMichele Titolo
944 views101 slides
Entity Framework 7, Back To The Future! by
Entity Framework 7, Back To The Future!Entity Framework 7, Back To The Future!
Entity Framework 7, Back To The Future!Michael Denny
661 views25 slides
Data Analysis & Machine Learning by
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine LearningCaffeina
256 views48 slides
Alberto Degradi - Conferenza Plenaria Mobile Revolution State of the art by
Alberto Degradi - Conferenza Plenaria Mobile Revolution State of the artAlberto Degradi - Conferenza Plenaria Mobile Revolution State of the art
Alberto Degradi - Conferenza Plenaria Mobile Revolution State of the artCultura Digitale
354 views29 slides
Pitch WCAP 2015 by
Pitch WCAP 2015Pitch WCAP 2015
Pitch WCAP 2015Alessandro Chelli
462 views15 slides

More Related Content

Similar to Beam Me Up: Voyaging into Big Data

Web service persino nei sistemi embedeed by
Web service persino nei sistemi embedeedWeb service persino nei sistemi embedeed
Web service persino nei sistemi embedeedAntonio Cafiero
364 views3 slides
Presentazione by
PresentazionePresentazione
Presentazioneguest8107dde4
400 views15 slides
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform... by
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...Sergio Patano
293 views26 slides
Web2.0 by
Web2.0Web2.0
Web2.0Carlo Vaccari
1.5K views128 slides
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d... by
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...Data Driven Innovation
3.7K views27 slides
Piano Didattico Personalizzato on-line (PDP on-line) by
Piano Didattico Personalizzato on-line (PDP on-line)Piano Didattico Personalizzato on-line (PDP on-line)
Piano Didattico Personalizzato on-line (PDP on-line)Michele Maffucci
12.8K views61 slides

Similar to Beam Me Up: Voyaging into Big Data(20)

Web service persino nei sistemi embedeed by Antonio Cafiero
Web service persino nei sistemi embedeedWeb service persino nei sistemi embedeed
Web service persino nei sistemi embedeed
Antonio Cafiero364 views
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform... by Sergio Patano
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...
OBS4DX - Il ruolo dell’object storage nel percorso verso la Digital Transform...
Sergio Patano293 views
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d... by Data Driven Innovation
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...
Poliglottismo tecnologico & innovazione: un matrimonio perfetto? Esperienze d...
Piano Didattico Personalizzato on-line (PDP on-line) by Michele Maffucci
Piano Didattico Personalizzato on-line (PDP on-line)Piano Didattico Personalizzato on-line (PDP on-line)
Piano Didattico Personalizzato on-line (PDP on-line)
Michele Maffucci12.8K views
Siti web, portali e Rich Internet Applications: tendenze e controtendenze by Diego La Monica
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Diego La Monica452 views
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023 by AndreaStagi3
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
AndreaStagi362 views
Editoria in the Cloud by ENTER S.r.l.
Editoria in the CloudEditoria in the Cloud
Editoria in the Cloud
ENTER S.r.l.644 views
Modernize Legacy Systems with Kubernetes by Giulio Roggero
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
Giulio Roggero274 views
Introduzione all'Agile Software Development by Paolo Sammicheli
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software Development
Paolo Sammicheli185 views
Elk - Elasticsearch Logstash Kibana stack explained by Federico Panini
Elk - Elasticsearch Logstash Kibana stack explainedElk - Elasticsearch Logstash Kibana stack explained
Elk - Elasticsearch Logstash Kibana stack explained
Federico Panini1.3K views
Introduzione all'Agile Software Development by Paolo Sammicheli
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software Development
Paolo Sammicheli338 views
Siamo tutti bravi con il browser degli altri! by Francesco Sciuti
Siamo tutti bravi con il browser degli altri!Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!
Francesco Sciuti294 views
Exploring the New IT by IDC Italy
Exploring the New ITExploring the New IT
Exploring the New IT
IDC Italy 928 views
É ora di passare a Pipeline as code by Matteo Emili
É ora di passare a Pipeline as codeÉ ora di passare a Pipeline as code
É ora di passare a Pipeline as code
Matteo Emili119 views
Mariano Cunietti: “Mamma, ho fatto il botto!” Dal minimarket al superstore in... by Meet Magento Italy
Mariano Cunietti: “Mamma, ho fatto il botto!” Dal minimarket al superstore in...Mariano Cunietti: “Mamma, ho fatto il botto!” Dal minimarket al superstore in...
Mariano Cunietti: “Mamma, ho fatto il botto!” Dal minimarket al superstore in...
Meet Magento Italy684 views

More from Michele Titolo

Writing Design Docs for Wide Audiences by
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesMichele Titolo
94 views43 slides
APIs: The Good, The Bad, The Ugly by
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyMichele Titolo
155 views98 slides
Tackling the Big, Impossible Project by
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible ProjectMichele Titolo
534 views39 slides
No Microservice is an Island by
No Microservice is an IslandNo Microservice is an Island
No Microservice is an IslandMichele Titolo
611 views183 slides
More than po: Debugging in LLDB by
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDBMichele Titolo
2.6K views138 slides
APIs for the Mobile World by
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile WorldMichele Titolo
239 views73 slides

More from Michele Titolo(20)

Writing Design Docs for Wide Audiences by Michele Titolo
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
Michele Titolo94 views
APIs: The Good, The Bad, The Ugly by Michele Titolo
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
Michele Titolo155 views
Tackling the Big, Impossible Project by Michele Titolo
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
Michele Titolo534 views
No Microservice is an Island by Michele Titolo
No Microservice is an IslandNo Microservice is an Island
No Microservice is an Island
Michele Titolo611 views
More than po: Debugging in LLDB by Michele Titolo
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
Michele Titolo2.6K views
Swift Generics in Theory and Practice by Michele Titolo
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
Michele Titolo1.8K views
Making friendly-microservices by Michele Titolo
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
Michele Titolo1.1K views
More Than po: Debugging in LLDB @ CocoaConf SJ 2015 by Michele Titolo
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
Michele Titolo761 views
More than `po`: Debugging in lldb by Michele Titolo
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
Michele Titolo9.1K views
Cocoa Design Patterns in Swift by Michele Titolo
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
Michele Titolo9.1K views
Mastering the Project File (AltConf) by Michele Titolo
Mastering the Project File (AltConf)Mastering the Project File (AltConf)
Mastering the Project File (AltConf)
Michele Titolo1.8K views
APIs: The good, the bad, the ugly by Michele Titolo
APIs: The good, the bad, the uglyAPIs: The good, the bad, the ugly
APIs: The good, the bad, the ugly
Michele Titolo8K views

Beam Me Up: Voyaging into Big Data