intro to neo4j - nicole white

38
Intro to Neo4j by Nicole White Data Scientist at Neo4j @_nicolemargaret

Upload: neo4j-the-open-source-graph-database

Post on 15-Jan-2015

1.423 views

Category:

Technology


0 download

DESCRIPTION

An introduction to graph databases and Neo4j.

TRANSCRIPT

Page 1: Intro to Neo4j - Nicole White

Intro to Neo4jby Nicole White

Data Scientist at Neo4j @_nicolemargaret

Page 2: Intro to Neo4j - Nicole White

Agenda

What is a Graph?

What is

Neo4j?

Data Modeling

Cypher

Query Langu

age

Neo4j Brows

er Demo

Next

Steps

Page 3: Intro to Neo4j - Nicole White

What is a Graph?

Page 4: Intro to Neo4j - Nicole White

Are These Graphs?

Category 1 Category 2 Category 3 Category 40

1

2

3

4

5

6

Series 1 Series 2 Series 3

Category 1 Category 2 Category 3 Category 40

2

4

6

8

10

12

14

Series 1 Series 2 Series 3

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 5: Intro to Neo4j - Nicole White

This is a Graph

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Node

Relationship

Page 6: Intro to Neo4j - Nicole White

Twitter Social Graph

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 7: Intro to Neo4j - Nicole White

Internet Graph

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 8: Intro to Neo4j - Nicole White

What is Neo4j?

Page 9: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 10: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 11: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

language:’Swedish’

open_source:true

year:2007

The Property Graph

Page 12: Intro to Neo4j - Nicole White

Neo4j

Recommendations

eHarmony

Glassdoor

Logistics

eBay

shutl

Content Management

OneFineStay

Lufthansa

Customers

neo4j.com/customers

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 13: Intro to Neo4j - Nicole White

Data Modeling

Page 14: Intro to Neo4j - Nicole White

A Journey from SQL to Graph

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 15: Intro to Neo4j - Nicole White

Example: YouTube in SQL

ID Name

1 Alice

2 Bob

3 Charles

4 David

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

ID Name

1 Bob’s Gaming Channel

2 Bob’s Cute Dog

3 Cooking with Charles

4 David’s How-To Channel

5 Disco Dancing with David

User ID Channel ID

2 1

2 2

3 3

4 4

4 5

USERS

CHANNELSUSERS_CHANNELS

User ID Channel ID

1 3

1 4

2 3

2 5

3 1

USERS_SUBSCRIPTIONS

Page 16: Intro to Neo4j - Nicole White

Example: YouTube in a Graph

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

Page 17: Intro to Neo4j - Nicole White

Cypher Query Language

Page 18: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (n)RETURN n;

Page 19: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (u:User)RETURN u;

Page 20: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (c:Channel)RETURN c;

Page 21: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (bob:User {name:’Bob’})RETURN bob;

Page 22: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (u:User)-[r]->(c:Channel)RETURN u, r, c;

Page 23: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (u:User)-[r:OPERATES]->(c:Channel)RETURN u, r, c;

Page 24: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH p=(:User)-[:OPERATES]->(:Channel)RETURN p;

Page 25: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH p=(:User {name:’Bob’})-[:OPERATES]->(:Channel)<-[:SUBSCRIBED]-(:User)RETURN p;

Page 26: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (u:User)-[r]->(c:Channel)RETURN u.name, TYPE(r), c.name;

Page 27: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (:User {name:’Bob’})-[:OPERATES]->(c:Channel)RETURN COUNT(c);

Page 28: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH (u:User)-[:OPERATES]->(c:Channel)RETURN u.name, COUNT(c) AS channelsORDER BY channels DESC;

Page 29: Intro to Neo4j - Nicole White

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

name:’Alice’

name:’Bob’

name:’Charles’

name:’David’

name:’Cooking with Charles’

name:’David’s How-To Channel’

name:’Disco Dancing with David’

name:’Bob’s Gaming Channel’

name:’Bob’s Cute Dog’User

Channel

OPERATES

OPERATES

OPERATES

OPERATES

OPERATES

SUBSCRIBEDSUBSCRIBED

SUBSCRIBED

SUBS

CRIB

ED

SUBSCRIBED

MATCH p=(:User {name:'Charles'})-[*1..4]-(:User {name:'David'})RETURN pLIMIT 1;

Page 30: Intro to Neo4j - Nicole White

Uniqueness Constraints

CREATE CONSTRAINT ON (u:User) ASSERT u.name IS UNIQUE;

CREATE CONSTRAINT ON (c:Channel) ASSERT c.name IS UNIQUE;

Page 31: Intro to Neo4j - Nicole White

Download the Cypher Refcard

bit.ly/cypher-refcard

Page 32: Intro to Neo4j - Nicole White

Neo4j Browser Demo

Page 33: Intro to Neo4j - Nicole White

Next Steps

Page 34: Intro to Neo4j - Nicole White

Download Neo4j

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

neo4j.com

Page 35: Intro to Neo4j - Nicole White

Choose a Driverneo4j.com/contrib

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 36: Intro to Neo4j - Nicole White

Join the Community

bit.ly/neo4j-google

@neo4j

#neo4j

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

neo4j.meetup.com

Page 37: Intro to Neo4j - Nicole White

Come to the RNeo4j Meetup

• Tuesday, September 9th, 2014• 6:00-7:30PM• In this room• bit.ly/graphs-r-cool

What is a Graph? What is Neo4j? Data Modeling Cypher Query Language Neo4j Browser Demo Next Steps

Page 38: Intro to Neo4j - Nicole White

October 22, 2014SF JazzInnovate. Share. Connect.

Register @ graphconnect.com

Discount for Meetup attendees:SFLOCAL200