Graph the Planet!
-
Upload
posscon -
Category
Technology
-
view
45 -
download
0
Transcript of Graph the Planet!
GRAPH THE PLANET!Introduction to the world of circles and arrows
WHO ARE YOU AGAIN?
Sean Copenhaver
GIS
Columbia, SC
Twitter : @copenhas
Github: copenhas
VainGlory: copenhas
WHAT IS A GRAPH?
NODES/VERTICES
NODES/VERTICES
RELATIONSHIPS/EDGES
RELATIONSHIPS/EDGES
A GRAPH
WHAT DO YOU DO WITH IT?
TRAVERSE IT
QUICK ASIDE TO RDBMSArtist Album
User UserLikes
WHAT BANDS WOULD
COPENHAS LIKE?
LET’S TRAVERSE THE TABLES
select Artist.Name from User join UserLikes on User.Id = UserLikes.UserId join Album on UserLikes.AlbumId = Album.Id join Artist on Album.ArtistId = Artist.Id where User.Name = 'copenhas'
JOIN BOMB
CAN A GRAPH DB HELP?
LET’S TRAVERSE THE TABLES AGAIN
match (user:User)-[:LIKES]->(album:Album) match album<-[:RELEASED]-(artist:Artist) where user.Name = ‘copenhas' return artist.Name
MAYBE USE A DOC DB?
{ "name": "Blind Guardian", "origin": "Germany", "genre": "Power Metal", "releases": [ { "name": "Nightfall in Middle-Earth", "year": 1998, "label": "Virgin" } ] }
MAYBE USE A DOC DB?
Joins are due to normalization
You wouldn’t miss that normalization
Data has few and shallow relationships
BENEFITS OF GRAPH DATABASES
Whiteboard friendly
Just as flexible as a document DB (almost)
“Index-free adjacency”
Graphs love relationships
NEO4J
IT’S GOT WHAT YOU NEED
ACID Transactions
Schemas (limited), indexes
Built in graph algorithms
Query language (Cypher)
HIGH AVAILABILITY
Montag, David. (2013). Understanding Neo4j Scalability. Available: http://info.neo4j.com/rs/neotechnology/images/Understanding%20Neo4j%20Scalability%282%29.pdf. Last accessed 10th April 2015.
NOT TO MENTION NEO4J BROWSER!