graph databases introduction to rug-b

20
Graph Databases Pere Urbon-Bayes Software Engineer Moviepilot GmbH Berlin [email protected]

Upload: pere-urbon-bayes

Post on 27-Jan-2015

112 views

Category:

Technology


3 download

DESCRIPTION

Presentation done to the ruby user group from berlin about graphdbs

TRANSCRIPT

Graph Databases

Pere Urbon-BayesSoftware EngineerMoviepilot GmbH

Berlin

[email protected]

Graph Databases

● Graph ● Databases● Use cases● Vendors● Examples

Graph Databases

Graph G(V,E) where V = {V1, V2, ..., VN} and E = {E1, E2, ... , EN}

● Directed, Undirected● Mixed● Multigraph● Weighted● ....

EN = (VN, VM)

Graph Databases

Tots els camins porten a Roma

Alle Wege führen nach Rom

Graph Databases

{

'Implementations' : {

'matrix' : [ 'adjacency', 'incidence' ],

'list' : [ 'adjacency', 'incidence' ],

.....

}

Graph Databases

{ A : {

out: [B,C],in: [C],

}

B : {out : [C]

}

C : { in : [A]}

}

{vertex : [A, B, C, D]edges : {

[A,B],[B,C],[D,A],[C,A]

}}

A

C

B

Graph DatabasesThe property graph

Abstraction layerNodesEdges

Properties on both

Adam Balduim played in Full Metal Jacket

Actor

name = Adam Balduim

Movie

title = Full Metal Jacket

played

Graph Databases

A graph database is a database that uses graph structures with nodes, edges, and properties to

represent and store information.

General graph databases that can store any graph are distinct from specialized graph

databases such as triple stores and network databases.

[wikipedia.org]

Graph Databases

GraphDB Vendors Overview!GraphDB Vendors Overview!

Graph DatabasesVendors

Neo4J (neo4j.org)

Embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables.Dual-Licensed AGPL and Commercial.High Availability, scalability, concurrent,etc.

Graph DatabasesVendors

OrientDB

An embedded pure java fast, transactional, scalable document-graph storage engine.Schema free, ACID, suport for SQL and JSON.Apache License 2.0

More info: http://www.orientechnologies.com/

Graph DatabaseVendors

● Dex: The high performance graph database.● HyperGraphDB: An IA and semantic web

graph database.● Infogrid: The Internet Graph database. ● Sones: SaaS dot Net Graph database. ● VertexDB: High performance database server.

Graph DatabaseGraph processing frameworks

● Phoebus : Pregel implementation in Erlang.

● Pregel : Google graph processing platform.

● Trinity : Microsoft C# future graph platform.

● Apache Hama: Distributed computing over graphs.

Graph DatabaseGraph APIs

● Blueprints: A Java api for the property graph.● Gremlin: A graph query language.● Pipes: A graph processing framework.● Rexter: A REST server used to access

graphdbs.

Graph Databases

● Use cases

Graph DatabaseUse cases

● Task planning.● Scheduling● Process assignation● Routing● Logistics● League planning

Graph DatabaseUse cases

● Clustering● Social analysis● Hubs● Graph mining● Centrality measures● Location based services

Graph DatabaseUse cases

● Recommendation● Heuristics● Local

– Shortest Paths– Hammock functions.– Walks– Search algorithms, like A*– Shooting stars– K-nearest neighbors

Graph DatabaseUse cases

● Semantic web.● RDF (OWL) store● RDF-Sail● SPARQL

● Linked data● Link analysis● Structure mining

Graph Database

Neo4j.rb Neo4j using JRuby