Upload
neo4j-the-fastest-and-most-scalable-native-graph-database
View
134
Download
0
Embed Size (px)
Citation preview
roadmap• where we are (mostly)
• imprisoned data
• a little history
• labeled property graph model
• connected data
• using a whiteboard
http://flickr.com/photos/23465812@N00/7898643042 by davecito, CC BY
Neo Technology, Inc Confidentialhttp://flickr.com/photos/keepingtime_ca/8490224742 by keepingtime_ca, CC BY
Neo Technology, Inc ConfidentialBy AgnosticPreachersKid (Own work) [CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
“There is a significant downside - the whole approach works really well when data access is aligned with the aggregates, but what if you want to look at the data in a different way? Order entry naturally stores orders as
aggregates, but analyzing product sales cuts across the aggregate structure. The advantage of not using an aggregate structure in the
database is that it allows you to slice and dice your data different ways for different audiences.
This is why aggregate-oriented stores talk so much about map-reduce.”
– Martin Fowler, http://martinfowler.com/bliki/AggregateOrientedDatabase.html
Neo Technology, Inc Confidentialhttp://flickr.com/photos/wwworks/5319295174 by woodleywonderworks, CC BY
http://flickr.com/photos/samchurchill/8022804713 by Sam Churchill, CC BY
By Euan Richard (Own work) [CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
Customers AccountsCustomer_Accounts
964 725
964 981
326 $100
725 $632
981 $212
143 Alice
964 Bob
143 725
143 326
name: Alice
bal: $100
bal: $632
bal: $212owns
owns
owns
Customer
Account
Account
Account
964 Bob
Customerowns
Relationships
Nodes
Labeled Property Graph Model
• Nodes with optional labels and optional properties
• Named, directed Relationships with optional properties
(Relationships have exactly one start and one end node, which may be the same node)
MATCH (customer)-‐[:BOUGHT]-‐>()-‐[:IN*]-‐>(:Category {name:'Baby'}),
(customer)-‐[:BOUGHT]-‐>()-‐[:IN*]-‐>(:Category {name:'Beer'})
WHERE NOT (customer)-‐[:BOUGHT]-‐>()-‐[:IN*]-‐>(:Category {name:'Console'})
RETURN customer
What’s Neo4j good for?• Recommendations
• Meta-index/360 degree view
• Social networks
• Content Management
• MDM / System-of-Record
• Financial Audit / Modeling / Fraud
• Business intelligence
• Data centre management
• Supply chain/provenance
• Product Catalogue
• Web of things
• Time series/event data
• Web analytics, user journeys
• Scientific computing
• Spatial
• Geo/Seismic/Meteorological
• Bio/Pharma
• And much, much more…
Resources• Graph Databases Book (O’Reilly)
• Full, free eBook available: http://graphdatabases.com
• Learning Neo4j Book (Packt)
• Full, free eBook available: http://neo4j.com/book-learning-neo4j/
• Free online training:
• http://www.neo4j.org/learn/online_course