Date post: | 11-Apr-2017 |
Category: |
Technology |
Upload: | neo4j-the-fastest-and-most-scalable-native-graph-database |
View: | 58 times |
Download: | 0 times |
Selecting the right technologyand best practices with a focus on Graphdatabases
Dirk Möller
About me
• 20 years in software sales• 8 years OSS• 2012/13 Neo Technology• 2014 MongoDB• 2015/16 Couchbase• Oct 2016 Neo
The internet
DB landscape
Total DB market trend
OSS threatens to eat the DB market
What is NoSQL?
A NoSQL (originally referring to "non SQL", "non relational" or "not only SQL")[1] database provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases.
Wikipedia
What is NoSQL?
KV Store
Key-value (KV) stores use the associative array (also known as a map or dictionary) as their fundamental data model. In this model, data is represented as a collection of key-value pairs, such that each possible key appears at most once in the collection
Document Store
A document-oriented database, or document store, is a computer program designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data. ... XML databases are a subclass of document-oriented databases that are optimized to work with XML documents
Database Rel and NoSQL• Rel RDBMS
• Tabular, structured data• Highly transactional• Processing of simple lists• Fixed schema• Already in house (most of time)
• KV• Login use cases• High write throughput• Easy schema
• Document• Unstructured data• Lots of shattered data• Storing of such data
• Graph – more a category of it’s own• Highly connected data• Very dynamic data such as hierarchies and networks• Transactional• Structured data• Knowledge vs pure storing
Graphdatabases
Neo4j Competitive Posture6x More Popular than Runner Up
Our leadership position is strong:• Native Graph• Most mature• Most customer successes• Technical strengths (perf & trust)• Largest community• Graph leadership (e.g. openCypher)• Most contributors• Strong financial backing
18 Source: DB-Engines Popularity Index, January 2016
Industry’s Largest Dedicated Investment in Graphs
Features (20%)
Neo4j
Infrastructure (80%)
“The Other Guys”
Small handful of engineers working on
graphs
Compared to Neo4j, compromises:1) Reliability2) Depth of graph features
• 130+ employees• $80M+ funding• 40+ Full-Time
Product Engineers (growing to 60+ in 2017)
• Nearly a decade of product maturity & use
100% dedicated to graphs
* Monash Research http://www.dbms2.com/2013/03/18/dbms-development-marklogic-hadoop/
Time to Build Graph API
Fast PerformanceConnected Queries in Real Time
ReliabilityData Trustworthiness
Native GraphFull Stack
5 to 7+ years* ✔ ✔ ✔
Graph on RDBMS
3 to 5years ✔ Underlying DBMS 1000 times
slower for key operations ✔
Graph onother NOSQL
3 to 5years ✔ Underlying DBMS lacks semantic
and architecture for connecting data“Eventually consistent"
leads to "eventually corrupt"
A Native Graph Database is Uniquely Valuable…and Not Easily Replicable
The Cardinal Rules of DBMS Development*:
Why Graphdatabases
Traditional Approach: Tables
The Whiteboard Model Is the Physical Model
A Naturally Adaptive Model
Flexibility
Graph Based Success
Discrete DataMinimally
connected data
Neo4j is designed for data relationships
Other NoSQL
Relational DBMS Neo4j Graph DB
Connected DataFocused on
Data Relationships
Development BenefitsEasy model maintenance
Easy query
Deployment BenefitsUltra high performanceMinimal resource usage
Use the Right Database for the Right Job
Relational DBs Can’t Handle Relationships Well
• Cannot model or store data and relationships without complexity
• Performance degrades with number and levels of relationships, and database size
• Query complexity grows with need for JOINs• Adding new types of data and relationships
requires schema redesign, increasing time to market
… making traditional databases inappropriate when data relationships are valuable in real-time
Slow developmentPoor performance
Low scalabilityHard to maintain
Relational Versus Graph Models
Relational Model Graph Model
KNOWS
KNOWS
KNOWS
ANDREAS
TOBIAS
MICA
DELIA
Person FriendPerson-Friend
ANDREASDELIA
TOBIAS
MICA
NoSQL Databases Don’t Handle Relationships
• No data structures to model or store relationships
• No query constructs to support data relationships
• Relating data requires “JOIN logic” in the application
• No ACID support for transactions
… making NoSQL databases inappropriate when data relationships are valuable in real-time
Unlocking Value from Your Data Relationships
• Model your data as a graph of data and relationships
• Use relationship information in real-time to transform your business
• Add new relationships on the fly to adapt to your changing business
The Whiteboard Model Is the Physical Model
Neo4j – Re-Imagine Your Data as a Graph
Neo4j is an enterprise-grade graph database that enables you to:• Model and store your data as a graph• Query data relationships with ease
and in real-time• Seamlessly evolve applications to
support new requirements by adding new kinds of data and relationships Agile development
High performanceVertical and horizontal scaleSeamless evolution
Real-World Neo4j Business Benefits
New Competitiveness• New, unique functionality• New insights into data
Better Software• Better code quality• Less complexity• More maintainable
Using the right tool for the job has profound effects on your business
User Success• Faster app performance• Better user experience• Improved user productivity
Project Success• Faster time to market• Lower costs
Neo4j creates a connected data imperative
Value from Data RelationshipsCommon Use Cases
Internal ApplicationsMaster Data Management
Network and IT Operations
Fraud Detection
Customer-Facing ApplicationsReal-Time Recommendations
Graph-Based SearchIdentity and
Access Management
Quick Start: Plan Your Project
1
2
3
4
5
6
7
8
Learn Neo4j
Decide on Architecture
Import and Model Data
Build Application
Test Application
Deploy your appin as little as 8 weeks
PROFESSIONAL SERVICES PLAN
8WEEKS
There Are Lots of Ways to Easily Learn Neo4j
• NEO4J• MYTHS AND FACTS
“Neo4j only makes sense for special use cases like social networks”
“Is Neo4j really enterprise ready?”
“Neo4j only has nodes and relationships, is this really sufficient for a complex business application?”
“Users always work with graphs?”
“Is this database fast enough?”
• NEO4J• SIX ARGUMENTS FOR NEO4J
Much easier mapping of business domain model to the graph database Business understands the graph model
Hierarchical structures easy to query Less queries, less development, faster and cheaper results
Full scalability (embedded to cluster) Automated testing, supporting libraries
Integrated Lucene full text search engine Full text search as part of the Cypher query
Extension architecture Amazing performant results
SummaryOnly Neo4j Unlocks the Value in Your Data Relationships
Data is increasing in volume…• New digital processes• More online transactions• New social networks• More devices
… and is getting more connectedCustomers, products, processes, devices interact and relate to each other