SlideShare a Scribd company logo
1 of 74
Download to read offline
Graph Databases Use Cases
What’s a Graph?
LIVES WITH
LOVES
OWNS
DRIVES
LOVES
name:“James”	

age: 32	

twitter:“@spam”
name:“Mary”	

age: 35
property type:“car”
brand:“Volvo”	

model:“V70”
Graph data model
Relational Tables
Join this way…
• all JOINs are executed every time you query
(traverse) the relationship 	

•  executing a JOIN means to search for a key in
another table 	

•  with Indices executing a JOIN means to lookup a key 	

•  B-Tree Index: O(log(n)) 	

•  more entries => more lookups => slower JOINs
The Problem
People ConferencesAttend
143 Max
326
Big Data Tech Con
725
NoSQL Now
981 Chariot Data IO143 981
143 725
143 326
Max
Big Data Tech Con
NoSQL Now
Chariot Data IO
143
326
725
981
143 981
143 725
143 326
uid: MDM!
name: Max
uid: BDTC!
where: Burlinggame
uid: NSN!
where: San Francisco
uid: CDIO!
where: Philadelphia
Nodes
Relationships
member
member
member
A Property Graph
The Neo4j Secret Sauce
• Pointers instead of
look-ups	

• Do all your “Joining”
on creation	

• Spin spin spin
through this data
structure
Graph Buzz!
• Neo4j is the leading graph database in
the world today	

• Most widely deployed: 500,000+
downloads	

• Largest ecosystem: active forums,
code contributions, etc	

• Most mature product: in development
since 2000, in 24/7 production since
2003
The Neo4j Graph Database
Early Adopters of Graph Tech
Evolution of Web Search
Survival of the Fittest
Pre-1999	

WWW Indexing
Discrete Data
1999 - 2012	

Google Invents
PageRank
Connected Data	

(Simple)
2012-?	

Google Knowledge Graph,
Facebook Graph Search
Connected Data	

(Rich)
Open Source Example
http://maxdemarzi.com/2013/01/28/facebook-graph-
search-with-cypher-and-neo4j/
Evolution of Online Recruiting
1999	

Keyword Search
Discrete Data
Survival of the Fittest
2011-12	

Social Discovery
Connected Data
Open Source Example
http://maxdemarzi.com/2012/10/18/matches-are-the-
new-hotness/
Open Source Example
http://maxdemarzi.com/2012/10/18/matches-are-the-
new-hotness/
Open Source Example
http://maxdemarzi.com/2012/10/18/matches-are-the-
new-hotness/
Content Management
& Access Control
Network Asset
Management
Network Cell Analysis
Geo Routing	

(Public Transport)
BioInformatics
Emergent Graph in Other Industries
(Actual Neo4j Graphs)
Insurance Risk Analysis
Open Source Example
http://maxdemarzi.com/2013/03/18/permission-
resolution-with-neo4j-part-1/
Web Browsing Portfolio Analytics
Mobile Social ApplicationGene Sequencing
Emergent Graph in Other Industries
(Actual Neo4j Graphs)
Open Source Example
http://maxdemarzi.com/2013/04/19/match-making-with-
neo4j/
Curriculum Graph
Core Industries
& Use Cases:
Web / ISV
Finance &
Insurance
Datacom /
Telecom
Network & Data Center
Management
MDM
Social
Geo
Early Adopter Segments
(What we expected to happen - view from several years ago)
Core Industries
& Use Cases:
Web / ISV
Finance &
Insurance
Telecomm-
unications
Network & Data Center
Management
MDM
Social
Geo
Core Industries
& Use Cases:
Software
Financial
Services
Telecommu
nications
Web Social, HR &
Recruiting
Health Care &
Life Sciences
Media &
Publishing
Energy, Services,
Automotive, Gov’t,
Logistics, Education,
Gaming, Other
Network & Data
Center Management
MDM / System of
Record
Social
Geo
Identity & Access
Mgmt
Content
Management
Recommend-ations
BI, CRM, Impact Analysis,
Fraud Detection, Resource
Optimization, etc.
Accenture
Finance
Energy Aerospace
Neo4j Adoption Snapshot
Select Commercial Customers (Community Users Not Included)
What CanYou Do With
Graphs?
MATCH (me:Person)-[:IS_FRIEND_OF]->(friend),
(friend)-[:LIKES]->(restaurant),
(restaurant)-[:LOCATED_IN]->(city:Location),
(restaurant)-[:SERVES]->(cuisine:Cuisine)
!
WHERE me.name = 'Philip' AND city.location='New York' AND
cuisine.cuisine='Sushi'
!
RETURN restaurant.name
* Cypher query language examplehttp://maxdemarzi.com/?s=facebook
What drugs will bind to protein X and not interact with drugY?
Of course.. a graph is a graph is a graph
Connected Query
Performance
Query ResponseTime* = 	

