+ All Categories
Home > Data & Analytics > Graphs & Neo4j - Past Present Future

Graphs & Neo4j - Past Present Future

Date post: 16-Apr-2017
Category:
Upload: jexp
View: 6 times
Download: 1 times
Share this document with a friend
96
Graphs & Neo4j Past - Present - Future Meetup Sept 27, Stockholm - NetEnt
Transcript
Page 1: Graphs & Neo4j - Past Present Future

Graphs & Neo4jPast - Present - Future

Meetup Sept 27, Stockholm - NetEnt

Page 2: Graphs & Neo4j - Past Present Future

Michael HungerCaretaker General Neo4j Community

Page 3: Graphs & Neo4j - Past Present Future

(Michael)*[:WORKS_FOR]*>(Neo4j)

[email protected] |?@mesirii?|?github.com/jexp?|?jexp.de/blog

Michael?Hunger??* Caretaker?General?@Neo4j

Page 4: Graphs & Neo4j - Past Present Future
Page 5: Graphs & Neo4j - Past Present Future
Page 6: Graphs & Neo4j - Past Present Future
Page 7: Graphs & Neo4j - Past Present Future
Page 8: Graphs & Neo4j - Past Present Future

KNOWS

KN

OW

S

NAME: ANNAGE: 32

SINCE: 2012

KNOWS

NODE

PROPERTY

RELATIONSHIPS

Page 9: Graphs & Neo4j - Past Present Future

KNOWS

KNOWS

KN

OW

S

NAME: EVEAGE: 32

SINCE: 2012

KNOWS

SELL

VIEWS

SELL

PRICE:10$PALO ALTO

PRICE:5$OAKLAND

SELL

Page 10: Graphs & Neo4j - Past Present Future
Page 11: Graphs & Neo4j - Past Present Future
Page 12: Graphs & Neo4j - Past Present Future

15 years later…

Page 13: Graphs & Neo4j - Past Present Future

“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

Page 14: Graphs & Neo4j - Past Present Future

“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

Page 15: Graphs & Neo4j - Past Present Future

Neo4j Adoption by Selected VerticalsSOFTWARE FINANCIAL

SERVICES RETAIL MEDIA & OTHER SOCIAL NETWORKS TELECOM HEALTHCARE

Page 16: Graphs & Neo4j - Past Present Future
Page 17: Graphs & Neo4j - Past Present Future
Page 18: Graphs & Neo4j - Past Present Future
Page 19: Graphs & Neo4j - Past Present Future

How did we get here?

Page 20: Graphs & Neo4j - Past Present Future

Let‘s build a,1. database

2. query language3. billion $,companyhow hard can it be?

Page 21: Graphs & Neo4j - Past Present Future

Our Founders

Our Culture

Page 22: Graphs & Neo4j - Past Present Future
Page 23: Graphs & Neo4j - Past Present Future

Be Open Listen!

Page 24: Graphs & Neo4j - Past Present Future
Page 25: Graphs & Neo4j - Past Present Future
Page 26: Graphs & Neo4j - Past Present Future

Foster Community & Collaboration

Appreciate Empower Support

Page 27: Graphs & Neo4j - Past Present Future

Make it easy

Page 28: Graphs & Neo4j - Past Present Future
Page 29: Graphs & Neo4j - Past Present Future
Page 30: Graphs & Neo4j - Past Present Future
Page 31: Graphs & Neo4j - Past Present Future

Graph&Query&Language:&Cypher

(jan:Person {,name:“Jan”},) 3[:LOVES]3>,(anne:Person {,name:“Anne”},)

LOVESJan Anne

NODE NODE

LABEL PROPERTYLABEL PROPERTY

MATCH

Page 32: Graphs & Neo4j - Past Present Future

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

Page 33: Graphs & Neo4j - Past Present Future
Page 34: Graphs & Neo4j - Past Present Future

THE IMPACT OF GRAPHSHow Graphs Are Changing The World

Page 35: Graphs & Neo4j - Past Present Future

#1

GRAPHS FOR GOOD

Page 36: Graphs & Neo4j - Past Present Future
Page 37: Graphs & Neo4j - Past Present Future

Biggest Leak in History

Panama Papers

Offshore Leaks Database

Snowden – NSA

WikiLeaks Cablegate

Pentagon Papers

0 5M 10MDocuments Leaked

Page 38: Graphs & Neo4j - Past Present Future
Page 39: Graphs & Neo4j - Past Present Future
Page 40: Graphs & Neo4j - Past Present Future
Page 41: Graphs & Neo4j - Past Present Future

Unraveling the Cancer Code with Graphs

Page 42: Graphs & Neo4j - Past Present Future
Page 43: Graphs & Neo4j - Past Present Future
Page 44: Graphs & Neo4j - Past Present Future

#2

DISRUPTION WITH GRAPHS

Page 45: Graphs & Neo4j - Past Present Future

Anybody with an idea and a purpose,can now use a technology that is powerful enough to change an industry

Page 46: Graphs & Neo4j - Past Present Future

273

Page 47: Graphs & Neo4j - Past Present Future
Page 48: Graphs & Neo4j - Past Present Future
Page 49: Graphs & Neo4j - Past Present Future

#3

BETTER BUSINESS WITH GRAPHS

Page 50: Graphs & Neo4j - Past Present Future

Real-Time Recommendations

