SlideShare a Scribd company logo
Graph Databases
and Neo4j
Brett Ragozzine, PhD
Data Scientist
Intermountain Big Data Conference
Nov 21, 2015
Brett Ragozzine - Graph Databases and Neo4j
Introduction
● PhD, Astrophysics
○ Dark matter, gravitational lensing, image analysis
● Data Scientist - CompuCom (remote, Dallas)
○ IT Outfitter, Service, Support
○ 1000 customers, millions of end-users
● Digital Innovation team
○ Neo4j
Outline
● Graph databases (NoSQL)
○ Why they’re different
○ What they do well
● Neo4j
● Cypher query language
● GraphGist examples
● Use cases
● Links for getting started
Graph Databases
● Great at storing:
○ Relationships
(“first-class citizens”)
○ Properties
○ Sparse data, densely
● Relational DBs
store all the 0s
Graph Databases
● Great for searching:
○ Subsets of the graph
● Great at finding:
○ Labeled data
○ Indexed data
■ relational DBs are too
○ Pattern matches
■ e.g. ''Friend-of-a-friend''
Graph Databases
● Nodes, relationships, properties, labels
○ Billions of nodes, relationships
● Properties
○ Don’t store too many together (slow)
○ Turn properties into nodes, where applicable
● Don’t store large files in a graph
○ Do store url
Graph Databases
● Schema
○ Design your graph around the your questions
■ Very different from relational DBs
○ Easy to re-design on the fly
■ Turn nodes into properties or vice versa
■ Difficult to do with relational DBs
Graph Databases
● Architecture
○ Single Master
■ Transactional
(single write - pass/fail)
○ Large cluster
■ High availability
(multiple queries/reads at once)
Cypher Query Language
● Interact with Neo4j
○ Add, delete, change, query data (SQL-inspired)
● Symbolic language
○ Node ()
○ Property {name:''Brett''}
○ Relationship <-- or -->
■ ()<--() or ()-->()
○ Label [:PERSON]
Cypher Query Language
● Example
(brett:PERSON {name:''Brett''})-[:HAS_TITLE]->
(ds:TITLE {name:''Data Scientist''})
(brett)-[:WORKS_FOR {from:''April 2015''}]->
(cc:COMPANY {name:''CompuCom''})
Examples: GraphGists
● Let’s go to the browser
● localhost:7474
How to Get Started
● Use cases
○ http://neo4j.com/use-cases/
● Neo4j tutorial
○ http://neo4j.com/graphacademy/
● GraphGists
○ http://graphgist.neo4j.com/#!/gists/all
○ https://github.com/neo4j-contrib/graphgist/wiki
How to Get Started
● Books
Other Graph Databases
● Top 5 Most Popular
http://db-engines.com/en/ranking/graph+dbms
(number of mentions, job postings, etc)
○ Neo4j
○ Titan
○ OrientDB
○ ArangoDB
○ Giraph
The End
● Thank you, and happy graphing!
(brett)-[:HAD_FUN]->(speaking)

More Related Content

PDF
DBpedia Viewer - LDOW 2014
PDF
PDF
RDM Jargon Busting Session: Demystifying Commonly Used Terms
PPTX
NoSQL document oriented data access for .net systems with postgresql and marten
PDF
Indexing, searching, and aggregation with redi search and .net
PDF
The Internet in Database: A Cassandra Use Case
PDF
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
PDF
Open Source BI Overview
DBpedia Viewer - LDOW 2014
RDM Jargon Busting Session: Demystifying Commonly Used Terms
NoSQL document oriented data access for .net systems with postgresql and marten
Indexing, searching, and aggregation with redi search and .net
The Internet in Database: A Cassandra Use Case
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
Open Source BI Overview

What's hot (20)

PDF
DrupalCamp NJ 2014 Solr and Schema.org
PDF
MassNow - intelligent church locator
PDF
DBpedia+ / DBpedia meeting in Dublin
PDF
Seige arndt-lightning talk swib13
PDF
LDCache - a cache for linked data-driven web applications
PPTX
DataTables view CKAN monthly live
PPTX
Data driven pages in a word press site - Srikanth Meenakshi
PPTX
Elasticsearch: Getting Started Part 3 Aggregations
PPTX
Elasticsearch: Getting Started Part 1
PPTX
d:swarm - A Library Data Management Platform Based on a Linked Open Data Appr...
PDF
Nosql databases for the .net developer
PDF
Web at 25 - Ontos Linked Open Data
PPT
Archiving Of Electronic Publishing
PDF
Lightweight Collection and Storage of Software Repository Data with DataRover
PDF
Making art (and more!) with metadata
PDF
Eyes and Ears Vol. 2
PDF
Introduction to mongo db by zain
PPTX
Structures
PDF
Dirk Goldhahn: Introduction to the German Wortschatz Project
PDF
Data structure
DrupalCamp NJ 2014 Solr and Schema.org
MassNow - intelligent church locator
DBpedia+ / DBpedia meeting in Dublin
Seige arndt-lightning talk swib13
LDCache - a cache for linked data-driven web applications
DataTables view CKAN monthly live
Data driven pages in a word press site - Srikanth Meenakshi
Elasticsearch: Getting Started Part 3 Aggregations
Elasticsearch: Getting Started Part 1
d:swarm - A Library Data Management Platform Based on a Linked Open Data Appr...
Nosql databases for the .net developer
Web at 25 - Ontos Linked Open Data
Archiving Of Electronic Publishing
Lightweight Collection and Storage of Software Repository Data with DataRover
Making art (and more!) with metadata
Eyes and Ears Vol. 2
Introduction to mongo db by zain
Structures
Dirk Goldhahn: Introduction to the German Wortschatz Project
Data structure
Ad

