SlideShare a Scribd company logo
Jason Plurad • pluradj@us.ibm.com • @pluradj
Software Developer • IBM Open Technology
Project Management Committee • Apache TinkerPop
November 18, 2017 • Open Camps NYC • #OpenCamps2017
Graph Computing
with Apache TinkerPop
Open Source Graphs – Preach!
2 @pluradj #OpenCamps2017
Social Graphs, Right?
3 @pluradj #OpenCamps2017
Property Graph
4 @pluradj #OpenCamps2017
Apache TinkerPop
§ Open source, vendor-agnostic,
graph computing framework
§ Gremlin graph traversal language
5
Apache TinkerPop™
Maintainer Apache
Software
Foundation
License Apache
Latest Release 3.3.0
August 2017
https://tinkerpop.apache.org
@pluradj #OpenCamps2017
Graph System Integration
6 @pluradj #OpenCamps2017
Graph Provider Landscape
7 @pluradj #OpenCamps2017
Open Source (OLAP)
• Apache Giraph
• Apache Spark
Vendor
• DataStax DSE Graph
• Azure Cosmos DB
• Neo4j
• OrientDB
• Stardog
Open Source
• Apache S2Graph
• HGraphDB
• JanusGraph
• TinkerGraph
• UniPop
Open Source Contributions
Gremlin Traversal Language
9
Recursively show all employees and their supervisors
Daniel Kuppitz @dkuppitz
http://sql2gremlin.com/
@pluradj #OpenCamps2017
Jean-Baptiste Musso @jbmusso
https://github.com/jbmusso/gremlin-javascript
Gremlin Bindings
@pluradj #OpenCamps2017
Gremlin Language Drivers
§ Elevate Gremlin to a top-level citizen in the programming language of choice
§ GLV can work with any modern language
– Function composition
– Function nesting
§ Java and Groovy (native)
§ Python is the first non-JVM GLV
§ Others are coming soon (JavaScript, C#, Go)
§ SPARQL-Gremlin and SQL-Gremlin
http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants
@pluradj #OpenCamps2017
Gremlin Language Variants (GLV)
12
Graph Databases, Gremlin and TinkerPop – A Tutorial
Kelvin Lawrence @gfxman
https://github.com/krlawrence/graph
@pluradj #OpenCamps2017
13
Graph Model: Air Routes
@pluradj #OpenCamps2017
airport
continentcountry
route
code
desc
code
desc
code
city
desc
elev
lat
lon
dist
14
Gremlin: Add a Vertex
@pluradj #OpenCamps2017
Vertex rdu = g.addV('airport').
property('code', 'RDU').
property('city', 'Raleigh').
property('desc', 'Raleigh-Durham International').
property('elev', 435).
property('lat', 35.877601).
property('lon', -78.787498).
next()
15
Gremlin: Add an Edge
@pluradj #OpenCamps2017
Edge rdujfk = g.V().
has('airport', 'code', 'RDU').
addE('route').to(
g.V().has('airport', 'code', 'JFK' ) ).
property('dist', 427).
next()
16
Where can I fly non-stop from Raleigh?
@pluradj #OpenCamps2017
> g.V().has('airport', 'code', 'RDU').
out('route').
values('code').
fold().
toList()
==> [IAH, JFK, LAX, LGA, MCO, MIA, MSP, HOU,
CLE, DFW, FLL, IAD, MSY, YYZ, PHX, BDL, SEA,
CMH, SFO, TTN, TPA, SFB, SLC, PGD, LAS, PIE,
DEN, EWR, ATL, AUS, BNA, BOS, BWI, MDW, DCA,
ORD, STL, DAL, PHL, CDG, DTW, LHR, CLT, PIT,
MEM, CUN, IND, CVG]
17
What international flights depart from Raleigh?
@pluradj #OpenCamps2017
> g.V().has('airport', 'code', 'RDU').
out('route').
has('country', neq('US')).
values('city').
toList()
==> Toronto
==> Paris
==> London
==> Cancun
18
What is the shortest path to Melbourne?
@pluradj #OpenCamps2017
> g.V(rdu).
repeat( out('route').simplePath() ).
until( has('code', 'MEL') ).
limit(5).
path().by('code').
toList()
==> [RDU, LAX, MEL]
==> [RDU, IAH, NRT, MEL]
==> [RDU, IAH, DXB, MEL]
==> [RDU, IAH, AKL, MEL]
==> [RDU, IAH, PEK, MEL]
19
Graph Code Patterns
IBM Cognitive OpenTech & Performance
https://github.com/IBM/janusgraph-utils
§ A 360° view of how Apache TinkerPop and JanusGraph solves a specific problem
– Includes contextual overviews, architecture diagrams, process flows, demos, blog posts,
and source code
§ Twitter-like application in JanusGraph
– Data generator
– Schema loader
– CSV importer
– Graph model and Gremlin queries
§ Contributions welcome!
20
Graphic Design
Ketrina Yim @KetrinaYim
http://ketrinadrawsalot.tumblr.com/
@pluradj #OpenCamps2017
Thank you!

More Related Content

What's hot (20)

PDF
JanusGraph, Jupyter Meetup NYC
Jason Plurad
 
PPTX
Janus graph lookingbackwardreachingforward
Demai Ni
 
PPTX
Large Scale Graph Analytics with JanusGraph
P. Taylor Goetz
 
PDF
Data Science in the Cloud
Margriet Groenendijk
 
PDF
Cloud architectures for data science
Margriet Groenendijk
 
PDF
Introduction to GraphQL
İlker Güller
 
PDF
Zentral QueryCon 2018
Henry Stamerjohann
 
PDF
Introduction to the IBM Watson Data Platform
Margriet Groenendijk
 
PPTX
The IoT and big data
Gal Ben-Haim
 
PDF
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
New Relic
 
PDF
Big data groningen
Willem Hendriks
 
PDF
Python and H2O with Cliff Click at PyData Dallas 2015
Sri Ambati
 
PDF
Big data groningen
Willem Hendriks
 
PPTX
Intro To Graph Databases - Oxana Goriuc
Fraugster
 
PDF
Heterogeneous Data Mining with Spark
KNIMESlides
 
PPTX
Py datanyc2015
rosettahub
 
PDF
Publishing metadata provenance
Jana Hentschke
 
PPTX
Presto summit israel 2019-04
Ori Reshef
 
PDF
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
Data Con LA
 
PPTX
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Ibrahim Muhammadi
 
JanusGraph, Jupyter Meetup NYC
Jason Plurad
 
Janus graph lookingbackwardreachingforward
Demai Ni
 
Large Scale Graph Analytics with JanusGraph
P. Taylor Goetz
 
Data Science in the Cloud
Margriet Groenendijk
 
Cloud architectures for data science
Margriet Groenendijk
 
Introduction to GraphQL
İlker Güller
 
Zentral QueryCon 2018
Henry Stamerjohann
 
Introduction to the IBM Watson Data Platform
Margriet Groenendijk
 
The IoT and big data
Gal Ben-Haim
 
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
New Relic
 
Big data groningen
Willem Hendriks
 
Python and H2O with Cliff Click at PyData Dallas 2015
Sri Ambati
 
Big data groningen
Willem Hendriks
 
Intro To Graph Databases - Oxana Goriuc
Fraugster
 
Heterogeneous Data Mining with Spark
KNIMESlides
 
Py datanyc2015
rosettahub
 
Publishing metadata provenance
Jana Hentschke
 
Presto summit israel 2019-04
Ori Reshef
 
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
Data Con LA
 
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Ibrahim Muhammadi
 

Similar to Graph Computing with Apache TinkerPop (20)

PDF
A tech writer, a map, and an app
Sarah Maddox
 
PDF
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
Alex Borysov
 
PDF
PGQL: A Language for Graphs
Jean Ihm
 
PDF
State of the Art Web Mapping with Open Source
OSCON Byrum
 
PDF
Deep_dive_on_Amazon_Neptune_DAT361.pdf
ShaikAsif83
 
PDF
GraphQL Meetup Bangkok 3.0
Tobias Meixner
 
PDF
SparkR - Play Spark Using R (20160909 HadoopCon)
wqchen
 
PPTX
SETCON'18 - Ilya labacheuski - GraphQL adventures
Nadzeya Pus
 
PPTX
Monitoring Spark Applications
Tzach Zohar
 
PDF
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
TigerGraph
 
PDF
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Databricks
 
PPTX
Apache Spark Machine Learning Decision Trees
Carol McDonald
 
PDF
Microsoft R Server for Data Sciencea
Data Science Thailand
 
PDF
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
Chester Chen
 
PDF
Free Code Friday - Machine Learning with Apache Spark
MapR Technologies
 
PDF
Graph computation
Sigmoid
 
PPTX
RR & Docker @ MuensteR Meetup (Sep 2017)
Daniel Nüst
 
PDF
Document Conversion & Retrieve and Rank 一問一答
Hisashi Komine
 
PDF
Three Functional Programming Technologies for Big Data
Dynamical Software, Inc.
 
PDF
JAX-RS and CDI Bike the (Reactive) Bridge
José Paumard
 
A tech writer, a map, and an app
Sarah Maddox
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
Alex Borysov
 
PGQL: A Language for Graphs
Jean Ihm
 
State of the Art Web Mapping with Open Source
OSCON Byrum
 
Deep_dive_on_Amazon_Neptune_DAT361.pdf
ShaikAsif83
 
GraphQL Meetup Bangkok 3.0
Tobias Meixner
 
SparkR - Play Spark Using R (20160909 HadoopCon)
wqchen
 
SETCON'18 - Ilya labacheuski - GraphQL adventures
Nadzeya Pus
 
Monitoring Spark Applications
Tzach Zohar
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
TigerGraph
 
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Databricks
 
Apache Spark Machine Learning Decision Trees
Carol McDonald
 
Microsoft R Server for Data Sciencea
Data Science Thailand
 
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
Chester Chen
 
Free Code Friday - Machine Learning with Apache Spark
MapR Technologies
 
Graph computation
Sigmoid
 
RR & Docker @ MuensteR Meetup (Sep 2017)
Daniel Nüst
 
Document Conversion & Retrieve and Rank 一問一答
Hisashi Komine
 
Three Functional Programming Technologies for Big Data
Dynamical Software, Inc.
 
JAX-RS and CDI Bike the (Reactive) Bridge
José Paumard
 
Ad

More from Jason Plurad (6)

PPTX
Community-Driven Graphs with JanusGraph
Jason Plurad
 
PDF
Graph Processing with Apache TinkerPop and Gremlin
Jason Plurad
 
PDF
IBM Open by Design: Graph Technology
Jason Plurad
 
PDF
Enabling Multimodel Graphs with Apache TinkerPop
Jason Plurad
 
PDF
Graph Processing with Titan and Scylla
Jason Plurad
 
PDF
Graph Processing with Apache TinkerPop
Jason Plurad
 
Community-Driven Graphs with JanusGraph
Jason Plurad
 
Graph Processing with Apache TinkerPop and Gremlin
Jason Plurad
 
IBM Open by Design: Graph Technology
Jason Plurad
 
Enabling Multimodel Graphs with Apache TinkerPop
Jason Plurad
 
Graph Processing with Titan and Scylla
Jason Plurad
 
Graph Processing with Apache TinkerPop
Jason Plurad
 
Ad

Recently uploaded (20)

PPTX
ERP - FICO Presentation BY BSL BOKARO STEEL LIMITED.pptx
ravisranjan
 
PDF
>Nitro Pro Crack 14.36.1.0 + Keygen Free Download [Latest]
utfefguu
 
PDF
WholeClear Split vCard Software for Split large vCard file
markwillsonmw004
 
PDF
How DeepSeek Beats ChatGPT: Cost Comparison and Key Differences
sumitpurohit810
 
PDF
AI Software Development Process, Strategies and Challenges
Net-Craft.com
 
PPTX
computer forensics encase emager app exp6 1.pptx
ssuser343e92
 
PDF
Automated Test Case Repair Using Language Models
Lionel Briand
 
PPTX
NeuroStrata: Harnessing Neuro-Symbolic Paradigms for Improved Testability and...
Ivan Ruchkin
 
PPTX
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
PPTX
Iobit Driver Booster Pro 12 Crack Free Download
chaudhryakashoo065
 
PDF
From Chaos to Clarity: Mastering Analytics Governance in the Modern Enterprise
Wiiisdom
 
PDF
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
PPTX
Seamless-Image-Conversion-From-Raster-to-wrt-rtx-rtx.pptx
Quick Conversion Services
 
PDF
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
 
PPTX
IObit Driver Booster Pro Crack Download Latest Version
chaudhryakashoo065
 
PDF
IObit Uninstaller Pro 14.3.1.8 Crack for Windows Latest
utfefguu
 
PDF
Cloud computing Lec 02 - virtualization.pdf
asokawennawatte
 
PDF
Writing Maintainable Playwright Tests with Ease
Shubham Joshi
 
PDF
Power BI vs Tableau vs Looker - Which BI Tool is Right for You?
MagnusMinds IT Solution LLP
 
PPTX
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 
ERP - FICO Presentation BY BSL BOKARO STEEL LIMITED.pptx
ravisranjan
 
>Nitro Pro Crack 14.36.1.0 + Keygen Free Download [Latest]
utfefguu
 
WholeClear Split vCard Software for Split large vCard file
markwillsonmw004
 
How DeepSeek Beats ChatGPT: Cost Comparison and Key Differences
sumitpurohit810
 
AI Software Development Process, Strategies and Challenges
Net-Craft.com
 
computer forensics encase emager app exp6 1.pptx
ssuser343e92
 
Automated Test Case Repair Using Language Models
Lionel Briand
 
NeuroStrata: Harnessing Neuro-Symbolic Paradigms for Improved Testability and...
Ivan Ruchkin
 
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
Iobit Driver Booster Pro 12 Crack Free Download
chaudhryakashoo065
 
From Chaos to Clarity: Mastering Analytics Governance in the Modern Enterprise
Wiiisdom
 
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
Seamless-Image-Conversion-From-Raster-to-wrt-rtx-rtx.pptx
Quick Conversion Services
 
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
 
IObit Driver Booster Pro Crack Download Latest Version
chaudhryakashoo065
 
IObit Uninstaller Pro 14.3.1.8 Crack for Windows Latest
utfefguu
 
Cloud computing Lec 02 - virtualization.pdf
asokawennawatte
 
Writing Maintainable Playwright Tests with Ease
Shubham Joshi
 
Power BI vs Tableau vs Looker - Which BI Tool is Right for You?
MagnusMinds IT Solution LLP
 
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 

Graph Computing with Apache TinkerPop

  • 1. Jason Plurad • [email protected] • @pluradj Software Developer • IBM Open Technology Project Management Committee • Apache TinkerPop November 18, 2017 • Open Camps NYC • #OpenCamps2017 Graph Computing with Apache TinkerPop
  • 2. Open Source Graphs – Preach! 2 @pluradj #OpenCamps2017
  • 3. Social Graphs, Right? 3 @pluradj #OpenCamps2017
  • 4. Property Graph 4 @pluradj #OpenCamps2017
  • 5. Apache TinkerPop § Open source, vendor-agnostic, graph computing framework § Gremlin graph traversal language 5 Apache TinkerPop™ Maintainer Apache Software Foundation License Apache Latest Release 3.3.0 August 2017 https://tinkerpop.apache.org @pluradj #OpenCamps2017
  • 6. Graph System Integration 6 @pluradj #OpenCamps2017
  • 7. Graph Provider Landscape 7 @pluradj #OpenCamps2017 Open Source (OLAP) • Apache Giraph • Apache Spark Vendor • DataStax DSE Graph • Azure Cosmos DB • Neo4j • OrientDB • Stardog Open Source • Apache S2Graph • HGraphDB • JanusGraph • TinkerGraph • UniPop
  • 9. Gremlin Traversal Language 9 Recursively show all employees and their supervisors Daniel Kuppitz @dkuppitz http://sql2gremlin.com/ @pluradj #OpenCamps2017
  • 11. § Elevate Gremlin to a top-level citizen in the programming language of choice § GLV can work with any modern language – Function composition – Function nesting § Java and Groovy (native) § Python is the first non-JVM GLV § Others are coming soon (JavaScript, C#, Go) § SPARQL-Gremlin and SQL-Gremlin http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants @pluradj #OpenCamps2017 Gremlin Language Variants (GLV)
  • 12. 12 Graph Databases, Gremlin and TinkerPop – A Tutorial Kelvin Lawrence @gfxman https://github.com/krlawrence/graph @pluradj #OpenCamps2017
  • 13. 13 Graph Model: Air Routes @pluradj #OpenCamps2017 airport continentcountry route code desc code desc code city desc elev lat lon dist
  • 14. 14 Gremlin: Add a Vertex @pluradj #OpenCamps2017 Vertex rdu = g.addV('airport'). property('code', 'RDU'). property('city', 'Raleigh'). property('desc', 'Raleigh-Durham International'). property('elev', 435). property('lat', 35.877601). property('lon', -78.787498). next()
  • 15. 15 Gremlin: Add an Edge @pluradj #OpenCamps2017 Edge rdujfk = g.V(). has('airport', 'code', 'RDU'). addE('route').to( g.V().has('airport', 'code', 'JFK' ) ). property('dist', 427). next()
  • 16. 16 Where can I fly non-stop from Raleigh? @pluradj #OpenCamps2017 > g.V().has('airport', 'code', 'RDU'). out('route'). values('code'). fold(). toList() ==> [IAH, JFK, LAX, LGA, MCO, MIA, MSP, HOU, CLE, DFW, FLL, IAD, MSY, YYZ, PHX, BDL, SEA, CMH, SFO, TTN, TPA, SFB, SLC, PGD, LAS, PIE, DEN, EWR, ATL, AUS, BNA, BOS, BWI, MDW, DCA, ORD, STL, DAL, PHL, CDG, DTW, LHR, CLT, PIT, MEM, CUN, IND, CVG]
  • 17. 17 What international flights depart from Raleigh? @pluradj #OpenCamps2017 > g.V().has('airport', 'code', 'RDU'). out('route'). has('country', neq('US')). values('city'). toList() ==> Toronto ==> Paris ==> London ==> Cancun
  • 18. 18 What is the shortest path to Melbourne? @pluradj #OpenCamps2017 > g.V(rdu). repeat( out('route').simplePath() ). until( has('code', 'MEL') ). limit(5). path().by('code'). toList() ==> [RDU, LAX, MEL] ==> [RDU, IAH, NRT, MEL] ==> [RDU, IAH, DXB, MEL] ==> [RDU, IAH, AKL, MEL] ==> [RDU, IAH, PEK, MEL]
  • 19. 19 Graph Code Patterns IBM Cognitive OpenTech & Performance https://github.com/IBM/janusgraph-utils § A 360° view of how Apache TinkerPop and JanusGraph solves a specific problem – Includes contextual overviews, architecture diagrams, process flows, demos, blog posts, and source code § Twitter-like application in JanusGraph – Data generator – Schema loader – CSV importer – Graph model and Gremlin queries § Contributions welcome!
  • 20. 20 Graphic Design Ketrina Yim @KetrinaYim http://ketrinadrawsalot.tumblr.com/ @pluradj #OpenCamps2017