Date post: | 16-Apr-2017 |
Category: |
Data & Analytics |
Upload: | jexp |
View: | 6 times |
Download: | 1 times |
Graphs & Neo4jPast - Present - Future
Meetup Sept 27, Stockholm - NetEnt
Michael HungerCaretaker General Neo4j Community
(Michael)*[:WORKS_FOR]*>(Neo4j)
[email protected] |?@mesirii?|?github.com/jexp?|?jexp.de/blog
Michael?Hunger??* Caretaker?General?@Neo4j
KNOWS
KN
OW
S
NAME: ANNAGE: 32
SINCE: 2012
KNOWS
NODE
PROPERTY
RELATIONSHIPS
KNOWS
KNOWS
KN
OW
S
NAME: EVEAGE: 32
SINCE: 2012
KNOWS
SELL
VIEWS
SELL
PRICE:10$PALO ALTO
PRICE:5$OAKLAND
SELL
15 years later…
“Graph analysis is the true killer app for Big Data.”
“Forrester estimates that over 25% of enterprises will be using graph
databases by 2017.”
Today It Is An Industry
“Graph analysis is possibly the single most effective competitive differentiator for organizations pursuing data-driven operations and decisions after the design of data capture.”
“By the end of 2018, 70% of leading organizations will have one or more pilot or proof-of-concept efforts underway utilizing graph databases.”
Today It Is An Industry
Neo4j Adoption by Selected VerticalsSOFTWARE FINANCIAL
SERVICES RETAIL MEDIA & OTHER SOCIAL NETWORKS TELECOM HEALTHCARE
How did we get here?
Let‘s build a,1. database
2. query language3. billion $,companyhow hard can it be?
Our Founders
Our Culture
Be Open Listen!
Foster Community & Collaboration
Appreciate Empower Support
Make it easy
Graph&Query&Language:&Cypher
(jan:Person {,name:“Jan”},) 3[:LOVES]3>,(anne:Person {,name:“Anne”},)
LOVESJan Anne
NODE NODE
LABEL PROPERTYLABEL PROPERTY
MATCH
MATCH&(boss)%[:MANAGES*0..3]%>(sub),(sub)%[:MANAGES*1..3]%>(report)
WHERE&boss.name?=?“John?Doe”RETURN sub.name AS Subordinate,?count(report)?AS Total
Find%all%reports%and%how%many%people%they%manage,%up%to%3%levels%down
Cypher'Query
SQL'Query
THE IMPACT OF GRAPHSHow Graphs Are Changing The World
#1
GRAPHS FOR GOOD
Biggest Leak in History
Panama Papers
Offshore Leaks Database
Snowden – NSA
WikiLeaks Cablegate
Pentagon Papers
0 5M 10MDocuments Leaked
Unraveling the Cancer Code with Graphs
#2
DISRUPTION WITH GRAPHS
Anybody with an idea and a purpose,can now use a technology that is powerful enough to change an industry
273
#3
BETTER BUSINESS WITH GRAPHS
Real-Time Recommendations
Fraud Detection
Network & IT Operations
Master Data Management
Graph-Based Search
Identity & Access Management
Sustainable Competitive Advantage With Graphs
WHAT’S NEXT?Building The Graph Database For The Future
What Users Love about Neo4j
Design
Whiteboard friendliness
Develop Deploy
Great query language
Native graph performance
What Users Want More Of
Design
Whiteboard friendliness
Develop Deploy
Great query language
Native graph performance
ProductivityDeveloper graph
applications faster
ScaleDesign bigger and faster graph apps
OperationsDeploy graph applications
anywhere easily
Productivity
2016 - : 3.x — Official Language Drivers
0.x — Embedded Java API2000 - 2010:
2.x — Cypher2014 - 2015:2010 - 2014: 1.x — REST
Example - Java with Neo4j 2.xOfficial Language Drivers
Official Language Drivers
Driver driver = GraphDatabase.driver( "bolt://localhost" );try ( Session session = driver.session() ) {
StatementResult result = session.run("MATCH (u:User) RETURN u.name");}
WithJava
WithJavaScript
var driver = Graph.Database.driver("bolt://localhost");var session = driver.session();var result = session.run("MATCH (u:User) RETURN u.name");
Official Language Drivers
WithPython
driver = Graph.Database.driver("bolt://localhost")session = driver.session()result = session.run("MATCH (u:User) RETURN u.name")
Official Language Drivers
Official Language Drivers
using (var driver = GraphDatabase.Driver("bolt://localhost"))using (var session = driver.Session()){
var result = session.Run("MATCH (u:User) RETURN u.name");}
With.NET
JavaScript Java .NET Python CommunityDrivers
Drivers
Bolt
PHP, Go, Elixir, Ruby
Neo4j OGM Spring Data Neo4j 4
Browser.Next
Spark DriverJDBC Driver
Enabling:
User Defined Procedures
Neo4jExecu+onEngineJavaStoredProcedure
Applica+ons
Bolt
Java Stored Procedure
@Procedure public Stream<StringResult> uuid() { return Stream.of(new StringResult(UUID.randomUUID().toString())); }
@Procedure public Stream<StringResult> uuid() { return Stream.of(new StringResult(UUID.randomUUID().toString())); }
Cypher
Java Stored Procedure
RDF / Linked Data Parallelization
Meta Data Utilities
Data Integration
Date & Time
Graph Algorithms
Enabling:
Spatial
Operations
Official Docker Image
Ease of:
Testing Provisioning
Scaling Extending
Using
Enabling:
Configuration Log Files
Startup Behavior Directory Structure
Consistency
Scale
Scalability Performance
The Inherent Tension Between Scalability And Performance
Unlimited Size Graphs
Huge Networks of: People
Devices Software
Genes & Proteins Behaviors
Documents
Enabling:
Drivers
User Defined Procedures
Unlimited Size Graphs
Future These are my personal predictions
- Stay Tuned -
Core-Edge Clustering
Enterprise Grade Security
User Defined Functions
3.1beta
Large Scale Clusters Basis for Sharding Spark Co-Location
Compute Instances Auto-Scaling
Core Edge
LDAP Active Directory
default roles fine grained roles
procedure security
later: Kerberos
data level security
Security
data conversion date & time
json data structures
business rules decomposition
User Defined Functions
Graph Compute, Cypher on X
Sharding
Compiled Runtime
3.2
4.0
Connected Age
Age of Graphs and Graph Databases
Thank You
Questions? ;-) Ask Me Anything