pernilla.neo4j

106
A little talk about graph databases and Neo4j torsdag 17 oktober 13

Upload: p3rnilla

Post on 30-Oct-2014

235 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Pernilla.neo4j

A little talk about graph databases and

Neo4j

torsdag 17 oktober 13

Page 2: Pernilla.neo4j

A little talk about graph databases and

Neo4j

torsdag 17 oktober 13

Page 3: Pernilla.neo4j

Pernilla Lindh

torsdag 17 oktober 13

Page 4: Pernilla.neo4j

Pernilla Lindh Started at Neo4j 2012

Developer Evangelist

Geek Girl Meetup Öresund, Sweden

My Blog: www.p3rnilla.com

Find me on Twitter: @p3rnilla

Email me: [email protected]

torsdag 17 oktober 13

Page 5: Pernilla.neo4j

Agenda:

Introduction

The fairytale about Neo4j- Johnny Depp, Cats, Earth, Napster, Friends, Customer, Application map

Graphs are everywhere- social, linked, interest graph

Graph Databases- What is it? My little pony’s, Matrix, Tom Hanks, Patterns, Movies, Query language

Surprise

DEMO

Become a graphista?

Thank you!

torsdag 17 oktober 13

Page 6: Pernilla.neo4j

torsdag 17 oktober 13

Page 7: Pernilla.neo4j

Once upon a tim!..

torsdag 17 oktober 13

Page 8: Pernilla.neo4j

torsdag 17 oktober 13

Page 9: Pernilla.neo4j

In " 90’s, #ree guys had a problem...

torsdag 17 oktober 13

Page 10: Pernilla.neo4j

In " 90’s, #ree guys had a problem...

torsdag 17 oktober 13

Page 11: Pernilla.neo4j

torsdag 17 oktober 13

Page 12: Pernilla.neo4j

Between 3-8 000 language today

torsdag 17 oktober 13

Page 13: Pernilla.neo4j

torsdag 17 oktober 13

Page 14: Pernilla.neo4j

torsdag 17 oktober 13

Page 15: Pernilla.neo4j

2

1

StugaCottageIS_A

DEHaus

SEHusENGHouse

0

ENGBuilding

torsdag 17 oktober 13

Page 16: Pernilla.neo4j

torsdag 17 oktober 13

Page 17: Pernilla.neo4j

#ey $a%ed &g into " h'tory and

realized..

torsdag 17 oktober 13

Page 18: Pernilla.neo4j

GRAPHS ARE

EVERYWHEREtorsdag 17 oktober 13

Page 19: Pernilla.neo4j

torsdag 17 oktober 13

Page 20: Pernilla.neo4j

torsdag 17 oktober 13

Page 21: Pernilla.neo4j

torsdag 17 oktober 13

Page 22: Pernilla.neo4j

torsdag 17 oktober 13

Page 23: Pernilla.neo4j

torsdag 17 oktober 13

Page 24: Pernilla.neo4j

torsdag 17 oktober 13

Page 25: Pernilla.neo4j

torsdag 17 oktober 13

Page 26: Pernilla.neo4j

1999

torsdag 17 oktober 13

Page 27: Pernilla.neo4j

torsdag 17 oktober 13

Page 28: Pernilla.neo4j

Let’s build a graph database!

torsdag 17 oktober 13

Page 29: Pernilla.neo4j

And called it Neo, since we all

love The Matrix

torsdag 17 oktober 13

Page 30: Pernilla.neo4j

And make it open-source so everyone

can join the fun

torsdag 17 oktober 13

Page 31: Pernilla.neo4j

torsdag 17 oktober 13

Page 32: Pernilla.neo4j

torsdag 17 oktober 13

Page 33: Pernilla.neo4j

IDEA

torsdag 17 oktober 13

Page 34: Pernilla.neo4j

PROTOTYPE

IDEA

torsdag 17 oktober 13

Page 35: Pernilla.neo4j

PROTOTYPE

RUNNING IN PRODUCTION

IDEA

torsdag 17 oktober 13

Page 36: Pernilla.neo4j

torsdag 17 oktober 13

Page 37: Pernilla.neo4j

~ 55 employeesIn 11 countries

A startup

50 000 NIP every month 2% customers of the global 2000

torsdag 17 oktober 13

Page 38: Pernilla.neo4j

torsdag 17 oktober 13

Page 39: Pernilla.neo4j

torsdag 17 oktober 13

Page 40: Pernilla.neo4j

Coolest Application Built in Neo4j

