intro to neo4j with ruby

Post on 27-Jan-2015

112 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A quick introduction to Graphs, Neo4j and neography.

TRANSCRIPT

Introducing Neo4jYour Next Database

Max De Marzi

About Me

• My Blog: http://maxdemarzi.com• Find me on Twitter: @maxdemarzi• Email me: maxdemarzi@gmail.com• GitHub: http://github.com/maxdemarzi

Built the Neography Gem (Ruby Wrapper to the Neo4j REST API)Playing with Neo4j since 10/2009

Agenda

• What is a Graph?• What is a Graph Database?• What can you do with a Graph Database?

What is a Graph?

• An abstract representation of a set of objects where some pairs are connected by links.

Object (Vertex, Node)

Link (Edge, Arc, Relationship)

Different Kinds of Graphs

• Undirected Graph• Directed Graph

• Pseudo Graph• Multi Graph

• Hyper Graph

More Kinds of Graphs

• Weighted Graph

• Labeled Graph

• Property Graph

What is a Graph Database?

• A database with an explicit graph structure• Each node knows its adjacent nodes• As the number of nodes increases, the cost of

a local step (or hop) remains the same

Good For

• Highly connected data (social networks)• Recommendations (e-commerce)• Path Finding (how do I know you?)• A* (Least Cost path)• Data First Schema (bottom-up, but you still

need to design)

Not so good for

• Set Operations:– Union– Intersection– Cross Joins

• Ginormous Amounts of Data– Billions ok, Trillions not so much.

What is Neo4j?

• A Graph Database + Lucene Index• Property Graph• Full ACID (atomicity, consistency, isolation,

durability)• High Availability (with Enterprise Edition)• 32 Billion Nodes, 32 Billion Relationships,

64 Billion Properties• Embedded Server• REST API

Neo4j + Ruby

Neo4j Data Browser

Neo4j Console

Friends Graph Illustrated

Friends Graph

Relationships

.both is actually creating two relationships. One incoming and one outgoing friends relationship.

Each Relationship in Neo4j only goes in one direction.

Friends of Friends

All Simple Paths

Simple paths means no loops allowed

Shortest Path

Cypher : Neo4j Query Language

ASCII ART FTW: a--b, a-->b, a<--c

Neoflix: Movie Recommender

http://neoflix.herokuapp.com/

http://getvouched.com

Neo4j and Heroku Challenge

http://neo4j-challenge.herokuapp.com/

Questions?

?

Thank you!http://maxdemarzi.com

top related