SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
git clone https://github.com/LateralThoughts/hands-on-neo4j.git
Pré-requis du jour / RAPPEL
SUPPORT TESTNG IDE
Page de réclame
@fbiville @ogirardot
@LateraIThoughts
mailto:contact@lateral-thoughts.com
Agenda
Conférence
Octobre / http://tinyurl.com/soft-shake-neo4j
Formation
Novembre / http://tinyurl.com/humancoders-neo4j
BBL : où tu veux quand tu veux !
http://www.brownbaglunch.fr/baggers.html#Florent_Biville
Neo4J : mais qu’est-ce que c’est ?
Base de donnée orientée… (vieux barbus n’est pas une bonne réponse)
Base de données orientée graphe !
Flock DB
Graphe ?
des noeuds des relations
Graphe ?
Base de données graphe ?
Base de données graphe ?
Au programme : BIRGGIT !
Au programme : BIRGGIT !
Le 1er gestionnaire de versions sans contenu !
Au programme : BIRGGIT !
Opérations possibles (à la fin de ce hands-on)
● birggit init
● birggit commit
● birggit log
● birggit gc
Exercices
test-driven !
Exercice 1
APIs unitaires : création de noeuds/relations
// création d’un noeud avec label
Node monNoeud = graphDB.createNode(
DynamicLabel.label("SUPER_LABEL")
);
monNoeud.setProperty("hello", "world");
// création d’une relation
Relationship love = monAutreNoeud.createRelationshipTo(
monNoeud,
DynamicRelationshipType.withName("IS_IN_LOVE_WITH")
);
love.setProperty("start", new Date());
Exercice 2
Indexation “legacy”
// retrieve the index manager
IndexManager index = graphDb.index()
// get or create index for nodes
Index<Node> actors = index.forNodes(“mes_noeuds_cheris”)
// or..
index.forRelationshipd(“mes_relations___”)
// then add :
Node reeves = graphDb.createNode();
reeves.setProperty( "name", "Keanu Reeves" );
actors.add( reeves, "name", reeves.getProperty( "name" ));
Exercice 3
BFS DFS
Exercice 3
Exercice 3
// first the import !
import org.neo4j.kernel.Traversal;
// then the real work, with a simple traversal
Node startNode = …
for( Path position : Traversal.description()
.depthFirst() // or not
.evaluator(Traversal.toDepth(...))
.relationships(...)
.traverse(startNode)) { … }
Exercice 4
Pattern matching sur graphe
Exercice 4
Pattern matching sur graphe
Exercice 4
Pattern matching sur graphe - illustration
Exercice 4
Pattern matching sur graphe - illustration
Exercice 4
Pattern matching sur graphe - illustration
Exercice 4
Pattern matching sur graphe - illustration
Exercice 4
Pattern matching sur graphe - syntaxe
Cypher
()-->()
Exercice 4
Pattern matching sur graphe - syntaxe
Cypher
(A)-->(B)
Exercice 4
Pattern matching sur graphe - syntaxe
Cypher
(A)-[:LOVES]->(B)
LOVES
Exercice 4
Pattern matching sur graphe - syntaxe
Cypher
(C)<--(A)-->(B)-->(C)
A-->B-->C,A-->C
Exercice 4
Cypher - lecture
START <lookup>
MATCH <pattern>
RETURN <expression>
MATCH (stephan:DEVOXXIAN)-[:IS_FRIEND_WITH]->(friend:DEVOXXIAN),
(friend)-[:HAS_ATTENDED]->(conf:CONFERENCE)
WHERE conf.name = "Devoxx"
RETURN stephan, COLLECT(friend)
Exercice 4
Cypher - écriture
MATCH <expression>
CREATE <node/rel>
RETURN <expression>
MATCH a:Person, b:Person
WHERE a.name = 'Someone' AND b.name = 'Anyone'
CREATE a-[rel:HATES]->b
RETURN rel
Conclusion
Conclusion
Beaucoup d’autres choses !
● plus de Cypher (avec indexing)
● REST (unmanaged extensions, streaming)
● visualisation
○ auto : http://linkurio.us/, Neoclipse, Gephi
○ custom : d3.js, sigma.js…
● NeoAAS : http://www.graphenedb.com/, Heroku
● divers : backup, batch-import, http://gist.neo4j.org/
Conclusion
Expérimenter
http://console.neo4j.org
Discuter
https://groups.google.com/forum/#!forum/neo4jfr
Partager
http://www.meetup.com/graphdb-france/
Merci / auf wiedersehen !
@fbiville @ogirardot
@LateraIThoughts
mailto:contact@lateral-thoughts.com

Contenu connexe

Similaire à Hands on Neo4J - Duchess France/Zenexity - 25/09/2013

Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation GroovyJS Bournival
 
Finalement, c’est quoi un système distribué ?
Finalement, c’est quoi un système distribué ?Finalement, c’est quoi un système distribué ?
Finalement, c’est quoi un système distribué ?Guillaume Arnaud
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1Gilles Guirand
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalDuchess France
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalagnes_crepet
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
Enib cours c.a.i. web - séance #5 - groovy
Enib   cours c.a.i. web - séance #5 - groovyEnib   cours c.a.i. web - séance #5 - groovy
Enib cours c.a.i. web - séance #5 - groovyHoracio Gonzalez
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyAlexandru Radovici
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleAlexandru Radovici
 
Make (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressMake (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressGuillaume Richard
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5julien pauli
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsantony_guilloteau
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 

Similaire à Hands on Neo4J - Duchess France/Zenexity - 25/09/2013 (20)

Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Finalement, c’est quoi un système distribué ?
Finalement, c’est quoi un système distribué ?Finalement, c’est quoi un système distribué ?
Finalement, c’est quoi un système distribué ?
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
ALF 11 - WebAssembly
ALF 11 - WebAssemblyALF 11 - WebAssembly
ALF 11 - WebAssembly
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
Enib cours c.a.i. web - séance #5 - groovy
Enib   cours c.a.i. web - séance #5 - groovyEnib   cours c.a.i. web - séance #5 - groovy
Enib cours c.a.i. web - séance #5 - groovy
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssembly
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlle
 
Make (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressMake (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpress
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
Git merge-rebase
Git merge-rebaseGit merge-rebase
Git merge-rebase
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 

Hands on Neo4J - Duchess France/Zenexity - 25/09/2013