torsdag 17 oktober 13

Page 41: Pernilla.neo4j

torsdag 17 oktober 13

Page 42: Pernilla.neo4j

torsdag 17 oktober 13

Page 43: Pernilla.neo4j

GRAPHS ARE

EVERYWHEREtorsdag 17 oktober 13

Page 44: Pernilla.neo4j

torsdag 17 oktober 13

Page 45: Pernilla.neo4j

torsdag 17 oktober 13

Page 46: Pernilla.neo4j

torsdag 17 oktober 13

Page 47: Pernilla.neo4j

torsdag 17 oktober 13

Page 48: Pernilla.neo4j

torsdag 17 oktober 13

Page 49: Pernilla.neo4j

torsdag 17 oktober 13

Page 50: Pernilla.neo4j

torsdag 17 oktober 13

Page 51: Pernilla.neo4j

GRAPHS ARE

EVERYWHEREtorsdag 17 oktober 13

Page 52: Pernilla.neo4j

So what is a graph database?

torsdag 17 oktober 13

Page 53: Pernilla.neo4j

torsdag 17 oktober 13

Page 54: Pernilla.neo4j

What is a graph?

torsdag 17 oktober 13

Page 55: Pernilla.neo4j

Object (vertex, node)

What is a graph?

torsdag 17 oktober 13

Page 56: Pernilla.neo4j

Object (vertex, node)

What is a graph?

torsdag 17 oktober 13

Page 57: Pernilla.neo4j

Object (vertex, node)

What is a graph?

torsdag 17 oktober 13

Page 58: Pernilla.neo4j

Object (vertex, node)

What is a graph?

torsdag 17 oktober 13

Page 59: Pernilla.neo4j

Object (vertex, node)

What is a graph?

torsdag 17 oktober 13

Page 60: Pernilla.neo4j

Object (vertex, node)

Link (edge, arc, relationship)

What is a graph?

torsdag 17 oktober 13

Page 61: Pernilla.neo4j

Peter

torsdag 17 oktober 13

Page 62: Pernilla.neo4j

Peter

Johan

torsdag 17 oktober 13

Page 63: Pernilla.neo4j

Peter

Johan

Emil

torsdag 17 oktober 13

Page 64: Pernilla.neo4j

Peter

Johan

Emil

torsdag 17 oktober 13

Page 65: Pernilla.neo4j

Peter

Johan

Emil

Friend Of

torsdag 17 oktober 13

Page 66: Pernilla.neo4j

Peter

Johan

Emil

Friend Of

Friend Of

torsdag 17 oktober 13

Page 67: Pernilla.neo4j

Peter

Johan

Emil

Friend Of

Friend Of

Friend Of

torsdag 17 oktober 13

Page 68: Pernilla.neo4j

Peter

Johan

Emil

Friend Of

Friend Of

Friend Of

Frien

d Of

torsdag 17 oktober 13

Page 69: Pernilla.neo4j

Peter

Johan

Emil

Friend Of

Friend OfFrien

d Of

Friend Of

torsdag 17 oktober 13

Page 70: Pernilla.neo4j

PeterAge:38

JohanAge: 36

EmilAge: 34

Friend Ofsince: 1994

Friend Of

Since: 1992 Frien

d Of

Since: 19

84

Friend Since: 1994

torsdag 17 oktober 13

Page 71: Pernilla.neo4j

Modeling a graph

torsdag 17 oktober 13

Page 72: Pernilla.neo4j

torsdag 17 oktober 13

Page 73: Pernilla.neo4j

Step one: Start with a whiteboard and a pen

torsdag 17 oktober 13

Page 74: Pernilla.neo4j

torsdag 17 oktober 13

Page 75: Pernilla.neo4j

Step two: Use your imagination

torsdag 17 oktober 13

Page 76: Pernilla.neo4j

torsdag 17 oktober 13

Page 77: Pernilla.neo4j

Everyone watch movies

torsdag 17 oktober 13

Page 78: Pernilla.neo4j

torsdag 17 oktober 13

Page 79: Pernilla.neo4j

LANA WACHOWSKI

CLOUD ATLASTHE MATRIX

HUGO WEAVINGTOM HANKS

ACTED_IN

LANA WACHOWSKI

ACTED_IN

ACTED_IN

ACTED_IN

DIRECTED

DIRECTED

torsdag 17 oktober 13

Page 80: Pernilla.neo4j

LANA WACHOWSKI

CLOUD ATLASTHE MATRIX

HUGO WEAVINGTOM HANKS