Viewers also liked (6)

PPTX
OrientDB vs Neo4j - and an introduction to NoSQL databases
PPTX
Introduction to Graph Databases
PDF
Software Design Patterns in Laravel by Phill Sparks
PDF
2016 Future of Open Source Study
PDF
Graph database Use Cases
PPTX
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - and an introduction to NoSQL databases
Introduction to Graph Databases
Software Design Patterns in Laravel by Phill Sparks
2016 Future of Open Source Study
Graph database Use Cases
OrientDB vs Neo4j - Comparison of query/speed/functionality
Ad

Similar to Brett Ragozzine - Graph Databases and Neo4j (20)

PDF
Getting started with Graph Databases & Neo4j
PDF
Graph Databases and Graph Data Science in Neo4j
PDF
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
PPTX
Graph database
PPTX
Graph Databases
PPTX
Neo4j graph database
PDF
Intro to Neo4j 2.0
PPTX
Neo4j Training Introduction
PPTX
Introduction to graph databases in term of neo4j
PPT
Graph Database and Neo4j
PPTX
Intro to Neo4j with Ruby
PDF
Gerry McNicol Graph Databases
PPTX
NoSQL Module -5.pptx nosql module 4 notes
PDF
Neo4j in Depth
PPTX
GraphDatabase.pptx
PPTX
Graph Databases
PPTX
PDF
Polyglot Persistence with MongoDB and Neo4j
PDF
Neo4j: Graph-like power
PDF
Graph database in sv meetup
Getting started with Graph Databases & Neo4j
Graph Databases and Graph Data Science in Neo4j
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Graph database
Graph Databases
Neo4j graph database
Intro to Neo4j 2.0
Neo4j Training Introduction
Introduction to graph databases in term of neo4j
Graph Database and Neo4j
Intro to Neo4j with Ruby
Gerry McNicol Graph Databases
NoSQL Module -5.pptx nosql module 4 notes
Neo4j in Depth
GraphDatabase.pptx
Graph Databases
Polyglot Persistence with MongoDB and Neo4j
Neo4j: Graph-like power
Graph database in sv meetup

Brett Ragozzine - Graph Databases and Neo4j

  • 1. Graph Databases and Neo4j Brett Ragozzine, PhD Data Scientist Intermountain Big Data Conference Nov 21, 2015
  • 3. Introduction ● PhD, Astrophysics ○ Dark matter, gravitational lensing, image analysis ● Data Scientist - CompuCom (remote, Dallas) ○ IT Outfitter, Service, Support ○ 1000 customers, millions of end-users ● Digital Innovation team ○ Neo4j
  • 4. Outline ● Graph databases (NoSQL) ○ Why they’re different ○ What they do well ● Neo4j ● Cypher query language ● GraphGist examples ● Use cases ● Links for getting started
  • 5. Graph Databases ● Great at storing: ○ Relationships (“first-class citizens”) ○ Properties ○ Sparse data, densely ● Relational DBs store all the 0s
  • 6. Graph Databases ● Great for searching: ○ Subsets of the graph ● Great at finding: ○ Labeled data ○ Indexed data ■ relational DBs are too ○ Pattern matches ■ e.g. ''Friend-of-a-friend''
  • 7. Graph Databases ● Nodes, relationships, properties, labels ○ Billions of nodes, relationships ● Properties ○ Don’t store too many together (slow) ○ Turn properties into nodes, where applicable ● Don’t store large files in a graph ○ Do store url
  • 8. Graph Databases ● Schema ○ Design your graph around the your questions ■ Very different from relational DBs ○ Easy to re-design on the fly ■ Turn nodes into properties or vice versa ■ Difficult to do with relational DBs
  • 9. Graph Databases ● Architecture ○ Single Master ■ Transactional (single write - pass/fail) ○ Large cluster ■ High availability (multiple queries/reads at once)
  • 10. Cypher Query Language ● Interact with Neo4j ○ Add, delete, change, query data (SQL-inspired) ● Symbolic language ○ Node () ○ Property {name:''Brett''} ○ Relationship <-- or --> ■ ()<--() or ()-->() ○ Label [:PERSON]
  • 11. Cypher Query Language ● Example (brett:PERSON {name:''Brett''})-[:HAS_TITLE]-> (ds:TITLE {name:''Data Scientist''}) (brett)-[:WORKS_FOR {from:''April 2015''}]-> (cc:COMPANY {name:''CompuCom''})
  • 12. Examples: GraphGists ● Let’s go to the browser ● localhost:7474
  • 13. How to Get Started ● Use cases ○ http://neo4j.com/use-cases/ ● Neo4j tutorial ○ http://neo4j.com/graphacademy/ ● GraphGists ○ http://graphgist.neo4j.com/#!/gists/all ○ https://github.com/neo4j-contrib/graphgist/wiki
  • 14. How to Get Started ● Books
  • 15. Other Graph Databases ● Top 5 Most Popular http://db-engines.com/en/ranking/graph+dbms (number of mentions, job postings, etc) ○ Neo4j ○ Titan ○ OrientDB ○ ArangoDB ○ Giraph
  • 16. The End ● Thank you, and happy graphing! (brett)-[:HAD_FUN]->(speaking)