Graphdatenbanken mit Neo4j

70
© All Rights Reserved 2013 | Neo Technology, Inc. Graphdatenbanken mit Neo4j Modell - Einsatz - Abfrage mit Cypher - Use-Cases - 2.0 Stefan Plantikow Freitag, 30. August 13

description

Folien zum Vortrag "Graphdatenbanken mit Neo4j" von Stefan Platikow vor der Java Usergroup Berlin-Brandenburg am 20. August 2013.

Transcript of Graphdatenbanken mit Neo4j

Page 1: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphdatenbanken mit Neo4j

Modell - Einsatz - Abfrage mit Cypher - Use-Cases - 2.0

Stefan Plantikow

Freitag, 30. August 13

Page 2: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Guten Tag

• Entwickler bei neo technology

• Kernel und Abfragesprache

• Neo4j 1.9

• Neo4j 2.0-M04

@bogglegithub.com/[email protected]

Freitag, 30. August 13

Page 3: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Trends

• Big Data

„data sets so large and complex that it becomes difficult to process using on-hand database management tools“

• Grösser

• Vernetzter

• Vielfältiger

Freitag, 30. August 13

Page 4: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

NoSQL

Komplexität Grösse

Key-Value-Store Gering Gross

Column-Store Mittel Mittel bis gross

Document-Store Mittel Mittel

Graphdatenbank Sehr hoch Mittel

Freitag, 30. August 13

Page 5: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

NoSQLComplexity

ColumnFamily

Size

Key-ValueStore

DocumentDatabases

GraphDatabases

90%ofusecases

RDBMS

Freitag, 30. August 13

Page 6: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphs != Charts

Graph DB Kenntnisse

Kennen Graph DBs

Kennen keineGraph DBs Charts != Graphs

Freitag, 30. August 13

Page 7: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Gerichteter Graph

me

Freitag, 30. August 13

Page 8: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Beispielgraphen

diamond butterfly bullstar

franklin horton hall-jankorobertson

Freitag, 30. August 13

Page 9: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Beispielgraphen

Freitag, 30. August 13

Page 10: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphen

• Knoten („Dinge“)

• Kanten/Relationships („Beziehungen“, oft gerichtet)

• Mathematik: Multigraphen, Hypergraphen, Probabilistische Graphen, ...

• Graphdatenbanken: Property Graphs (Gerichteter Multigraph mit Properties)

• Key-Value Properties: Name, Letzter Login, Anzahl Posts, ...

• Label: Person, Artikel, Vorgang, ...

• Indices: Exakt nach Namen, Volltext nach Beschreibung, ...

2.0

Freitag, 30. August 13

Page 11: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Property Graphs

name:Stefan

id: @gmail

title:Cloud Atlas

type:Book

:ORDEREDcopies: 5

when: 2012

name:Chris

id: @gmail

:FRIENDsince: 2013

title:Cloud Atlas

type:Movie

:BROWSEDtimes: 100

Freitag, 30. August 13

Page 12: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

name:Stefan

id: @gmail

title:Cloud Atlas

type:Book

:ORDEREDcopies: 5

when: 2012

name:Chris

id: @gmail

:FRIENDsince: 2013

title:Cloud Atlas

type:Movie

:BROWSEDtimes: 100

Labeled Property Graphs

Customer

Customer

Article

Article

TopHit

High Volume

2.0

Freitag, 30. August 13

Page 13: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Beispielanfrage

• Für einen Nutzer mit dem Namen „Stefan“,

finde alle Artikel die sich seine Freunde mindestens 4x angesehen haben und

liefere sie nach Häufigkeit sortiert zurück.

• Ausgehend von Knoten und Kanten im Graph

Finde Muster im Graph und

berechne daraus das Ergebnis

Freitag, 30. August 13

Page 14: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Beispielanfrage

• START n=node(*)MATCH (n {name: „Stefan“),MATCH (n)-[:FRIEND]->(f),

(f)-[r:VIEWED]->(a) WHERE r.browsed >= 4

RETURN a ORDER BY r.browsed

• Ausgehend von Knoten und Kanten im Graph

Finde Muster im Graph und

berechne daraus das Ergebnis

Freitag, 30. August 13

Page 15: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Beispielanfrage: Indexe, Muster, Ergebnis

• Wie kommt man „in den Graph“?

• Knoten- bzw. Kanten-Id

• Indexe:Exakt, Volltext, Geospatial, Custom

• Muster

• Einschränkungen an Knoten und Kantenund ihre Verbindungen

• Ergebnis

• Sortieren

• Aggregieren

• Filtern & Umwandeln

Freitag, 30. August 13

Page 16: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Vorteile von Graphen

• Natürliches und mächtiges Datenmodell

• Schnelles, problemfreies Object Mapping

• Strukturelle Abfragen sind einfach

• Beziehungen sind Modellelement 1. Klasse (nicht: implizite Joins)

• Erweiterbares einheitliches Modell für alle Daten

• Neue Properties

• Beziehungen zwischen vorher unverbundenen Daten

• Erfordert Umdenken!Freitag, 30. August 13

Page 17: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Typische Anwendungen

• Social Networks & Recommendations

• Geospatial

• Infrastructure as a Service

• Business Intelligence

• Content Management

• Access Control

• Bioinformatics

• Genealogie

• Telco

• Finance

• ...

(Fast) Alles ;) aber insbesondere:

Freitag, 30. August 13

Page 18: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Modellierung

• Von der Domäne zum Graph

• Von der (relationalen) Anwendung zum Graph

• Vergleich relationales Modellieren mit Modellierung im Graph

• How-to-Model

Freitag, 30. August 13

Page 19: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling

Am Anfang ist das Whiteboard

Freitag, 30. August 13

Page 20: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling

• Vom Use-Case zum Datenbankschema

Freitag, 30. August 13

Page 21: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling (1)

name:Adam

image:lolcat1.gif name:

Sarah

:SHARES :FRIEND_OF

:LIKES

text:Funny!

:COMMENTED:ABOUT

Freitag, 30. August 13

Page 22: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling (2)

name:Adam

id: adam@

image:lolcat1.gifdownloads:5.000.000

name:Sarah

:SHARES :FRIEND_OFsince: 1995

:LIKES

text:Funny!source:mobile

:COMMENTEDwhen: 2013:ABOUT

Freitag, 30. August 13

Page 23: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling (3)

name:Adam

id: adam@

text:Look at this!

on:Mar-2013

name:Sarah

:SHARED:FRIEND_OFsince: 1995

:LIKES

text:Funny!source:mobile

:COMMENTEDwhen: 2013

:ABOUT

image:lolcat1.gifdownloads:5.000.000

Freitag, 30. August 13

Page 24: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Whiteboard Modelling (4)

name:Adam

id: adam@

text:Look at this!

on:Mar-2013

name:Sarah

:SHARED:FRIEND_OFsince: 1995

:LIKES

text:Funny!source:mobile

:COMMENTEDwhen: 2013

:ABOUT

image:lolcat1.gifdownloads:5.000.000

2.0

User

User

Post

CommentPost

FileResource

Freitag, 30. August 13

Page 25: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphen aus Relationen (1)

Customers AccountsCustomer_Accounts

143 Alice326 $100

725 $632

981 $212

143 981

143 725

143 326

Freitag, 30. August 13

Page 26: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphen aus Relationen (2)

Alice$100

$632

$212

143 326

725

981

143 981

143 725

143 326

Freitag, 30. August 13

Page 27: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphen aus Relationen (3)

name: Alice

bal: $100

bal: $212

Nodes

Relationships

owns

owns

owns

Freitag, 30. August 13

Page 28: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

What language do they speak here?

Language Country

Freitag, 30. August 13

Page 29: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

What language do they speak here?

Language Country

Freitag, 30. August 13

Page 30: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Tables (1)

language_code

language_name

word_count

Language

country_code

country_name

flag_uri

language_code

Country

Freitag, 30. August 13

Page 31: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Tables (2)

language_code

language_name

word_count

country_code

Language

country_code

country_name

flag_uri

Country

Freitag, 30. August 13

Page 32: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Tables (3)

language_code

language_name

word_count

Language

country_code

country_name

flag_uri

Countrylanguage_code

country_code

LanguageCountry

Freitag, 30. August 13

Page 33: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Tables (4)

language_code

language_name

word_count

Language

country_code

country_name

flag_uri

Countrylanguage_code

country_code

primary

LanguageCountry

Freitag, 30. August 13

Page 34: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Graphs (1)

name

word_count

Language

name

flag_uri

Country

IS_SPOKEN_IN

Freitag, 30. August 13

Page 35: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Languages in Graphs (2)

name

word_count

Language

name

flag_uri

Country

IS_SPOKEN_INas_primary

Freitag, 30. August 13

Page 36: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Unterschied: Languages in Tabellen vs. Graphs

language_code

language_name

word_count

Language

country_code

country_name

flag_uri

Countrylanguage_code

country_code

primary

LanguageCountryIS_SPOKEN_IN

Freitag, 30. August 13

Page 37: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

How To Model

• Normalisierung: Erst in einem Knoten sammeln - dann Aufteilen

• ggf. Kanten einfügen um Relevantes zu verbinden

• ggf. Properties in Kanten wandeln und umgekehrt

• Unverbundene Knoten vermeiden

• Zusätzliche Zugriffspfade anlegen, z.B.