ACTED_IN

LANA WACHOWSKI

ACTED_IN

ACTED_IN

ACTED_IN

DIRECTED

DIRECTED

torsdag 17 oktober 13

Page 81: Pernilla.neo4j

name: LANA WACHOWSKInationality: USa

won: Razzie, Hugo

title: CLOUD ATLASgenre: drama, sci-fi

title: THE MATRIXgenre: sci-fi

name:HUGO WEAVINGnationality: Australiawon: MTV Movie Award

name:TOM HANKSnationality: USAwon: Oscar, Emmy

ACTED_INrole: Bill Smoke

LANA WACHOWSKI

ACTED_INrole: Zachry

ACTED_IN

ACTED_INrole: Agent Smith

DIRECTEDDIRECTED

torsdag 17 oktober 13

Page 82: Pernilla.neo4j

So?

torsdag 17 oktober 13

Page 83: Pernilla.neo4j

name: LANA WACHOWSKInationality: USa

won: Razzie, Hugo

title: CLOUD ATLASgenre: drama, sci-fi

title: THE MATRIXgenre: sci-fi

name:HUGO WEAVINGnationality: Australiawon: MTV Movie Award

name:TOM HANKSnationality: USAwon: Oscar, Emmy

ACTED_INrole: Bill Smoke

LANA WACHOWSKI

ACTED_INrole: Zachry

ACTED_IN

ACTED_INrole: Agent Smith

DIRECTEDDIRECTED

torsdag 17 oktober 13

Page 84: Pernilla.neo4j

torsdag 17 oktober 13

Page 85: Pernilla.neo4j

CYPHER

torsdag 17 oktober 13

Page 86: Pernilla.neo4j

CYPHER

Cypher is Neo4j's graph query language

torsdag 17 oktober 13

Page 87: Pernilla.neo4j

torsdag 17 oktober 13

Page 88: Pernilla.neo4j

// get node with id 0start n=node(0) return a// find nodes connected to node 1start n=node(1) match (n)-->(m) return m// create a nodecreate (me {name:'Pernilla'})// delete relationshipstart n=node(1) match (n)-[r]->(m) delete r

torsdag 17 oktober 13

Page 89: Pernilla.neo4j

• Declarative Pattern-Matching language

• SQL-like syntax

• Designed for graphs

torsdag 17 oktober 13

Page 90: Pernilla.neo4j

It’s all about Patterns

A

B C

torsdag 17 oktober 13

Page 91: Pernilla.neo4j

torsdag 17 oktober 13

Page 92: Pernilla.neo4j

Two����������� ������������������  nodes,����������� ������������������  one����������� ������������������  relationship

a b

torsdag 17 oktober 13

Page 93: Pernilla.neo4j

Two����������� ������������������  nodes,����������� ������������������  one����������� ������������������  relationship

(a) --> (b)

a b

torsdag 17 oktober 13

Page 94: Pernilla.neo4j

Two����������� ������������������  nodes,����������� ������������������  one����������� ������������������  relationship

START a=node(*)MATCH (a)-->(b)RETURN a, b;

a b

torsdag 17 oktober 13

Page 95: Pernilla.neo4j

A

A

A

B

B

B

START a=node(*)MATCH (a)-->(b)RETURN a, b;

torsdag 17 oktober 13

Page 96: Pernilla.neo4j

A

A

A

B

B

B

START a=node(*)MATCH (a)-->(b)RETURN a, b;

torsdag 17 oktober 13

Page 97: Pernilla.neo4j

A

A

A

B

B

B

START a=node(*)MATCH (a)-->(b)RETURN a, b;

torsdag 17 oktober 13

Page 98: Pernilla.neo4j

A

A

A

B

B

B

START a=node(*)MATCH (a)-->(b)RETURN a, b;

torsdag 17 oktober 13

Page 99: Pernilla.neo4j

torsdag 17 oktober 13

Page 100: Pernilla.neo4j

http://www.neo4j.org

torsdag 17 oktober 13

Page 101: Pernilla.neo4j

torsdag 17 oktober 13

Page 102: Pernilla.neo4j

Aren't we defined by how the world relates to us?

torsdag 17 oktober 13

Page 103: Pernilla.neo4j

Become a graphista?

torsdag 17 oktober 13

Page 104: Pernilla.neo4j

torsdag 17 oktober 13

Page 105: Pernilla.neo4j

Questions?

THANK YOU!

torsdag 17 oktober 13

Page 106: Pernilla.neo4j

torsdag 17 oktober 13