f(graph density, graph size, query degree)
RDBMS:

>> exponential slowdown as each factor increases	

Neo4j:

>> Performance remains constant as graph size increases

>> Performance slowdown is linear or better as density & degree increase
• Graph density (avg # rel’s / node)	

• Graph size (total # of nodes in the graph)	

• Query degree (# of hops in one’s query)
Connected Query Performance
RDBMS vs. Native Graph Database
Connected Query Performance
Connectedness of Data Set
ResponseTime
RDBMS	

Degree: < 3	

Size: Thousands	

# Hops: < 3
Neo4j	

Degree: Thousands+	

Size: Billions+	

# Hops: Tens to Hundreds
Database # persons query time
MySQL
Neo4j
Neo4j
๏a sample social graph 	

•with ~1,000 persons	

๏average 50 friends per person	

๏pathExists(a,b) limited to depth 4	

๏caches warmed up to eliminate disk I/O
Graph db performance
Database # persons query time
MySQL 1,000 2,000 ms
Neo4j
Neo4j
๏a sample social graph 	

•with ~1,000 persons	

๏average 50 friends per person	

๏pathExists(a,b) limited to depth 4	

๏caches warmed up to eliminate disk I/O
Graph db performance
Database # persons query time
MySQL 1,000 2,000 ms
Neo4j 1,000 2 ms
Neo4j
๏a sample social graph 	

•with ~1,000 persons	

๏average 50 friends per person	

๏pathExists(a,b) limited to depth 4	

๏caches warmed up to eliminate disk I/O
Graph db performance
Database # persons query time
MySQL 1,000 2,000 ms
Neo4j 1,000 2 ms
Neo4j 1,000,000 2 ms
๏a sample social graph 	

•with ~1,000 persons	

๏average 50 friends per person	

๏pathExists(a,b) limited to depth 4	

๏caches warmed up to eliminate disk I/O
Graph db performance
*Additional Third Party Benchmark Available in Neo4j in Action: http://www.manning.com/partner/
The Zone of SQL Adequacy
Connectedness of Data Set
Performance
SQL database	

Requirement of application
Salary List
ERP
CRM
Network / Data Center	

Management
Social
Master Data	

Management
Geo
Graph Database	

Optimal Comfort Zone
Graph Technology
Ecosystem
#1: Graph Local Queries
e.g. Recommendations, Friend-of-Friend, Shortest Path
How many restaurants, on average, has each person liked?
#2: Graph Global Queries
What is a
Graph Database
“A graph database... is an online database
management system with CRUD methods
that expose a graph data model”1	

• Two important properties:	

• Native graph storage engine: written
from the ground up to manage graph data	

• Native graph processing, including

index-free adjacency to facilitate traversals
1] Robinson,Webber, Eifrem. Graph Databases. O’Reilly, 2013. p. 5. ISBN-10: 1449356265
Graph Databases are Designed to:
1. Store inter-connected data	

2. Make it easy to make sense of that data	

3. Enable extreme-performance operations for:	

• Discovery of connected data patterns	

• Relatedness queries > depth 1	

• Relatedness queries of arbitrary length	

4. Make it easy to evolve the database
Top Reasons People Use 

Graph Databases
1.Problems with Join performance.	

2.Continuously evolving data set (often
involves wide and sparse tables)	

3.The Shape of the Domain is naturally
a graph	

4.Open-ended business requirements
necessitating fast, iterative development.
Graph Compute Engine
Processing engine that enables graph global
computational algorithms to be run against
large data sets
Graph Mining
Engine
(Working Storage)
In-Memory Processing
System(s)
of Record
Graph Compute
Engine
Data extraction,	

transformation,	

and load
Real-Time/
OLTP
Offline/
Batch
Connected Data
Wait what?
New Users?
Real Time Updates?
Graph Database Deployment
Application
Other
Databases
ETL
Graph Database
Cluster
Data Storage &

Business Rules Execution
Reporting
Graph-

Dashboards

&

Ad-hoc

Analysis

Graph
Visualization
End User Ad-hoc visual navigation &
discovery
Bulk Analytic
Infrastructure
(e.g. Graph Compute Engine)
ETL
Graph Mining &
Aggregation
Data Scientist
Ad-Hoc

Analysis
Graph Dashboards
The Power ofVisualization
Fraud Detection & Money Laundering
IT Service Dependencies
Working with Graphs
Case Studies &Working Examples
Cypher
LOVESA B
Graph PatternsASCII art
MATCH (A) -[:LOVES]-> (B)	
WHERE A.name = "A"	
RETURN B as lover
Social Example
Social Graph - Create
Practical Cypher
CREATE !
! (joe:Person {name:"Joe"}),!
! (bob:Person {name:"Bob"}),!
! (sally:Person {name:"Sally"}),!
! (anna:Person {name:"Anna"}),!
! (jim:Person {name:"Jim"}),!
! (mike:Person {name:"Mike"}),!
! (billy:Person {name:"Billy"}),!
! !
! (joe)-[:KNOWS]->(bob),!
! (joe)-[:KNOWS]->(sally),!
! (bob)-[:KNOWS]->(sally),!
! (sally)-[:KNOWS]->(anna),!
! (anna)-[:KNOWS]->(jim),!
! (anna)-[:KNOWS]->(mike),!
! (jim)-[:KNOWS]->(mike),!
! (jim)-[:KNOWS]->(billy)
Social Graph - Friends of Joe's Friends
MATCH (person)-[:KNOWS]-(friend),!
(friend)-[:KNOWS]-(foaf) !
WHERE person.name = "Joe"!
AND NOT(person-[:KNOWS]-foaf)!
RETURN foaf !
Practical Cypher
foaf
{name:"Anna"}
Social Graph - Common Friends
MATCH (person1)-[:KNOWS]-(friend),!
(person2)-[:KNOWS]-(friend)!
WHERE person1.name = "Joe" !
AND person2.name = "Sally"!
RETURN friend!
!
!
Practical Cypher
friend
{name:"Bob"}
Social Graph - Shortest Path
MATCH path = shortestPath(!
(person1)-[:KNOWS*..6]-(person2)!
)!
WHERE person1.name = "Joe" !
! AND person2.name = "Billy"!
RETURN path!
!
Practical Cypher
path
{start:"13759", !
nodes:["13759","13757","13756","13755","13753"],!
length:4,!
relationships:["101407","101409","101410","101413"],!
end:"13753"}
Network Management
Example
Network Management - Create
CREATE !
! (crm {name:"CRM"}),!
! (dbvm {name:"Database VM"}),!
! (www {name:"Public Website"}),!
! (wwwvm {name:"Webserver VM"}),!
! (srv1 {name:"Server 1"}),!
! (san {name:"SAN"}),!
! (srv2 {name:"Server 2"}),!
!
! (crm)-[:DEPENDS_ON]->(dbvm),!
! (dbvm)-[:DEPENDS_ON]->(srv2),!
! (srv2)-[:DEPENDS_ON]->(san),!
! (www)-[:DEPENDS_ON]->(dbvm),!
! (www)-[:DEPENDS_ON]->(wwwvm),!
! (wwwvm)-[:DEPENDS_ON]->(srv1),!
! (srv1)-[:DEPENDS_ON]->(san)!
Practical Cypher
Network Management - Impact Analysis
// Server 1 Outage!
MATCH (n)<-[:DEPENDS_ON*]-(upstream)!
WHERE n.name = "Server 1"!
RETURN upstream!
Practical Cypher
upstream
{name:"Webserver VM"}
{name:"Public Website"}
Network Management - Dependency Analysis
// Public website dependencies!
MATCH (n)-[:DEPENDS_ON*]->(downstream)!
WHERE n.name = "Public Website"!
RETURN downstream!
!
Practical Cypher
downstream
{name:"Database VM"}
{name:"Server 2"}
{name:"SAN"}
{name:"Webserver VM"}
{name:"Server 1"}
Network Management - Statistics
// Most depended on component!
MATCH (n)<-[:DEPENDS_ON*]-(dependent)!
RETURN n, !
count(DISTINCT dependent) !
AS dependents!
ORDER BY dependents DESC!
LIMIT 1
Practical Cypher
n dependents
{name:"SAN"} 6
Questions ?

More Related Content

What's hot

Introduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & BahrainIntroduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & BahrainNeo4j
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph DatabasesDataStax
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 
Knowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based SearchKnowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based SearchNeo4j
 
Neo4j 4 Overview
Neo4j 4 OverviewNeo4j 4 Overview
Neo4j 4 OverviewNeo4j
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphNeo4j
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j FundamentalsMax De Marzi
 
The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...Neo4j
 
Top 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksTop 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksNeo4j
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBMongoDB
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jWilliam Lyon
 
Data Mesh in Azure using Cloud Scale Analytics (WAF)
Data Mesh in Azure using Cloud Scale Analytics (WAF)Data Mesh in Azure using Cloud Scale Analytics (WAF)
Data Mesh in Azure using Cloud Scale Analytics (WAF)Nathan Bijnens
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentationjexp
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j
 
Graph Database 101- What, Why and How?.pdf
Graph Database 101- What, Why and How?.pdfGraph Database 101- What, Why and How?.pdf
Graph Database 101- What, Why and How?.pdfNeo4j
 
Family tree of data – provenance and neo4j
Family tree of data – provenance and neo4jFamily tree of data – provenance and neo4j
Family tree of data – provenance and neo4jM. David Allen
 
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine LearnGraphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine LearnNeo4j
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph SolutionNeo4j
 

What's hot (20)

Introduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & BahrainIntroduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & Bahrain
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Graph databases
Graph databasesGraph databases
Graph databases
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
Knowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based SearchKnowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based Search
 
Neo4j 4 Overview
Neo4j 4 OverviewNeo4j 4 Overview
Neo4j 4 Overview
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j Graph
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j Fundamentals
 
The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...
 
Top 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksTop 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & Tricks
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDB
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
 
Data Mesh in Azure using Cloud Scale Analytics (WAF)
Data Mesh in Azure using Cloud Scale Analytics (WAF)Data Mesh in Azure using Cloud Scale Analytics (WAF)
Data Mesh in Azure using Cloud Scale Analytics (WAF)
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
 
Graph Database 101- What, Why and How?.pdf
Graph Database 101- What, Why and How?.pdfGraph Database 101- What, Why and How?.pdf
Graph Database 101- What, Why and How?.pdf
 
Family tree of data – provenance and neo4j
Family tree of data – provenance and neo4jFamily tree of data – provenance and neo4j
Family tree of data – provenance and neo4j
 
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine LearnGraphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph Solution
 

Similar to Graph database Use Cases

Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...
Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...
Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...Neo4j
 
Introduction: Relational to Graphs
Introduction: Relational to GraphsIntroduction: Relational to Graphs
Introduction: Relational to GraphsNeo4j
 
RDBMS to Graphs
RDBMS to GraphsRDBMS to Graphs
RDBMS to GraphsNeo4j
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2Neo4j
 
How Graph Databases used in Police Department?
How Graph Databases used in Police Department?How Graph Databases used in Police Department?
How Graph Databases used in Police Department?Samet KILICTAS
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBDenny Lee
 
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jAI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jIvan Zoratti
 
[Webinar] Introduction to Cypher
[Webinar] Introduction to Cypher[Webinar] Introduction to Cypher
[Webinar] Introduction to CypherNeo4j
 
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York City
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York CityThe Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York City
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York CityNeo4j
 
Tableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of ThoughtTableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of ThoughtMongoDB
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databasesjexp
 
Trivadis Azure Data Lake
Trivadis Azure Data LakeTrivadis Azure Data Lake
Trivadis Azure Data LakeTrivadis
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j
 
Intro to Neo4j Webinar
Intro to Neo4j WebinarIntro to Neo4j Webinar
Intro to Neo4j WebinarNeo4j
 
Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkCaserta
 
The Connected Data Imperative: An Introduction to Neo4j
The Connected Data Imperative: An Introduction to Neo4jThe Connected Data Imperative: An Introduction to Neo4j
The Connected Data Imperative: An Introduction to Neo4jNeo4j
 
TIBCO Advanced Analytics Meetup (TAAM) - June 2015
TIBCO Advanced Analytics Meetup (TAAM) - June 2015TIBCO Advanced Analytics Meetup (TAAM) - June 2015
TIBCO Advanced Analytics Meetup (TAAM) - June 2015Bipin Singh
 
Apache CarbonData+Spark to realize data convergence and Unified high performa...
Apache CarbonData+Spark to realize data convergence and Unified high performa...Apache CarbonData+Spark to realize data convergence and Unified high performa...
Apache CarbonData+Spark to realize data convergence and Unified high performa...Tech Triveni
 
Webinar: RDBMS to Graphs
Webinar: RDBMS to GraphsWebinar: RDBMS to Graphs
Webinar: RDBMS to GraphsNeo4j
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j
 

Similar to Graph database Use Cases (20)

Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...
Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...
Graphs & Big Data - Philip Rathle and Andreas Kollegger @ Big Data Science Me...
 
Introduction: Relational to Graphs
Introduction: Relational to GraphsIntroduction: Relational to Graphs
Introduction: Relational to Graphs
 
RDBMS to Graphs
RDBMS to GraphsRDBMS to Graphs
RDBMS to Graphs
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
How Graph Databases used in Police Department?
How Graph Databases used in Police Department?How Graph Databases used in Police Department?
How Graph Databases used in Police Department?
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jAI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
 
[Webinar] Introduction to Cypher
[Webinar] Introduction to Cypher[Webinar] Introduction to Cypher
[Webinar] Introduction to Cypher
 
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York City
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York CityThe Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York City
The Connected Data Imperative: Why Graphs? at Neo4j GraphDay New York City
 
Tableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of ThoughtTableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of Thought
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databases
 
Trivadis Azure Data Lake
Trivadis Azure Data LakeTrivadis Azure Data Lake
Trivadis Azure Data Lake
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperative
 
Intro to Neo4j Webinar
Intro to Neo4j WebinarIntro to Neo4j Webinar
Intro to Neo4j Webinar
 
Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache Spark
 
The Connected Data Imperative: An Introduction to Neo4j
The Connected Data Imperative: An Introduction to Neo4jThe Connected Data Imperative: An Introduction to Neo4j
The Connected Data Imperative: An Introduction to Neo4j
 
TIBCO Advanced Analytics Meetup (TAAM) - June 2015
TIBCO Advanced Analytics Meetup (TAAM) - June 2015TIBCO Advanced Analytics Meetup (TAAM) - June 2015
TIBCO Advanced Analytics Meetup (TAAM) - June 2015
 
Apache CarbonData+Spark to realize data convergence and Unified high performa...
Apache CarbonData+Spark to realize data convergence and Unified high performa...Apache CarbonData+Spark to realize data convergence and Unified high performa...
Apache CarbonData+Spark to realize data convergence and Unified high performa...
 
Webinar: RDBMS to Graphs
Webinar: RDBMS to GraphsWebinar: RDBMS to Graphs
Webinar: RDBMS to Graphs
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You
 

More from Max De Marzi

DataDay 2023 Presentation
DataDay 2023 PresentationDataDay 2023 Presentation
DataDay 2023 PresentationMax De Marzi
 
DataDay 2023 Presentation - Notes
DataDay 2023 Presentation - NotesDataDay 2023 Presentation - Notes
DataDay 2023 Presentation - NotesMax De Marzi
 
Developer Intro Deck-PowerPoint - Download for Speaker Notes
Developer Intro Deck-PowerPoint - Download for Speaker NotesDeveloper Intro Deck-PowerPoint - Download for Speaker Notes
Developer Intro Deck-PowerPoint - Download for Speaker NotesMax De Marzi
 
Outrageous Ideas for Graph Databases
Outrageous Ideas for Graph DatabasesOutrageous Ideas for Graph Databases
Outrageous Ideas for Graph DatabasesMax De Marzi
 
Neo4j Training Cypher
Neo4j Training CypherNeo4j Training Cypher
Neo4j Training CypherMax De Marzi
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training ModelingMax De Marzi
 
Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training IntroductionMax De Marzi
 
Detenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4jDetenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4jMax De Marzi
 
Data Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4jData Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4jMax De Marzi
 
Fraud Detection and Neo4j
Fraud Detection and Neo4j Fraud Detection and Neo4j
Fraud Detection and Neo4j Max De Marzi
 
Detecion de Fraude con Neo4j
Detecion de Fraude con Neo4jDetecion de Fraude con Neo4j
Detecion de Fraude con Neo4jMax De Marzi
 
Neo4j Data Science Presentation
Neo4j Data Science PresentationNeo4j Data Science Presentation
Neo4j Data Science PresentationMax De Marzi
 
Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2Max De Marzi
 
Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Max De Marzi
 
Decision Trees in Neo4j
Decision Trees in Neo4jDecision Trees in Neo4j
Decision Trees in Neo4jMax De Marzi
 
Neo4j y Fraude Spanish
Neo4j y Fraude SpanishNeo4j y Fraude Spanish
Neo4j y Fraude SpanishMax De Marzi
 
Data modeling with neo4j tutorial
Data modeling with neo4j tutorialData modeling with neo4j tutorial
Data modeling with neo4j tutorialMax De Marzi
 
Neo4j Presentation
Neo4j PresentationNeo4j Presentation
Neo4j PresentationMax De Marzi
 
Fraud Detection Class Slides
Fraud Detection Class SlidesFraud Detection Class Slides
Fraud Detection Class SlidesMax De Marzi
 
Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015Max De Marzi
 

More from Max De Marzi (20)

DataDay 2023 Presentation
DataDay 2023 PresentationDataDay 2023 Presentation
DataDay 2023 Presentation
 
DataDay 2023 Presentation - Notes
DataDay 2023 Presentation - NotesDataDay 2023 Presentation - Notes
DataDay 2023 Presentation - Notes
 
Developer Intro Deck-PowerPoint - Download for Speaker Notes
Developer Intro Deck-PowerPoint - Download for Speaker NotesDeveloper Intro Deck-PowerPoint - Download for Speaker Notes
Developer Intro Deck-PowerPoint - Download for Speaker Notes
 
Outrageous Ideas for Graph Databases
Outrageous Ideas for Graph DatabasesOutrageous Ideas for Graph Databases
Outrageous Ideas for Graph Databases
 
Neo4j Training Cypher
Neo4j Training CypherNeo4j Training Cypher
Neo4j Training Cypher
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training Modeling
 
Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training Introduction
 
Detenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4jDetenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4j
 
Data Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4jData Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4j
 
Fraud Detection and Neo4j
Fraud Detection and Neo4j Fraud Detection and Neo4j
Fraud Detection and Neo4j
 
Detecion de Fraude con Neo4j
Detecion de Fraude con Neo4jDetecion de Fraude con Neo4j
Detecion de Fraude con Neo4j
 
Neo4j Data Science Presentation
Neo4j Data Science PresentationNeo4j Data Science Presentation
Neo4j Data Science Presentation
 
Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2
 
Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1
 
Decision Trees in Neo4j
Decision Trees in Neo4jDecision Trees in Neo4j
Decision Trees in Neo4j
 
Neo4j y Fraude Spanish
Neo4j y Fraude SpanishNeo4j y Fraude Spanish
Neo4j y Fraude Spanish
 
Data modeling with neo4j tutorial
Data modeling with neo4j tutorialData modeling with neo4j tutorial
Data modeling with neo4j tutorial
 
Neo4j Presentation
Neo4j PresentationNeo4j Presentation
Neo4j Presentation
 
Fraud Detection Class Slides
Fraud Detection Class SlidesFraud Detection Class Slides
Fraud Detection Class Slides
 
Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

Graph database Use Cases

  • 3. LIVES WITH LOVES OWNS DRIVES LOVES name:“James” age: 32 twitter:“@spam” name:“Mary” age: 35 property type:“car” brand:“Volvo” model:“V70” Graph data model
  • 6. • all JOINs are executed every time you query (traverse) the relationship •  executing a JOIN means to search for a key in another table •  with Indices executing a JOIN means to lookup a key •  B-Tree Index: O(log(n)) •  more entries => more lookups => slower JOINs The Problem
  • 7. People ConferencesAttend 143 Max 326 Big Data Tech Con 725 NoSQL Now 981 Chariot Data IO143 981 143 725 143 326
  • 8. Max Big Data Tech Con NoSQL Now Chariot Data IO 143 326 725 981 143 981 143 725 143 326
  • 9. uid: MDM! name: Max uid: BDTC! where: Burlinggame uid: NSN! where: San Francisco uid: CDIO! where: Philadelphia Nodes Relationships member member member A Property Graph
  • 10. The Neo4j Secret Sauce • Pointers instead of look-ups • Do all your “Joining” on creation • Spin spin spin through this data structure
  • 12. • Neo4j is the leading graph database in the world today • Most widely deployed: 500,000+ downloads • Largest ecosystem: active forums, code contributions, etc • Most mature product: in development since 2000, in 24/7 production since 2003 The Neo4j Graph Database
  • 13. Early Adopters of Graph Tech
  • 14. Evolution of Web Search Survival of the Fittest Pre-1999 WWW Indexing Discrete Data 1999 - 2012 Google Invents PageRank Connected Data (Simple) 2012-? Google Knowledge Graph, Facebook Graph Search Connected Data (Rich)
  • 16. Evolution of Online Recruiting 1999 Keyword Search Discrete Data Survival of the Fittest 2011-12 Social Discovery Connected Data
  • 20. Content Management & Access Control Network Asset Management Network Cell Analysis Geo Routing (Public Transport) BioInformatics Emergent Graph in Other Industries (Actual Neo4j Graphs) Insurance Risk Analysis
  • 22. Web Browsing Portfolio Analytics Mobile Social ApplicationGene Sequencing Emergent Graph in Other Industries (Actual Neo4j Graphs)
  • 25. Core Industries & Use Cases: Web / ISV Finance & Insurance Datacom / Telecom Network & Data Center Management MDM Social Geo Early Adopter Segments (What we expected to happen - view from several years ago)
  • 26. Core Industries & Use Cases: Web / ISV Finance & Insurance Telecomm- unications Network & Data Center Management MDM Social Geo Core Industries & Use Cases: Software Financial Services Telecommu nications Web Social, HR & Recruiting Health Care & Life Sciences Media & Publishing Energy, Services, Automotive, Gov’t, Logistics, Education, Gaming, Other Network & Data Center Management MDM / System of Record Social Geo Identity & Access Mgmt Content Management Recommend-ations BI, CRM, Impact Analysis, Fraud Detection, Resource Optimization, etc. Accenture Finance Energy Aerospace Neo4j Adoption Snapshot Select Commercial Customers (Community Users Not Included)
  • 27. What CanYou Do With Graphs?
  • 28.
  • 29. MATCH (me:Person)-[:IS_FRIEND_OF]->(friend), (friend)-[:LIKES]->(restaurant), (restaurant)-[:LOCATED_IN]->(city:Location), (restaurant)-[:SERVES]->(cuisine:Cuisine) ! WHERE me.name = 'Philip' AND city.location='New York' AND cuisine.cuisine='Sushi' ! RETURN restaurant.name * Cypher query language examplehttp://maxdemarzi.com/?s=facebook
  • 30.
  • 31. What drugs will bind to protein X and not interact with drugY? Of course.. a graph is a graph is a graph
  • 33. Query ResponseTime* = f(graph density, graph size, query degree) RDBMS:
 >> exponential slowdown as each factor increases Neo4j:
 >> Performance remains constant as graph size increases
 >> Performance slowdown is linear or better as density & degree increase • Graph density (avg # rel’s / node) • Graph size (total # of nodes in the graph) • Query degree (# of hops in one’s query) Connected Query Performance
  • 34. RDBMS vs. Native Graph Database Connected Query Performance Connectedness of Data Set ResponseTime RDBMS Degree: < 3 Size: Thousands # Hops: < 3 Neo4j Degree: Thousands+ Size: Billions+ # Hops: Tens to Hundreds
  • 35. Database # persons query time MySQL Neo4j Neo4j ๏a sample social graph •with ~1,000 persons ๏average 50 friends per person ๏pathExists(a,b) limited to depth 4 ๏caches warmed up to eliminate disk I/O Graph db performance
  • 36. Database # persons query time MySQL 1,000 2,000 ms Neo4j Neo4j ๏a sample social graph •with ~1,000 persons ๏average 50 friends per person ๏pathExists(a,b) limited to depth 4 ๏caches warmed up to eliminate disk I/O Graph db performance
  • 37. Database # persons query time MySQL 1,000 2,000 ms Neo4j 1,000 2 ms Neo4j ๏a sample social graph •with ~1,000 persons ๏average 50 friends per person ๏pathExists(a,b) limited to depth 4 ๏caches warmed up to eliminate disk I/O Graph db performance
  • 38. Database # persons query time MySQL 1,000 2,000 ms Neo4j 1,000 2 ms Neo4j 1,000,000 2 ms ๏a sample social graph •with ~1,000 persons ๏average 50 friends per person ๏pathExists(a,b) limited to depth 4 ๏caches warmed up to eliminate disk I/O Graph db performance *Additional Third Party Benchmark Available in Neo4j in Action: http://www.manning.com/partner/
  • 39. The Zone of SQL Adequacy Connectedness of Data Set Performance SQL database Requirement of application Salary List ERP CRM Network / Data Center Management Social Master Data Management Geo Graph Database Optimal Comfort Zone
  • 41. #1: Graph Local Queries e.g. Recommendations, Friend-of-Friend, Shortest Path
  • 42. How many restaurants, on average, has each person liked? #2: Graph Global Queries
  • 43. What is a Graph Database “A graph database... is an online database management system with CRUD methods that expose a graph data model”1 • Two important properties: • Native graph storage engine: written from the ground up to manage graph data • Native graph processing, including
 index-free adjacency to facilitate traversals 1] Robinson,Webber, Eifrem. Graph Databases. O’Reilly, 2013. p. 5. ISBN-10: 1449356265
  • 44. Graph Databases are Designed to: 1. Store inter-connected data 2. Make it easy to make sense of that data 3. Enable extreme-performance operations for: • Discovery of connected data patterns • Relatedness queries > depth 1 • Relatedness queries of arbitrary length 4. Make it easy to evolve the database
  • 45. Top Reasons People Use 
 Graph Databases 1.Problems with Join performance. 2.Continuously evolving data set (often involves wide and sparse tables) 3.The Shape of the Domain is naturally a graph 4.Open-ended business requirements necessitating fast, iterative development.
  • 46. Graph Compute Engine Processing engine that enables graph global computational algorithms to be run against large data sets Graph Mining Engine (Working Storage) In-Memory Processing System(s) of Record Graph Compute Engine Data extraction, transformation, and load
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 57.
  • 58. Graph Database Deployment Application Other Databases ETL Graph Database Cluster Data Storage &
 Business Rules Execution Reporting Graph-
 Dashboards
 &
 Ad-hoc
 Analysis
 Graph Visualization End User Ad-hoc visual navigation & discovery Bulk Analytic Infrastructure (e.g. Graph Compute Engine) ETL Graph Mining & Aggregation Data Scientist Ad-Hoc
 Analysis
  • 59. Graph Dashboards The Power ofVisualization
  • 60. Fraud Detection & Money Laundering
  • 62. Working with Graphs Case Studies &Working Examples
  • 63. Cypher LOVESA B Graph PatternsASCII art MATCH (A) -[:LOVES]-> (B) WHERE A.name = "A" RETURN B as lover
  • 65. Social Graph - Create Practical Cypher CREATE ! ! (joe:Person {name:"Joe"}),! ! (bob:Person {name:"Bob"}),! ! (sally:Person {name:"Sally"}),! ! (anna:Person {name:"Anna"}),! ! (jim:Person {name:"Jim"}),! ! (mike:Person {name:"Mike"}),! ! (billy:Person {name:"Billy"}),! ! ! ! (joe)-[:KNOWS]->(bob),! ! (joe)-[:KNOWS]->(sally),! ! (bob)-[:KNOWS]->(sally),! ! (sally)-[:KNOWS]->(anna),! ! (anna)-[:KNOWS]->(jim),! ! (anna)-[:KNOWS]->(mike),! ! (jim)-[:KNOWS]->(mike),! ! (jim)-[:KNOWS]->(billy)
  • 66. Social Graph - Friends of Joe's Friends MATCH (person)-[:KNOWS]-(friend),! (friend)-[:KNOWS]-(foaf) ! WHERE person.name = "Joe"! AND NOT(person-[:KNOWS]-foaf)! RETURN foaf ! Practical Cypher foaf {name:"Anna"}
  • 67. Social Graph - Common Friends MATCH (person1)-[:KNOWS]-(friend),! (person2)-[:KNOWS]-(friend)! WHERE person1.name = "Joe" ! AND person2.name = "Sally"! RETURN friend! ! ! Practical Cypher friend {name:"Bob"}
  • 68. Social Graph - Shortest Path MATCH path = shortestPath(! (person1)-[:KNOWS*..6]-(person2)! )! WHERE person1.name = "Joe" ! ! AND person2.name = "Billy"! RETURN path! ! Practical Cypher path {start:"13759", ! nodes:["13759","13757","13756","13755","13753"],! length:4,! relationships:["101407","101409","101410","101413"],! end:"13753"}
  • 70. Network Management - Create CREATE ! ! (crm {name:"CRM"}),! ! (dbvm {name:"Database VM"}),! ! (www {name:"Public Website"}),! ! (wwwvm {name:"Webserver VM"}),! ! (srv1 {name:"Server 1"}),! ! (san {name:"SAN"}),! ! (srv2 {name:"Server 2"}),! ! ! (crm)-[:DEPENDS_ON]->(dbvm),! ! (dbvm)-[:DEPENDS_ON]->(srv2),! ! (srv2)-[:DEPENDS_ON]->(san),! ! (www)-[:DEPENDS_ON]->(dbvm),! ! (www)-[:DEPENDS_ON]->(wwwvm),! ! (wwwvm)-[:DEPENDS_ON]->(srv1),! ! (srv1)-[:DEPENDS_ON]->(san)! Practical Cypher
  • 71. Network Management - Impact Analysis // Server 1 Outage! MATCH (n)<-[:DEPENDS_ON*]-(upstream)! WHERE n.name = "Server 1"! RETURN upstream! Practical Cypher upstream {name:"Webserver VM"} {name:"Public Website"}
  • 72. Network Management - Dependency Analysis // Public website dependencies! MATCH (n)-[:DEPENDS_ON*]->(downstream)! WHERE n.name = "Public Website"! RETURN downstream! ! Practical Cypher downstream {name:"Database VM"} {name:"Server 2"} {name:"SAN"} {name:"Webserver VM"} {name:"Server 1"}
  • 73. Network Management - Statistics // Most depended on component! MATCH (n)<-[:DEPENDS_ON*]-(dependent)! RETURN n, ! count(DISTINCT dependent) ! AS dependents! ORDER BY dependents DESC! LIMIT 1 Practical Cypher n dependents {name:"SAN"} 6