Fraud Detection

Network & IT Operations

Master Data Management

Graph-Based Search

Identity & Access Management

Sustainable Competitive Advantage With Graphs

Page 51: Graphs & Neo4j - Past Present Future

WHAT’S NEXT?Building The Graph Database For The Future

Page 52: Graphs & Neo4j - Past Present Future

What Users Love about Neo4j

Design

Whiteboard friendliness

Develop Deploy

Great query language

Native graph performance

Page 53: Graphs & Neo4j - Past Present Future

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

Page 54: Graphs & Neo4j - Past Present Future
Page 55: Graphs & Neo4j - Past Present Future

Productivity

Page 56: Graphs & Neo4j - Past Present Future
Page 57: Graphs & Neo4j - Past Present Future

2016 - : 3.x — Official Language Drivers

0.x — Embedded Java API2000 - 2010:

2.x — Cypher2014 - 2015:2010 - 2014: 1.x — REST

Page 58: Graphs & Neo4j - Past Present Future

Example - Java with Neo4j 2.xOfficial Language Drivers

Page 59: Graphs & Neo4j - Past Present Future

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

Page 60: Graphs & Neo4j - Past Present Future

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

Page 61: Graphs & Neo4j - Past Present Future

WithPython

driver = Graph.Database.driver("bolt://localhost")session = driver.session()result = session.run("MATCH (u:User) RETURN u.name")

Official Language Drivers

Page 62: Graphs & Neo4j - Past Present Future

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

Page 63: Graphs & Neo4j - Past Present Future

JavaScript Java .NET Python CommunityDrivers

Drivers

Bolt

PHP, Go, Elixir, Ruby

Page 64: Graphs & Neo4j - Past Present Future

Neo4j OGM Spring Data Neo4j 4

Browser.Next

Spark DriverJDBC Driver

Enabling:

Page 65: Graphs & Neo4j - Past Present Future

User Defined Procedures

Page 66: Graphs & Neo4j - Past Present Future

Neo4jExecu+onEngineJavaStoredProcedure

Applica+ons

Bolt

Page 67: Graphs & Neo4j - Past Present Future

Java Stored Procedure

@Procedure public Stream<StringResult> uuid() { return Stream.of(new StringResult(UUID.randomUUID().toString())); }

Page 68: Graphs & Neo4j - Past Present Future

@Procedure public Stream<StringResult> uuid() { return Stream.of(new StringResult(UUID.randomUUID().toString())); }

Cypher

Java Stored Procedure

Page 69: Graphs & Neo4j - Past Present Future
Page 70: Graphs & Neo4j - Past Present Future
Page 71: Graphs & Neo4j - Past Present Future
Page 72: Graphs & Neo4j - Past Present Future
Page 73: Graphs & Neo4j - Past Present Future

RDF / Linked Data Parallelization

Meta Data Utilities

Data Integration

Date & Time

Graph Algorithms

Enabling:

Spatial

Page 74: Graphs & Neo4j - Past Present Future

Operations

Page 75: Graphs & Neo4j - Past Present Future

Official Docker Image

Page 76: Graphs & Neo4j - Past Present Future

Ease of:

Testing Provisioning

Scaling Extending

Using

Enabling:

Page 77: Graphs & Neo4j - Past Present Future

Configuration Log Files

Startup Behavior Directory Structure

Consistency

Page 78: Graphs & Neo4j - Past Present Future

Scale

Page 79: Graphs & Neo4j - Past Present Future
Page 80: Graphs & Neo4j - Past Present Future

Scalability Performance

The Inherent Tension Between Scalability And Performance

Page 81: Graphs & Neo4j - Past Present Future

Unlimited Size Graphs

Page 82: Graphs & Neo4j - Past Present Future

Huge Networks of: People

Devices Software

Genes & Proteins Behaviors

Documents

Enabling:

Page 83: Graphs & Neo4j - Past Present Future

Drivers

User Defined Procedures

Unlimited Size Graphs

Page 84: Graphs & Neo4j - Past Present Future

Future These are my personal predictions

- Stay Tuned -

Page 85: Graphs & Neo4j - Past Present Future

Core-Edge Clustering

Enterprise Grade Security

User Defined Functions

3.1beta

Page 86: Graphs & Neo4j - Past Present Future

Large Scale Clusters Basis for Sharding Spark Co-Location

Compute Instances Auto-Scaling

Core Edge

Page 87: Graphs & Neo4j - Past Present Future

LDAP Active Directory

default roles fine grained roles

procedure security

later: Kerberos

data level security

Security

Page 88: Graphs & Neo4j - Past Present Future

data conversion date & time

json data structures

business rules decomposition

User Defined Functions

Page 89: Graphs & Neo4j - Past Present Future

Graph Compute, Cypher on X

Sharding

Compiled Runtime

3.2

4.0

Page 90: Graphs & Neo4j - Past Present Future

Connected Age

Page 91: Graphs & Neo4j - Past Present Future

Age of Graphs and Graph Databases

Page 92: Graphs & Neo4j - Past Present Future
Page 93: Graphs & Neo4j - Past Present Future

Thank You

Page 94: Graphs & Neo4j - Past Present Future

Questions? ;-) Ask Me Anything

Page 95: Graphs & Neo4j - Past Present Future
Page 96: Graphs & Neo4j - Past Present Future

Recommended