SlideShare a Scribd company logo
Introduction to Neo4j
Graph Database
github.com/maxdemarzi
About 200 public repositories
Max De Marzi
Neo4j Field Engineer
About
Me !
01
02
03
04
maxdemarzi.com
@maxdemarzi
About 175 blog posts
• Relational Databases
• Graph Databases
• The most important slide about
Neo4j you will ever see
• A few slides about Modeling
• The Graph Platform
• Neo4j Cloud (aka Aura)
• Talking to Neo4j
• Neo4j Use Cases
Agenda
Lost and Busted
Relational Databases
What does a Relational Database look like?
Does it look like a Birch?
Relational Databases look like Trees
https://jvns.ca/blog/2014/09/27/how-does-sqlite-work-part-1-pages/
1 Table
Lots of Pages
Many Hops from
one page to another
https://jvns.ca/blog/2014/10/02/how-does-sqlite-work-part-2-btrees/
First we search for an id in the Index B- tree for the RowId
Then we search the Table B-tree to get to the data.
Inside each Page, we do a Binary search for which page to go to next.
What you (probably) already know:
Joins are executed every time
you query the relationship
Executing a Join means to
search for a key
B-Tree Index: O(log(n))
Your data grows, your search time
goes up
More Data = More Searches
Slower Performance
The Problem
1
2
3
4
Relational Databases can’t handle
Relationships
Degraded Performance
Speed plummets as data grows
and as the number of joins grows
Wrong Language
SQL was built with Set Theory in
mind, not Graph Theory
Not Flexible
New types of data and relationships
require schema redesign
Wrong Model
They cannot model or store
relationships without complexity
1
2
3
4
Wrangle your data efficiently
Before it eats you alive
NoSQL Databases can’t handle
Relationships
Degraded Performance
Speed plummets as you try to join
data together in the application
Wrong Languages
Lots of wacky “almost sql”
languages terrible at “joins”
Not ACID
Eventually Consistent means
Eventually Corrupt
Wrong Model
They cannot model or store
relationships without complexity
1
2
3
4
Graph Databases
The New Hotness
Property Graph Model Components
Nodes
• Relate nodes by type and direction
• Can have Properties
• Can have Labels
• Can have Properties
name:”Dan”
born: May 29, 1970
twitter:”@dan”
name:”Ann”
born: Dec 5, 1975
Since:
Jan 10, 2011
brand: “Volvo”
model: “V70”
Car
LOVES
LIVES_WITH
Person
Relationships
Person
Same Data, Different Layout
No more Tables, no more Foreign Keys, no more Joins
What’s our Secret Sauce?
Double Linked List Relationship Layout
The Most Important Slide about
Neo4j you will ever see
Fixed Sized Records
“Joins” on Creation
Spin Spin Spin through
this data structure
Pointers instead of
Searches1
2
3
4
Partitions
Each Node’s
relationships are
partitioned by type
and direction.
Real-Time Query Performance
Relational and Other NoSQL
Databases
ResponseTime
Connectedness and Size of Data Set
0 to 2 hops
0 to 3 degrees
Few connections
5+ hops
3+ degrees
Thousands of connections
1000x
Advantage
“Minutes to milliseconds”
Neo4j
I don’t know the average height of all hollywood actors, but I do know the Six Degrees of Kevin Bacon
But not for every query
Reimagine your Data as a Graph
Better Performance
Query relationships in real time
Right Language
Cypher was purpose built for
Graphs
Flexible and Consistent
Evolve your schema seamlessly while
keeping transactions
Right Model
Graphs simplify how you think1
2
3
4
Agile, High Performance
and Scalable without Sacrifice
Modeling
Just draw stuff and “walla” there is your data model
Graphs are Whiteboard Friendly
Movie Property Graph
Some Models are Easy
Should Roles be their own Node?
Some Models are Easy but not for all
Questions
We’ll talk more about Modeling tomorrow.
The Graph Platform
Neo4j
Graph
Transactions
Graph
Analytics
Data Integration
Development
& Admin
Analytics
Tooling
Drivers & APIs Discovery & Visualization
Developers
Admins
Applications Business Users
Data Analysts
Data Scientists
Enterprise Data Hub
Native Graph Technology for Applications & Analytics
Graph Databases: Designed for Connected Data
TRADITIONAL
DATABASES
BIG DATA
TECHNOLOGY
Store and retrieve data Aggregate and filter data Connections in data
Real time storage & retrieval Real-Time Connected Insights
Long running queries
aggregation & filtering
Perspective
Search
Visualization
Exploration
Inspection
Editing
Visually Explore your Neo4j Graph with Bloom
Business view of the graph enables analysts to
discover new insights
Codeless “Search first” experience makes it
easy for non-developers to pick up graphs
Easy-to-use graph interactions to explore,
inspect or edit connected data
GPU accelerated high performance
visualizations enable macro graph views
Deploys easily with Neo4j Desktop or as a
Neo4j Server plug-in component
Quickly prototype projects and enable
collaboration between developers and
business users
Neo4j Bloom User Interface
• Prompted Search
• Property Browser &
editor
• Category icons and
color scheme
• Pan, Zoom & Select
The most popular BI tools can now talk live to the
world’s most popular graph db
• Best live, seamless integration of graph data
with your favorite BI tools
• Familiar UI for end users
• No development effort for IT
• Democratizes access to Neo4j data
• Free to adopt by BI teams of Enterprise
Edition customers
Neo4j BI Connector
Tableau
JDBC
Neo4j
BI Connector
SQL
Cypher
Business/Data Analyst
Investigator
Data Scientist
for Enterprise Graph Data Science
Neo4j Graph Data Science
Library
Scalable Graph
Algorithms & Analytics
Workspace
Native Graph
Creation & Persistence
Neo4j
Database
Visual Graph Exploration
& Prototyping
Neo4j
Bloom
Practical Integrated Intuitive
• Degree Centrality
• Closeness Centrality
• CC Variations: Harmonic, Dangalchev,
Wasserman & Faust
• Betweenness Centrality & Approximate
• PageRank
• Personalized PageRank
• ArticleRank
• Eigenvector Centrality
• Triangle Count
• Clustering Coefficients
• Connected Components (Union Find)
• Strongly Connected Components
• Label Propagation
• Louvain Modularity
• Balanced Triad (identification)
Graph Algorithms & Functions in Neo4j
• Shortest Path
• Single-Source Shortest Path
• All Pairs Shortest Path
• A* Shortest Path
• Yen’s K Shortest Path
• Minimum Weight Spanning Tree
• K-Spanning Tree (MST)
• Random Walk
• Depth First Search
• Breadth First Search
• Triangle Count
• Local Clustering Coefficient
• Connected Components (Union Find)
• Strongly Connected Components
• Label Propagation
• Louvain Modularity
• K-1 Coloring
• Modularity Optimization
• Euclidean Distance
• Cosine Similarity
• Node Similarity (Jaccard)
• Overlap Similarity
• Pearson Similarity
• Approximate KNN
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Similarity
Link
Prediction
• Adamic Adar
• Common Neighbors
• Preferential Attachment
• Resource Allocations
• Same Community
• Total Neighbors
...and also Auxiliary Functions:
• Random graph generation
• Graph export
• One hot encoding
• Distributions & metrics
Neo4j Integrates with Common Architectures
From Disparate Silos
To Cross-Silo Connections
From Tabular Data
To Connected Data
From Data Lake to Real-Time
Operations
Kettle Data Integration
Neo4j Streams
Download Neo4j Desktop
Lots of Plugins…
and you can make your own.
Neo4j Browser
Official
Neo4j Drivers
Community
Neo4j Drivers
Neo4j in the Cloud
Neo4j Cloud offerings to suit every need
Database-as-a-service Self-hosted Cloud Managed Services (CMS)
Cloud-native service
Zero administration Pay-as-you-
go
Self-service deployment
Cloud-native stack
No access to underlying infra and
systems.
Self hosted and managed
Any cloud (AWS, GCP, Azure)
Bring-your-own-license
Self-manage software, infra in own
private cloud
Own data, tenant, security
>50% deploy this way
White-glove fully managed
service by Neo4j experts
Fully customizable deployment model
and service levels
Operate In own data centers or Virtual
Private Cloud
Fully managed cloud-native Neo4j graph
database service, for the cloud-first
developer
• Fully automated with zero administration
• Faster innovation with the power of graphs
• Scalable on-demand dynamically
• Worry-free security and reliability
• Simple pay-as-you-go pricing
Talking to Neo4j
The good, the bad and the ugly
Java Core API
Easy to Learn (by Java Devs)
• Step by Step from GraphDatabaseService
• Start a transaction (reads and writes)
• findNode(Label, Property, Value)
• findNodes(Label, Property, Value)
• findNodes(Label)
• getNodeById(Long)
• getRelationships(Direction, Type)
• getProperty(Property, (optional) Default Value)
Boring Java Code
Traversal API
Not so Easy to Learn (by Java Devs)
•Start with the Simple Defaults :
order, relationships, depth, uniqueness, etc
•Custom Expanders
•Where should I go next
•Custom Evaluators
•I’ve gone there… should I accept this path?
More Boring Java Code
Cypher
Cypher: Powerful and Expressive Query Language
MATCH (:Person { name:“Dan”} ) -[:LOVES]-> (:Person { name:“Ann”} )
LOVES
Dan Ann
Label Property Label Property
Node Node
MATCH (boss)-[:MANAGES*0..3]->(sub),
(sub)-[:MANAGES*1..3]->(report)
WHERE boss.name = “John Doe”
RETURN sub.name AS Subordinate,
count(report) AS Total
Express Complex Queries Easily with Cypher
Find all direct reports and
how many people they manage,
up to 3 levels down
Cypher QuerySQL Query
Combine any APIs
Cypher Stored Procedures
https://maxdemarzi.com/2017/01/26/writing-a-cypher-stored-procedure/
Boring Java Code for Non Java Devs
https://maxdemarzi.com/2019/01/28/neo4j-stored-procedures-for-devs-that-dont-know-java-yet/
It’s only 372 Slides.
Graphy Solutions
Use Cases
Highly Valuable Connected Data Use Cases
Drive Enterprise Adoption
Network &
IT Operations
Fraud
Detection
Identity & Access
Management
Knowledge
Graph
Master Data
Management
Real-Time
Recommendations
• Record “Cyber Monday” sales
• About 35M daily transactions
• Each transaction is 3-22 hops
• Queries executed in 4ms or less
• Replaced IBM Websphere commerce
• 300M pricing operations per day
• 10x transaction throughput on half the hardware
compared to Oracle
• Replaced Oracle database
• Large postal service with over 500k employees
• Neo4j routes 7M+ packages daily at peak, with
peaks of 5,000+ routing operations per second.
Handling Large Graph Work Loads for Enterprises
Real-time promotion
recommendations
Marriott’s Real-time
Pricing Engine
Handling Package
Routing in Real-Time
• 27 Million warranty & service documents parsed
for text to knowledge graph
• Graph is context for AI to learn “prime examples”
and anticipate maintenance
• Improves satisfaction and equipment lifespan
• Connecting 50 research databases, 100k’s of Excel
workbooks, 30 bio-sample databases
• Bytes 4 Diabetes Award for use of a knowledge
graph, graph analytics, and AI
• Customized views for flexible research angles
• Almost 70% of CC fraud was missed
• ~1B Nodes and Relationships to analyze
• Graph analytics with queries & algorithms help
find $ millions of fraud in 1st year
Improving Analytics, ML & AI for Enterprises
Caterpillar’s AI Supply
Chain & Maintenance
German Center for
Diabetes Research (DZD)
Financial Fraud
Detection & Recovery
Top 10
Bank
Recommendations
Hello World Recommendation
Hello World Recommendation
Movie Data Model
Cypher Query: Movie Recommendation
MATCH (watched:Movie {title:"Toy Story”}) <-[r1:RATED]- (p2) -[r2:RATED]-> (unseen:Movie), (p)
WHERE r1.rating > 7 AND r2.rating > 7 AND p2.gender = “female” AND p2.age < 35
AND watched.genres = unseen.genres
AND NOT( (p:Person) -[:RATED|WATCHED]-> (unseen) )
AND p.username IN [“maxdemarzi”,”janedoe”,”jamesdean”]
RETURN unseen.title, COUNT(*)
ORDER BY COUNT(*) DESC
LIMIT 25
What are the Top 25 Movies
• that I haven't seen
• with the same genres as Toy Story
• given high ratings
• by women under 35 who liked Toy Story
Let’s try k-nearest neighbors (k-NN)
Cosine Similarity
Cypher Query: Ratings of Two Users
MATCH (p1:Person {name:'Michael Sherman’}) -[r1:RATED]-> (m:Movie),
(p2:Person {name:'Michael Hunger’}) -[r2:RATED]-> (m:Movie)
RETURN m.name AS Movie,
r1.rating AS `M. Sherman's Rating`,
r2.rating AS `M. Hunger's Rating`
What are the Movies these 2 users have both rated
Cypher Query: Ratings of Two Users
Calculating Cosine Similarity
Cypher Query: Cosine Similarity
MATCH (p1:Person) -[x:RATED]-> (m:Movie) <-[y:RATED]- (p2:Person)
WITH SUM(x.rating * y.rating) AS xyDotProduct,
SQRT(REDUCE(xDot = 0.0, a IN COLLECT(x.rating) | xDot + a^2)) AS xLength,
SQRT(REDUCE(yDot = 0.0, b IN COLLECT(y.rating) | yDot + b^2)) AS yLength,
p1, p2
MERGE (p1)-[s:SIMILARITY]-(p2)
SET s.similarity = xyDotProduct / (xLength * yLength)
Calculate it for all Person nodes with at least one Movie between them
Available in the Graph Data Science Library
• Jaccard Similarity
• Cosine Similarity
• Pearson Similarity
• Euclidian Distance
• Overlap Similarity
Movie Data Model
Cypher Query: k-NN Recommendation
MATCH (m:Movie) <-[r:RATED]- (b:Person) -[s:SIMILARITY]- (p:Person {name:'Zoltan Varju'})
WHERE NOT( (p) -[:RATED|WATCHED]-> (m) )
WITH m, s.similarity AS similarity, r.rating AS rating
ORDER BY m.name, similarity DESC
WITH m.name AS movie, COLLECT(rating)[0..3] AS ratings
WITH movie, REDUCE(s = 0, i IN ratings | s + i)*1.0 / LENGTH(ratings) AS recommendation
ORDER BY recommendation DESC
RETURN movie, recommendation
LIMIT 25
What are the Top 25 Movies
• that Zoltan Varju has not seen
• using the average rating
• by my top 3 neighbors
Matching
Indirect Connections
Top Jobs a user qualifies for in the same location
Partial Subgraph Search
• Number of Applicants to a Job
• Wholesale Resume sales
• Selling your aggregated Data
Just one tiny itsy bitsy problem:
Job Boards get paid by:
Two Way Matches
Find your soulmate in the graph
• Are they energetic?
• Do they like dogs?
• Have a good sense of humor?
• Neat and tidy, but not crazy about it?
What are the Top 10 Potential Mates for me
• that are in the same location
• are sexually compatible
• have traits I want
• want traits I have
Recommend Love
Cypher Query of Love
http://maxdemarzi.com/2013/04/19/match-making-with-neo4j/
• Finding lots of “Possible Connections”
• Monthly Subscription Fees
• Keeping you single
Just one tiny itsy bitsy problem:
Dating Boards get paid by:
Fraud
Fraud Rings
Synthetic Looking Data
Connected Components (GDS)
https://maxdemarzi.com/2020/03/20/finding-fraud-part-two-revised/
They should not be connected
https://maxdemarzi.com/2019/08/19/finding-fraud/
Credit Card Fraud
Finding similar behavior in chains of data
Graphs is one of the many layers of Fraud Detection
https://maxdemarzi.com/2019/12/04/visualizing-activities/
Understanding your Users
Two Sides of the Same Coin
Recommendations
Add a relationship that does not exist
Fraud
Delete the relationship that should not exist
Homework
http://www.apcjones.com/arrows
/#
It’s simple, it’s fast, it doesn’t run out of ink.
Arrows
Thank you!

More Related Content

What's hot

Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 
Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)
James Serra
 
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
Neo4j
 
Smarter Fraud Detection With Graph Data Science
Smarter Fraud Detection With Graph Data ScienceSmarter Fraud Detection With Graph Data Science
Smarter Fraud Detection With Graph Data Science
Neo4j
 
Neo4j GraphDay Seattle- Sept19- neo4j basic training
Neo4j GraphDay Seattle- Sept19- neo4j basic trainingNeo4j GraphDay Seattle- Sept19- neo4j basic training
Neo4j GraphDay Seattle- Sept19- neo4j basic training
Neo4j
 
Intro to Cypher
Intro to CypherIntro to Cypher
Intro to Cypher
Neo4j
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
How Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global TravelHow Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global Travel
Neo4j
 
Building and using ontologies
Building and using ontologies Building and using ontologies
Building and using ontologies
Elena Simperl
 
Graph database Use Cases
Graph database Use CasesGraph database Use Cases
Graph database Use Cases
Max De Marzi
 
Databricks Delta Lake and Its Benefits
Databricks Delta Lake and Its BenefitsDatabricks Delta Lake and Its Benefits
Databricks Delta Lake and Its Benefits
Databricks
 
Digitising Consumers in India - BCG & Matrix Study
Digitising Consumers in India - BCG & Matrix StudyDigitising Consumers in India - BCG & Matrix Study
Digitising Consumers in India - BCG & Matrix Study
ssuserf1f48a
 
Graph Data Modeling Best Practices(Eric_Monk).pptx
Graph Data Modeling Best Practices(Eric_Monk).pptxGraph Data Modeling Best Practices(Eric_Monk).pptx
Graph Data Modeling Best Practices(Eric_Monk).pptx
Neo4j
 
Airbyte - Series-B deck
Airbyte - Series-B deckAirbyte - Series-B deck
Airbyte - Series-B deck
Airbyte
 
Demo Showcase: Graphs for Cybersecurity in Action
Demo Showcase: Graphs for Cybersecurity in ActionDemo Showcase: Graphs for Cybersecurity in Action
Demo Showcase: Graphs for Cybersecurity in Action
Neo4j
 
Tiger graph 2021 corporate overview [read only]
Tiger graph 2021 corporate overview [read only]Tiger graph 2021 corporate overview [read only]
Tiger graph 2021 corporate overview [read only]
ercan5
 
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4jAdobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Neo4j
 
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital FactoryModeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
Neo4j
 
Introducing Neo4j
Introducing Neo4jIntroducing Neo4j
Introducing Neo4j
Neo4j
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
Araf Karsh Hamid
 

What's hot (20)

Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 
Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)
 
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
 
Smarter Fraud Detection With Graph Data Science
Smarter Fraud Detection With Graph Data ScienceSmarter Fraud Detection With Graph Data Science
Smarter Fraud Detection With Graph Data Science
 
Neo4j GraphDay Seattle- Sept19- neo4j basic training
Neo4j GraphDay Seattle- Sept19- neo4j basic trainingNeo4j GraphDay Seattle- Sept19- neo4j basic training
Neo4j GraphDay Seattle- Sept19- neo4j basic training
 
Intro to Cypher
Intro to CypherIntro to Cypher
Intro to Cypher
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
 
How Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global TravelHow Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global Travel
 
Building and using ontologies
Building and using ontologies Building and using ontologies
Building and using ontologies
 
Graph database Use Cases
Graph database Use CasesGraph database Use Cases
Graph database Use Cases
 
Databricks Delta Lake and Its Benefits
Databricks Delta Lake and Its BenefitsDatabricks Delta Lake and Its Benefits
Databricks Delta Lake and Its Benefits
 
Digitising Consumers in India - BCG & Matrix Study
Digitising Consumers in India - BCG & Matrix StudyDigitising Consumers in India - BCG & Matrix Study
Digitising Consumers in India - BCG & Matrix Study
 
Graph Data Modeling Best Practices(Eric_Monk).pptx
Graph Data Modeling Best Practices(Eric_Monk).pptxGraph Data Modeling Best Practices(Eric_Monk).pptx
Graph Data Modeling Best Practices(Eric_Monk).pptx
 
Airbyte - Series-B deck
Airbyte - Series-B deckAirbyte - Series-B deck
Airbyte - Series-B deck
 
Demo Showcase: Graphs for Cybersecurity in Action
Demo Showcase: Graphs for Cybersecurity in ActionDemo Showcase: Graphs for Cybersecurity in Action
Demo Showcase: Graphs for Cybersecurity in Action
 
Tiger graph 2021 corporate overview [read only]
Tiger graph 2021 corporate overview [read only]Tiger graph 2021 corporate overview [read only]
Tiger graph 2021 corporate overview [read only]
 
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4jAdobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
 
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital FactoryModeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
Modeling Manufacturing With Graph Databases: A Journey Towards a Digital Factory
 
Introducing Neo4j
Introducing Neo4jIntroducing Neo4j
Introducing Neo4j
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 

Similar to Neo4j Training Introduction

Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28
Daniël te Winkel
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
Corie Pollock
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
Girish Khanzode
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
thai
 
Graph databases and the #panamapapers
Graph databases and the #panamapapersGraph databases and the #panamapapers
Graph databases and the #panamapapers
darthvader42
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
Max De Marzi
 
State of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMState of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAM
Neo4j
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2Neo4j
 
Neo4j GraphTalk Oslo - Introduction to Graphs
Neo4j GraphTalk Oslo - Introduction to GraphsNeo4j GraphTalk Oslo - Introduction to Graphs
Neo4j GraphTalk Oslo - Introduction to Graphs
Neo4j
 
Demo Neo4j - Big Data Paris
Demo Neo4j - Big Data ParisDemo Neo4j - Big Data Paris
Demo Neo4j - Big Data Paris
Neo4j
 
DubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataDubJug: Neo4J and Open Data
DubJug: Neo4J and Open Data
Scott Sosna
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
Sarang Shravagi
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training Modeling
Max De Marzi
 
GraphDb in XPages
GraphDb in XPagesGraphDb in XPages
GraphDb in XPages
Oliver Busse
 
Thinking about graphs
Thinking about graphsThinking about graphs
Thinking about graphs
Neo4j
 
Neo4j Presentation
Neo4j PresentationNeo4j Presentation
Neo4j Presentation
Max De Marzi
 
Workshop - Neo4j Graph Data Science
Workshop - Neo4j Graph Data ScienceWorkshop - Neo4j Graph Data Science
Workshop - Neo4j Graph Data Science
Neo4j
 
Graph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft EcosystemGraph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft Ecosystem
Marco Parenzan
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
P. Taylor Goetz
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
DataWorks Summit
 

Similar to Neo4j Training Introduction (20)

Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
 
Graph databases and the #panamapapers
Graph databases and the #panamapapersGraph databases and the #panamapapers
Graph databases and the #panamapapers
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
State of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMState of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAM
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
Neo4j GraphTalk Oslo - Introduction to Graphs
Neo4j GraphTalk Oslo - Introduction to GraphsNeo4j GraphTalk Oslo - Introduction to Graphs
Neo4j GraphTalk Oslo - Introduction to Graphs
 
Demo Neo4j - Big Data Paris
Demo Neo4j - Big Data ParisDemo Neo4j - Big Data Paris
Demo Neo4j - Big Data Paris
 
DubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataDubJug: Neo4J and Open Data
DubJug: Neo4J and Open Data
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training Modeling
 
GraphDb in XPages
GraphDb in XPagesGraphDb in XPages
GraphDb in XPages
 
Thinking about graphs
Thinking about graphsThinking about graphs
Thinking about graphs
 
Neo4j Presentation
Neo4j PresentationNeo4j Presentation
Neo4j Presentation
 
Workshop - Neo4j Graph Data Science
Workshop - Neo4j Graph Data ScienceWorkshop - Neo4j Graph Data Science
Workshop - Neo4j Graph Data Science
 
Graph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft EcosystemGraph Databases in the Microsoft Ecosystem
Graph Databases in the Microsoft Ecosystem
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 

More from Max De Marzi

DataDay 2023 Presentation - Notes
DataDay 2023 Presentation - NotesDataDay 2023 Presentation - Notes
DataDay 2023 Presentation - Notes
Max 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 Notes
Max De Marzi
 
Outrageous Ideas for Graph Databases
Outrageous Ideas for Graph DatabasesOutrageous Ideas for Graph Databases
Outrageous Ideas for Graph Databases
Max De Marzi
 
Neo4j Training Cypher
Neo4j Training CypherNeo4j Training Cypher
Neo4j Training Cypher
Max De Marzi
 
Detenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4jDetenga el fraude complejo con Neo4j
Detenga el fraude complejo con Neo4j
Max De Marzi
 
Data Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4jData Modeling Tricks for Neo4j
Data Modeling Tricks for Neo4j
Max 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 Neo4j
Max De Marzi
 
Neo4j Data Science Presentation
Neo4j Data Science PresentationNeo4j Data Science Presentation
Neo4j Data Science Presentation
Max De Marzi
 
Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2Neo4j Stored Procedure Training Part 2
Neo4j Stored Procedure Training Part 2
Max De Marzi
 
Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1
Max De Marzi
 
Decision Trees in Neo4j
Decision Trees in Neo4jDecision Trees in Neo4j
Decision Trees in Neo4j
Max De Marzi
 
Neo4j y Fraude Spanish
Neo4j y Fraude SpanishNeo4j y Fraude Spanish
Neo4j y Fraude Spanish
Max De Marzi
 
Data modeling with neo4j tutorial
Data modeling with neo4j tutorialData modeling with neo4j tutorial
Data modeling with neo4j tutorial
Max De Marzi
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j Fundamentals
Max De Marzi
 
Fraud Detection Class Slides
Fraud Detection Class SlidesFraud Detection Class Slides
Fraud Detection Class Slides
Max De Marzi
 
Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015Bootstrapping Recommendations OSCON 2015
Bootstrapping Recommendations OSCON 2015
Max De Marzi
 
What Finance can learn from Dating Sites
What Finance can learn from Dating SitesWhat Finance can learn from Dating Sites
What Finance can learn from Dating Sites
Max De Marzi
 
Bootstrapping Recommendations with Neo4j
Bootstrapping Recommendations with Neo4jBootstrapping Recommendations with Neo4j
Bootstrapping Recommendations with Neo4j
Max De Marzi
 
Data 2.0
Data 2.0 Data 2.0
Data 2.0
Max De Marzi
 

More from Max De Marzi (20)

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
 
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 Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j Fundamentals
 
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
 
What Finance can learn from Dating Sites
What Finance can learn from Dating SitesWhat Finance can learn from Dating Sites
What Finance can learn from Dating Sites
 
Bootstrapping Recommendations with Neo4j
Bootstrapping Recommendations with Neo4jBootstrapping Recommendations with Neo4j
Bootstrapping Recommendations with Neo4j
 
Data 2.0
Data 2.0 Data 2.0
Data 2.0
 

Recently uploaded

Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

Neo4j Training Introduction

  • 2. github.com/maxdemarzi About 200 public repositories Max De Marzi Neo4j Field Engineer About Me ! 01 02 03 04 maxdemarzi.com @maxdemarzi About 175 blog posts
  • 3. • Relational Databases • Graph Databases • The most important slide about Neo4j you will ever see • A few slides about Modeling • The Graph Platform • Neo4j Cloud (aka Aura) • Talking to Neo4j • Neo4j Use Cases Agenda
  • 5. What does a Relational Database look like?
  • 6. Does it look like a Birch?
  • 9. 1 Table Lots of Pages Many Hops from one page to another
  • 11. First we search for an id in the Index B- tree for the RowId Then we search the Table B-tree to get to the data. Inside each Page, we do a Binary search for which page to go to next.
  • 12.
  • 13. What you (probably) already know:
  • 14.
  • 15. Joins are executed every time you query the relationship Executing a Join means to search for a key B-Tree Index: O(log(n)) Your data grows, your search time goes up More Data = More Searches Slower Performance The Problem 1 2 3 4
  • 16. Relational Databases can’t handle Relationships Degraded Performance Speed plummets as data grows and as the number of joins grows Wrong Language SQL was built with Set Theory in mind, not Graph Theory Not Flexible New types of data and relationships require schema redesign Wrong Model They cannot model or store relationships without complexity 1 2 3 4
  • 17. Wrangle your data efficiently Before it eats you alive
  • 18. NoSQL Databases can’t handle Relationships Degraded Performance Speed plummets as you try to join data together in the application Wrong Languages Lots of wacky “almost sql” languages terrible at “joins” Not ACID Eventually Consistent means Eventually Corrupt Wrong Model They cannot model or store relationships without complexity 1 2 3 4
  • 20. Property Graph Model Components Nodes • Relate nodes by type and direction • Can have Properties • Can have Labels • Can have Properties name:”Dan” born: May 29, 1970 twitter:”@dan” name:”Ann” born: Dec 5, 1975 Since: Jan 10, 2011 brand: “Volvo” model: “V70” Car LOVES LIVES_WITH Person Relationships Person
  • 21. Same Data, Different Layout No more Tables, no more Foreign Keys, no more Joins
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Double Linked List Relationship Layout
  • 28. The Most Important Slide about Neo4j you will ever see
  • 29. Fixed Sized Records “Joins” on Creation Spin Spin Spin through this data structure Pointers instead of Searches1 2 3 4
  • 30.
  • 32. Real-Time Query Performance Relational and Other NoSQL Databases ResponseTime Connectedness and Size of Data Set 0 to 2 hops 0 to 3 degrees Few connections 5+ hops 3+ degrees Thousands of connections 1000x Advantage “Minutes to milliseconds” Neo4j
  • 33. I don’t know the average height of all hollywood actors, but I do know the Six Degrees of Kevin Bacon But not for every query
  • 34. Reimagine your Data as a Graph Better Performance Query relationships in real time Right Language Cypher was purpose built for Graphs Flexible and Consistent Evolve your schema seamlessly while keeping transactions Right Model Graphs simplify how you think1 2 3 4 Agile, High Performance and Scalable without Sacrifice
  • 36. Just draw stuff and “walla” there is your data model Graphs are Whiteboard Friendly
  • 37. Movie Property Graph Some Models are Easy
  • 38.
  • 39. Should Roles be their own Node? Some Models are Easy but not for all Questions
  • 40. We’ll talk more about Modeling tomorrow.
  • 42. Graph Transactions Graph Analytics Data Integration Development & Admin Analytics Tooling Drivers & APIs Discovery & Visualization Developers Admins Applications Business Users Data Analysts Data Scientists Enterprise Data Hub Native Graph Technology for Applications & Analytics
  • 43. Graph Databases: Designed for Connected Data TRADITIONAL DATABASES BIG DATA TECHNOLOGY Store and retrieve data Aggregate and filter data Connections in data Real time storage & retrieval Real-Time Connected Insights Long running queries aggregation & filtering
  • 44. Perspective Search Visualization Exploration Inspection Editing Visually Explore your Neo4j Graph with Bloom Business view of the graph enables analysts to discover new insights Codeless “Search first” experience makes it easy for non-developers to pick up graphs Easy-to-use graph interactions to explore, inspect or edit connected data GPU accelerated high performance visualizations enable macro graph views Deploys easily with Neo4j Desktop or as a Neo4j Server plug-in component Quickly prototype projects and enable collaboration between developers and business users
  • 45. Neo4j Bloom User Interface • Prompted Search • Property Browser & editor • Category icons and color scheme • Pan, Zoom & Select
  • 46. The most popular BI tools can now talk live to the world’s most popular graph db • Best live, seamless integration of graph data with your favorite BI tools • Familiar UI for end users • No development effort for IT • Democratizes access to Neo4j data • Free to adopt by BI teams of Enterprise Edition customers Neo4j BI Connector Tableau JDBC Neo4j BI Connector SQL Cypher Business/Data Analyst Investigator Data Scientist
  • 47. for Enterprise Graph Data Science Neo4j Graph Data Science Library Scalable Graph Algorithms & Analytics Workspace Native Graph Creation & Persistence Neo4j Database Visual Graph Exploration & Prototyping Neo4j Bloom Practical Integrated Intuitive
  • 48. • Degree Centrality • Closeness Centrality • CC Variations: Harmonic, Dangalchev, Wasserman & Faust • Betweenness Centrality & Approximate • PageRank • Personalized PageRank • ArticleRank • Eigenvector Centrality • Triangle Count • Clustering Coefficients • Connected Components (Union Find) • Strongly Connected Components • Label Propagation • Louvain Modularity • Balanced Triad (identification) Graph Algorithms & Functions in Neo4j • Shortest Path • Single-Source Shortest Path • All Pairs Shortest Path • A* Shortest Path • Yen’s K Shortest Path • Minimum Weight Spanning Tree • K-Spanning Tree (MST) • Random Walk • Depth First Search • Breadth First Search • Triangle Count • Local Clustering Coefficient • Connected Components (Union Find) • Strongly Connected Components • Label Propagation • Louvain Modularity • K-1 Coloring • Modularity Optimization • Euclidean Distance • Cosine Similarity • Node Similarity (Jaccard) • Overlap Similarity • Pearson Similarity • Approximate KNN Pathfinding & Search Centrality / Importance Community Detection Similarity Link Prediction • Adamic Adar • Common Neighbors • Preferential Attachment • Resource Allocations • Same Community • Total Neighbors ...and also Auxiliary Functions: • Random graph generation • Graph export • One hot encoding • Distributions & metrics
  • 49. Neo4j Integrates with Common Architectures From Disparate Silos To Cross-Silo Connections From Tabular Data To Connected Data From Data Lake to Real-Time Operations
  • 53.
  • 54. Lots of Plugins… and you can make your own.
  • 57. Neo4j in the Cloud
  • 58. Neo4j Cloud offerings to suit every need Database-as-a-service Self-hosted Cloud Managed Services (CMS) Cloud-native service Zero administration Pay-as-you- go Self-service deployment Cloud-native stack No access to underlying infra and systems. Self hosted and managed Any cloud (AWS, GCP, Azure) Bring-your-own-license Self-manage software, infra in own private cloud Own data, tenant, security >50% deploy this way White-glove fully managed service by Neo4j experts Fully customizable deployment model and service levels Operate In own data centers or Virtual Private Cloud
  • 59. Fully managed cloud-native Neo4j graph database service, for the cloud-first developer • Fully automated with zero administration • Faster innovation with the power of graphs • Scalable on-demand dynamically • Worry-free security and reliability • Simple pay-as-you-go pricing
  • 60. Talking to Neo4j The good, the bad and the ugly
  • 62. Easy to Learn (by Java Devs) • Step by Step from GraphDatabaseService • Start a transaction (reads and writes) • findNode(Label, Property, Value) • findNodes(Label, Property, Value) • findNodes(Label) • getNodeById(Long) • getRelationships(Direction, Type) • getProperty(Property, (optional) Default Value)
  • 65. Not so Easy to Learn (by Java Devs) •Start with the Simple Defaults : order, relationships, depth, uniqueness, etc •Custom Expanders •Where should I go next •Custom Evaluators •I’ve gone there… should I accept this path?
  • 68.
  • 69. Cypher: Powerful and Expressive Query Language MATCH (:Person { name:“Dan”} ) -[:LOVES]-> (:Person { name:“Ann”} ) LOVES Dan Ann Label Property Label Property Node Node
  • 70. MATCH (boss)-[:MANAGES*0..3]->(sub), (sub)-[:MANAGES*1..3]->(report) WHERE boss.name = “John Doe” RETURN sub.name AS Subordinate, count(report) AS Total Express Complex Queries Easily with Cypher Find all direct reports and how many people they manage, up to 3 levels down Cypher QuerySQL Query
  • 71. Combine any APIs Cypher Stored Procedures https://maxdemarzi.com/2017/01/26/writing-a-cypher-stored-procedure/
  • 72. Boring Java Code for Non Java Devs https://maxdemarzi.com/2019/01/28/neo4j-stored-procedures-for-devs-that-dont-know-java-yet/ It’s only 372 Slides.
  • 74. Highly Valuable Connected Data Use Cases Drive Enterprise Adoption Network & IT Operations Fraud Detection Identity & Access Management Knowledge Graph Master Data Management Real-Time Recommendations
  • 75. • Record “Cyber Monday” sales • About 35M daily transactions • Each transaction is 3-22 hops • Queries executed in 4ms or less • Replaced IBM Websphere commerce • 300M pricing operations per day • 10x transaction throughput on half the hardware compared to Oracle • Replaced Oracle database • Large postal service with over 500k employees • Neo4j routes 7M+ packages daily at peak, with peaks of 5,000+ routing operations per second. Handling Large Graph Work Loads for Enterprises Real-time promotion recommendations Marriott’s Real-time Pricing Engine Handling Package Routing in Real-Time
  • 76. • 27 Million warranty & service documents parsed for text to knowledge graph • Graph is context for AI to learn “prime examples” and anticipate maintenance • Improves satisfaction and equipment lifespan • Connecting 50 research databases, 100k’s of Excel workbooks, 30 bio-sample databases • Bytes 4 Diabetes Award for use of a knowledge graph, graph analytics, and AI • Customized views for flexible research angles • Almost 70% of CC fraud was missed • ~1B Nodes and Relationships to analyze • Graph analytics with queries & algorithms help find $ millions of fraud in 1st year Improving Analytics, ML & AI for Enterprises Caterpillar’s AI Supply Chain & Maintenance German Center for Diabetes Research (DZD) Financial Fraud Detection & Recovery Top 10 Bank
  • 81. Cypher Query: Movie Recommendation MATCH (watched:Movie {title:"Toy Story”}) <-[r1:RATED]- (p2) -[r2:RATED]-> (unseen:Movie), (p) WHERE r1.rating > 7 AND r2.rating > 7 AND p2.gender = “female” AND p2.age < 35 AND watched.genres = unseen.genres AND NOT( (p:Person) -[:RATED|WATCHED]-> (unseen) ) AND p.username IN [“maxdemarzi”,”janedoe”,”jamesdean”] RETURN unseen.title, COUNT(*) ORDER BY COUNT(*) DESC LIMIT 25 What are the Top 25 Movies • that I haven't seen • with the same genres as Toy Story • given high ratings • by women under 35 who liked Toy Story
  • 82. Let’s try k-nearest neighbors (k-NN) Cosine Similarity
  • 83. Cypher Query: Ratings of Two Users MATCH (p1:Person {name:'Michael Sherman’}) -[r1:RATED]-> (m:Movie), (p2:Person {name:'Michael Hunger’}) -[r2:RATED]-> (m:Movie) RETURN m.name AS Movie, r1.rating AS `M. Sherman's Rating`, r2.rating AS `M. Hunger's Rating` What are the Movies these 2 users have both rated
  • 84. Cypher Query: Ratings of Two Users Calculating Cosine Similarity
  • 85. Cypher Query: Cosine Similarity MATCH (p1:Person) -[x:RATED]-> (m:Movie) <-[y:RATED]- (p2:Person) WITH SUM(x.rating * y.rating) AS xyDotProduct, SQRT(REDUCE(xDot = 0.0, a IN COLLECT(x.rating) | xDot + a^2)) AS xLength, SQRT(REDUCE(yDot = 0.0, b IN COLLECT(y.rating) | yDot + b^2)) AS yLength, p1, p2 MERGE (p1)-[s:SIMILARITY]-(p2) SET s.similarity = xyDotProduct / (xLength * yLength) Calculate it for all Person nodes with at least one Movie between them
  • 86. Available in the Graph Data Science Library • Jaccard Similarity • Cosine Similarity • Pearson Similarity • Euclidian Distance • Overlap Similarity
  • 88. Cypher Query: k-NN Recommendation MATCH (m:Movie) <-[r:RATED]- (b:Person) -[s:SIMILARITY]- (p:Person {name:'Zoltan Varju'}) WHERE NOT( (p) -[:RATED|WATCHED]-> (m) ) WITH m, s.similarity AS similarity, r.rating AS rating ORDER BY m.name, similarity DESC WITH m.name AS movie, COLLECT(rating)[0..3] AS ratings WITH movie, REDUCE(s = 0, i IN ratings | s + i)*1.0 / LENGTH(ratings) AS recommendation ORDER BY recommendation DESC RETURN movie, recommendation LIMIT 25 What are the Top 25 Movies • that Zoltan Varju has not seen • using the average rating • by my top 3 neighbors
  • 91. Top Jobs a user qualifies for in the same location
  • 93. • Number of Applicants to a Job • Wholesale Resume sales • Selling your aggregated Data Just one tiny itsy bitsy problem: Job Boards get paid by:
  • 94. Two Way Matches Find your soulmate in the graph • Are they energetic? • Do they like dogs? • Have a good sense of humor? • Neat and tidy, but not crazy about it? What are the Top 10 Potential Mates for me • that are in the same location • are sexually compatible • have traits I want • want traits I have Recommend Love
  • 97. • Finding lots of “Possible Connections” • Monthly Subscription Fees • Keeping you single Just one tiny itsy bitsy problem: Dating Boards get paid by:
  • 98. Fraud
  • 104.
  • 105.
  • 106. Finding similar behavior in chains of data
  • 107. Graphs is one of the many layers of Fraud Detection
  • 109. Two Sides of the Same Coin Recommendations Add a relationship that does not exist Fraud Delete the relationship that should not exist
  • 111. http://www.apcjones.com/arrows /# It’s simple, it’s fast, it doesn’t run out of ink. Arrows

Editor's Notes

  1. The benchmark slide