• zeitlich sortierte Linked List für Posts

• „Abkürzungen“

Freitag, 30. August 13

Page 38: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphdatenbanken

• NoSQL Datenbank

• Speichert Property Graph Modell

• zusätzliche Indexe

• ggf. Label

• Performance Definition: Bei steigender Knotenanzahl selber Aufwand für einen „Schritt“ im Graphen(in-memory)

Freitag, 30. August 13

Page 39: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphdatenbanken

• Performance Definition: Bei steigender Knotenanzahl selber Aufwand für einen „Schritt“ im Graphen(in-memory)

• Social Graph mit 50 „Freunden“ pro Nutzer im Durchschnitte

• Suche nach Freunden 4. Grades nach Datenbank-Warmup

DB # Nutzer ZeitRelational 1.000 2000 ms

Neo4j 1.000 2 msNeo4j 1.000.000 2 ms

Freitag, 30. August 13

Page 40: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Neo4j

• Dual-Licensed: Open Source (AGPL) / Kommerziell

• Transaktional (ACID)

• Read-Committed(Serializable durch explizites Locking)

• Server mit Web-UI

• High Availability (Online Backup, Replikation)

• Tooling: Shell, Backup, ...

• Umfangreiche Community & Kommerzieller Support

Freitag, 30. August 13

Page 41: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Neo4j Browser

Nach Installation: http://localhost:7474

Freitag, 30. August 13

Page 42: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Neo4j Console

Freitag, 30. August 13

Page 43: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Online Demo: console.neo4j.org

Ausprobieren:start  n=node(*)  match  n-­‐[r:LOVES]-­‐>m  return  n,  type(r),  m(rote  Knoten  sind  Ergebnisknoten)

Freitag, 30. August 13

Page 44: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Neo4j

• Dual-Licensed: Open Source (AGPL) / Kommerziell

• Transaktional (ACID)

• Read-Committed(Serializable durch explizites Locking)

• Server mit Web-UI

• High Availability

• Tooling: Shell, Backup, Monitoring (JMX), ...

Freitag, 30. August 13

Page 45: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Neo4j Implementation

• Kernel: JavaWeb-UI: Javascript

• kaum Dependencies

• kernel.jar: 2MB

• DirectByteBuffer

• GC-resistent custom caches

• Anfragesprache Cypher: Scala 2.10

• Runtime mit Kernel integriert

Freitag, 30. August 13

Page 46: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Einsatz

• Anfragesprache Cypher

• Embedded Database: Java Core API

• Eingebettet in Application Containeroder eigene Middleware

• Server: REST API

• Custom Server Extensions

Freitag, 30. August 13

Page 47: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Schnittstellen

• Neo4j

• Java Core API

• REST API

• Graph Frameworks

• Spring Data Graph

• Blueprints Neo4j

• Third Party Language Drivers

• JDBCS

• Ruby

• Javascript

• .NET

• Clojure

• Python...

Freitag, 30. August 13

Page 48: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Java Core API Operationen

• Transaktionen

• Knoten und Kanten anlegen

• Index Lookup

• Traversierung

• GlobalGraphOperations (alle Knoten etc.)

• Zusätzliche APIs: A*, Custom Traversers, Batch Insertion, Transaction Handler

Freitag, 30. August 13

Page 49: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Java Core API: Knoten und Kanten einfügen

• GraphDatabaseService = new EmbeddedGraphDatabase( "var/graphDb" );Transaction tx = gds.beginTransaction();{ Node stefan = db.createLabeledNode( label(„Person“) ); stefan.setProperty( „name“, „Stefan“ );

Node chris = db.createNode( label(„Person“) ); chris.setProperty( „name“, „Chris“ );

stefan.createRelationshipTo( chris, withName(„FRIEND“) ); tx.success();} finally { tx.finish();}

2.0

Freitag, 30. August 13

Page 50: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Java Core API: Kanten traversieren

• GraphDatabaseService = new EmbeddedGraphDatabase( "var/graphDb" );Transaction tx = gds.beginTransaction();{ Node stefan = gds.findNodesByLabelAndProperty( label(„Person“), „Stefan“ ); for ( Relationship rel : stefan.getRelationships( withName(„FRIEND“) ) ) { result.add( rel.getProperty(„name“) ); } tx.success();} finally { tx.finish();}

2.0

Freitag, 30. August 13

Page 51: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

REST API

• Core API Operationen via REST / JSON

• Cypher-Anfragen via REST, in 2.0 auch Transaktionen

• Beispiel: Knoten anlegen

curl -XPOST http://localhost:7474/db/data/node -d ,{ „name“: „Stefan“ }‘

• Beispiel: Cypher ausführen

curl -XPOST http://localhost:7474/db/data/cypher -d „Cypher-Query“

