Neo4j

advertisement
Neo4j
Adam Foust
Road Map
•
•
•
•
•
Introduction to Neo4j
NoSQL databases
Graph databases
How Neo4j works
Comparison
Introducing Neo4j
•
•
•
•
Introduced in 2010
Open source
Java-based
NoSQL Graph Database
NoSQL databases
• Four classes of NoSQL databases
– Key-value store
• Amazon’s Simple DB
– Column-family or big table databases
• Google’s Big Table
• Apache Cassandra database
– Document-oriented
• MongoDB
– Graph Databases
• Neo4j
Graph Database
• Neo4j is a graph database
• Database full of linked nodes
• Stores data as nodes and relationships
Graph Database (cont.)
• Nodes represent entities
• Edges represent relationships
•
•
•
•
Connections between data are explored
Faster for associative data sets
Intuitive
Optimal for searching social network data
How Neo4j Works
Storing Objects
• Domain objects take a node
• Jo4neo framework 
public class Person {
//used by jo4neo
transient Nodeid node;
//simple property
@neo String firstName;
//helps you store a java.util.Date
to neo4j
@neo Date date;
// jo4neo will index for you
@neo(index=true) String email;
// many to many relation
@neo Collection<role> roles;
/* normal class oriented
* programming stuff goes here
*/
}</role>
How Neo4j Works (cont.)
Dealing with complexity
• Simple domains can be complex
• Mutual Friend example
Case Study
• A side by side comparison of a
relational database and Neo4j
• Artificially generated graph
dataset with natural statistics
• 1 million vertices and 4
million edges
Case Study Results
• First 250 vertices used as roots
Result Conclusion
• Neo4j proved to take less than half the time of
the SQL database.
• Neo4j is optimal
Conclusion
•
•
•
•
•
Introduced Neo4j
Discussed NoSQL databases
Went over graph databases
How Neo4j works
Case study
Questions?
References
•
•
•
•
•
•
•
•
•
•
•
"Ayende @ Rahien." That No SQL Thing: Column (Family) Databases -. N.p., n.d. Web. 13 Mar. 2013.
<http://ayende.com/blog/4500/that-no-sql-thing-column-family-databases>.
WebsiteLinkTagsEditDelete
"Graph Database." Wikipedia. Wikimedia Foundation, 03 June 2013. Web. 13 Mar. 2013.
<http://en.wikipedia.org/wiki/Graph_database>.
WebsiteLinkTagsEditDelete
Krill, Paul. "Neo Technology Execs: How Neo4j Beat Oracle Database." InfoWorld. N.p., n.d. Web. 13
Mar. 2013. <http://www.infoworld.com/d/big-data/neo-technology-execs-how-neo4j-beat-oracledatabase-212106>.
WebsiteLinkTagsEditDelete
"MySQL vs. Neo4j on a Large-Scale Graph Traversal." Javalobby. N.p., 12 May 2011. Web. 13 Mar.
2013. <http://java.dzone.com/articles/mysql-vs-neo4j-large-scale>.
WebsiteLinkTagsEditDelete
"Neo4j Blog." : The Top 10 Ways to Get to Know Neo4j. N.p., n.d. Web. 13 Mar. 2013.
<http://blog.neo4j.org/2010/02/top-10-ways-to-get-to-know-neo4j.html>.
WebsiteLinkTagsEditDelete
"Processing MongoDB for and Open-Data Portal, MongoDB Emerges as NoSQL Leader." Magazine
for Software Developers Programmers and Designers Software Developers Journal. N.p., n.d. Web.
13 Mar. 2013. <http://sdjournal.org/mongodb-sdj-0512/>.
Applause
Download