DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
scaredOf
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
scaredOf
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
scaredOf
scaredOf
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
scaredOf
scaredOf
eats
eats
DIVING INTO DSE GRAPHWITH DANI TRAPHAGEN, DATASTAX
@DTRAPEZOID -FOR ?S-
scaredOf
scaredOf
eats
eats
OMG GRAPHS EXPRESS
RELATIONSHIPS IN THE REAL
WORLD, SO, LIKE, EVERYTHING
IS A GRAPH PROBLEM!
OMG GRAPHS EXPRESS
RELATIONSHIPS IN THE REAL
WORLD, SO, LIKE, EVERYTHING
IS A GRAPH PROBLEM!
NO.
THE WORLD IS NOT YOUR OYSTER
OK, SO WHEN
SHOULD I USE IT?
OK, SO WHEN
SHOULD I USE IT?
PROPERTY
GRAPH
WHAT’S THAT, DANI,
MY NEW FRIEND?
EXACTLY.
WAIT, WUT, LOL?
GRAPH
TERMINOLOGY
PROPERTY GRAPHS
WHAT IS A PROPERTY GRAPH?
▸Directed, binary, attributed multi-graph
▸ Vertices
▸ Edges
▸ Properties
PROPERTY GRAPHS
VERTICES
▸ Always have unique ID & Label
▸ Can be attached to vertices
and edges
▸ Have name, value & so much
more
▸ Grossly Simplified Here
PROPERTY GRAPHS
VERTICES
▸ Always have unique ID & Label
▸ Can be attached to vertices
and edges
▸ Have name, value & so much
more
▸ Grossly Simplified Here
ME
PROPERTY GRAPHS
VERTICES
▸ Always have unique ID & Label
▸ Can be attached to vertices
and edges
▸ Have name, value & so much
more
▸ Grossly Simplified Here
YOUME
PROPERTY GRAPHS
EDGES
▸ Edges connect vertices with both
directionality and label
▸ They connect EXACTLY 2 vertices
and they always have direction…
▸ Unlike me in life…
▸ JK, I’m fine, really
HAHA,
FRIENDSHIP!
IKR?
YOUME FRIENDS
PROPERTY GRAPHS
PROPERTIES
▸ Where the Property Graph
gets its name
▸ K:V pairs
▸ Associated with any vertex
(entity) or edge (relationship)
in a property graph
YOUME
LOVES CATS
FRIENDS
PROPERTY GRAPHS
PROPERTIES
▸ Where the Property Graph
gets its name
▸ K:V pairs
▸ Associated with any vertex
(entity) or edge (relationship)
in a property graph
YOUME
HATES CATS
LOVES CATS
FRIENDS
PROPERTY GRAPHS
MULTI-PROPERTIES
▸ More than 1 property
YOUME
LOVES CATS
HATES CATS
FRIENDS
PROPERTY GRAPHS
MULTI-PROPERTIES
▸ More than 1 property
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN
FRIENDS
PROPERTY GRAPHS
MULTI-PROPERTIES
▸ More than 1 property
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN LOVES BATMAN
FRIENDS
PROPERTY GRAPHS
META-PROPERTIES
▸ Properties about properties
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN LOVES BATMAN
WATCHES
BATMAN ON FRI
WATCHES
BATMAN ON FRI
FRIENDS
PROPERTY GRAPHS
FINAL PROPERTY GRAPH
▸ We’ve built a nice story here
▸ But this is just a subgraph
▸ Our final property graph
comprises everything
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN LOVES BATMAN
WATCHES
BATMAN ON FRI
WATCHES
BATMAN ON FRI
FRIENDS
PROPERTY GRAPHS
FINAL PROPERTY GRAPH
▸ We’ve built a nice story here
▸ But this is just a subgraph
▸ Our final property graph
comprises everything
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN LOVES BATMAN
WATCHES
BATMAN ON FRI
WATCHES
BATMAN ON FRI
LOVES
JOHNNY
DEPP
FRIENDS
PROPERTY GRAPHS
FINAL PROPERTY GRAPH
▸ We’ve built a nice story here
▸ But this is just a subgraph
▸ Our final property graph
comprises everything
YOUME
LOVES CATS
HATES CATS
LOVES BATMAN LOVES BATMAN
WATCHES
BATMAN ON FRI
WATCHES
BATMAN ON FRI
HATES
JOHNNY DEPP
LOVES
JOHNNY
DEPP
FRIENDS
JUST SHOW ME
SOMETHING REAL!
YOU GOT IT:
A REAL FINAL PROPERTY GRAPH
MOVIES, WE LOVE 'EM
THE GREMLIN GRAPH
TRAVERSAL LANGUAGE
THE GREMLIN GRAPH TRAVERSAL LANGUAGE
WHAT’S THIS GREMLIN NOW?
▸ Gremlin is defined by Apache TinkerPop
▸ Expressive language to define traversals
▸ Yo, what good is a graph db if we can’t traverse it?
▸ Functional language with a fluent syntax
▸ Bindings in Groovy, Java8, Scala, Closure, and more
LINEAR MOTIF: TRAVERSAL
IS A SEQUENCE OF STEPS
NESTED MOTIF: TRAVERSAL
IS A TREE OF STEPS
TRAVERSAL INGREDIENTS
TRAVERSAL INGREDIENTS
TRAVERSAL INGREDIENTS
TRAVERSAL INGREDIENTS
BECOMING PROFICIENT IN GREMLIN
GRAPH TRAVERSAL STEP EVALUATION
▸ Lazy evaluation
▸ Everything is lazily evaluated
▸ All but barrier steps
▸ Barrier steps
▸ Collecting barrier steps: aggregate, barrier, order, sample
▸ Reducing barrier steps: count, fold, max, min, sum
▸ Supplying barrier step: cap
HOW DO I GET GREMLIN-
DANGEROUS?
HOW DO I GET GREMLIN-
DANGEROUS?
LEARN TO TRAVERSE LIKE A BOSS
HOW DO I GET GREMLIN-
DANGEROUS?
LEARN TO TRAVERSE LIKE A BOSS
TYPES OF GRAPH
TRAVERSALS
TRAVERSAL TYPES
SO MANY TRAVERSALS!
▸ Simple Traversal
▸ Branching Traversal
▸ Recursive Traversal
▸ Path Traversal
▸ Projecting Traversal
▸ Declarative Traversal
▸ Subgraph Traversal
▸ Statistical Traversal
▸ Ordering Traversal
▸ Mutating Traversal
▸ Domain Specific Traversal
TRAVERSAL TYPES
LET’S JUST TALK ABOUT 1 TYPE OF GRAPH TRAVERSAL*
▸Simple
*WISH WE HAD TIME TO ADDRESS RECURSIVE & STATISTICAL TOO
BUT THAT WON’T LIKELY HAPPEN, I HAVE DEMOS ON THEM, IF WE
DO. WE JUST GOTTA PICK OUR POISONS WITH LIMITED TIME. :’(
SIMPLE
TRAVERSALS
THE MOST BASIC
GRAPH TRAVERSAL
▸Moves traverser through
steps in sequential order
▸Contains no internal, nested
traversals
PREREQUISITES: VERTEX STEPS
& NAVIGATION
NAVIGATING FROM
AN EDGE
SIMPLE TRAVERSAL WITH IN
Find Johnny Depp’s movies released in 2010 or later:
SIMPLE TRAVERSAL WITH IN AND OUT
Find directors of Johnny Depp’s movies released in
2010 or later:
SIMPLE TRAVERSAL WITH IN AND INE
Find user ratings for Johnny Depp’s movies released
in 2010 or later:
PREDICATES
Relating objects and values
SIMPLE TRAVERSAL
WITH IN, INE, AND OUTV
Find ages of users who left 7 or 8 star ratings for Johnny Depp’s movies
released in 2010 or later
DEMO TIME
THANK YOU,
BEAUTIFUL HUMANZ
@DTRAPEZOID

Diving into DSE Graph