Freitag, 30. August 13

Page 52: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher

• Neo4j‘s

• Deklarative

• Graph

• Anfragesprache

• Wie SQL ... nur für Graphen!

Freitag, 30. August 13

Page 53: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher: Basic Example

// get node with id 0start a=node(0) return a// traverse from node 1start a=node(1) match (a)-->(b) return b// return friends of friendsstart a=node(1) match (a)--()--(c) return c

• Deklarative Anfragesprache für Graphdatenbanken mit „SQL-Klausel-Syntax“

• Visuelles Graph Pattern-Matching um zu beschreiben, was man benötigt

• Ergebnis in Tabellenform

Freitag, 30. August 13

Page 54: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher: Friends of a friend that ...

// traverse to find resultsstart n=node:People(name = „Andreas“)match (n)--(f)--(foaf) return foaf

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

n

Freitag, 30. August 13

Page 55: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher: Filtern und Sortieren

// lookup all nodes as 'n', constrained to name 'Stefan'start n=node(*) where n.name='Stefan' return n// filter nodes where age is less than 30start n=node(*) where n.age<30 return n// filter and aggregation using a regular expressionstart n=node(*) where n.name =~ “Mat.*“ return count(n)// find nodes with a property and return first 3 foundstart n=node(*) where has(n.name) return n limit 3

• Filtern mit Prädikaten in WHERE-Klausel

• Aggregation, Sortieren, Begrenzen

Freitag, 30. August 13

Page 56: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher: Änderungen an der Datenbanke

// create nodecreate (a {name : 'Andres'})// create relationshipcreate (a {name : 'Andres'})-[:knows]->(b {name: 'Stefan'})// match and updatestart n=node(*) where n.age = 34 set n.age = 35// find node and delete itstart n=node(*) where n.name = 'Dr. Evil' delete n

• Hinzfügen von Knoten und Kanten

• Aktualisieren von Knoten und Kanten

• Löschen von Knoten und Kanten

Freitag, 30. August 13

Page 57: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Cypher: Viel Mehr

• Shortest Path und Umgang mit Pfadmengen

• Funktionale Techniken: Flat, Map, etc.

• Optionale Muster

• Anfragen kombinieren

• Profiling

• ...

Freitag, 30. August 13

Page 58: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Use-Cases

• Social Networks & Recommendations

• Geospatial

• Infrastructure as a Service

• Business Intelligence

• Content Management

• Access Control

• Bioinformatics

• Genealogie

• Telco

• Finance

• ...

Freitag, 30. August 13

Page 59: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Use Case: Social Collaboration

• Online Platform für globale Kollaboration

• Datacenter pro Kontinent

• Hochverfürbar, weltweit

• <1s Antwortzeit für grosse, stark vernetzte Datenmenge

Asia North America Europe

Asia North America Europe

Freitag, 30. August 13

Page 60: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Use Case: Social Recommendation

• Social Network mit 35.000.000 Nutzern

• Recommendations

• Problem:

• MySQL didn‘t scale

• Batch job >1d, >2d, ...

• Ziel:Up-to-date Recommendations

• Keine Batch-Jobs

• Lösung

• Real-Time Recommendations

• 8 Wochen

• Skaliert

Freitag, 30. August 13

Page 61: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Configuration and Network Management

Freitag, 30. August 13

Page 62: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Use-Case: Configuration and Network Management

• Physikalisches und logisches Netzwerk modellieren

• Impaktanalyse

• Konfigurationsmanagement

• Network Inventory

Freitag, 30. August 13

Page 63: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Geospatial

Freitag, 30. August 13

Page 64: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Use-Case:ACL from Hell

• Utility Company

• > 5.000.000 Nutzer

• Komplexe Regen

• Vorteile

• Flexible dynamisch erweiterbare Architekur

• Geringe Kosten

• Hohe Performance

Freitag, 30. August 13

Page 65: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Ausblick auf Neo4j 2.0

• Labels

• Unique Constraints

• Neues Index-Handling

• Cypher-Erweiterungen

• ...

Freitag, 30. August 13

Page 66: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Learn More

http://stackoverflow.com/questions/tagged/neo4j

http://groups.google.com/group/neo4j

https://github.com/neo4j/neo4j/issues

Freitag, 30. August 13

Page 67: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Learn More

http://neo4j.meetup.com/

http://www.neo4j.org/participate/

Freitag, 30. August 13

Page 68: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Learn More

http://neo4j.org

Freitag, 30. August 13

Page 69: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Vielen Dank

Fragen?

Freitag, 30. August 13

Page 70: Graphdatenbanken mit Neo4j

© All Rights Reserved 2013 | Neo Technology, Inc.

Graphs are everywhere

Freitag, 30. August 13