133
Introduction to Graph Databases 1 @peterneubauer #neo4j Thursday, April 19, 12

Intro to Neo4j or why insurances should love graphs

Embed Size (px)

DESCRIPTION

This talk covers a basic intro of graphs, NOSQL and graph databases, followed b a number of domain examples and case studies, and a section on how graph databases can be interesting in the domain of insurance companies.

Citation preview

Page 1: Intro to Neo4j or why insurances should love graphs

Introduction to Graph Databases

1

@peterneubauer #neo4j

Thursday, April 19, 12

Page 2: Intro to Neo4j or why insurances should love graphs

What’s the plan?

2

Thursday, April 19, 12

Page 3: Intro to Neo4j or why insurances should love graphs

What’s the plan?

๏Why a graph?

2

Thursday, April 19, 12

Page 4: Intro to Neo4j or why insurances should love graphs

What’s the plan?

๏Why a graph?

๏Graph Database 101

2

Thursday, April 19, 12

Page 5: Intro to Neo4j or why insurances should love graphs

What’s the plan?

๏Why a graph?

๏Graph Database 101

๏a look at Neo4j

2

Thursday, April 19, 12

Page 6: Intro to Neo4j or why insurances should love graphs

What’s the plan?

๏Why a graph?

๏Graph Database 101

๏a look at Neo4j

๏the Real World

2

Thursday, April 19, 12

Page 7: Intro to Neo4j or why insurances should love graphs

Why a graph?

3

Thursday, April 19, 12

Page 8: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

4

Thursday, April 19, 12

Page 9: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

4

๏Recommendations

๏Business intelligence

๏Social computing

๏Geospatial

๏MDM

๏Systems management

๏Genealogy

A: highly connected data

Thursday, April 19, 12

Page 10: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

4

๏Recommendations

๏Business intelligence

๏Social computing

๏Geospatial

๏MDM

๏Systems management

๏Genealogy

A: highly connected data

• Real Use Cases:

• [A] ACL from Hell

• [B] Timely recommendations

• [C] Global collaboration

Thursday, April 19, 12

Page 11: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

Thursday, April 19, 12

Page 12: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

Thursday, April 19, 12

Page 13: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

Thursday, April 19, 12

Page 14: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

Thursday, April 19, 12

Page 15: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

• for example, text documents to html

Thursday, April 19, 12

Page 16: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

• for example, text documents to html

๏3. semi-structured data

Thursday, April 19, 12

Page 17: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

• for example, text documents to html

๏3. semi-structured data

• individualization of data, with common sub-set

Thursday, April 19, 12

Page 18: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

• for example, text documents to html

๏3. semi-structured data

• individualization of data, with common sub-set

๏4. architecture - a facade over multiple services

Thursday, April 19, 12

Page 19: Intro to Neo4j or why insurances should love graphs

Trends in BigData & NOSQL

5

๏1. increasing data size (big data)

• “Every 2 days we create as much information as we did up to 2003” - Eric Schmidt

๏2. increasingly connected data (graph data)

• for example, text documents to html

๏3. semi-structured data

• individualization of data, with common sub-set

๏4. architecture - a facade over multiple services

• from monolithic to modular, distributed applications

Thursday, April 19, 12

Page 20: Intro to Neo4j or why insurances should love graphs

4 Categories of NOSQL

6

Thursday, April 19, 12

Page 21: Intro to Neo4j or why insurances should love graphs

Key-Value Category๏“Dynamo: Amazon’s Highly Available Key-Value Store” (2007)

๏Data model:

•Global key-value mapping

•Big scalable HashMap

•Highly fault tolerant (typically)

๏Examples:

•Riak, Redis, Voldemort

7

Thursday, April 19, 12

Page 22: Intro to Neo4j or why insurances should love graphs

Key-Value: Pros & Cons๏Strengths

• Simple data model

•Great at scaling out horizontally

• Scalable

•Available

๏Weaknesses:

• Simplistic data model

• Poor for complex data

8

Thursday, April 19, 12

Page 23: Intro to Neo4j or why insurances should love graphs

Column-Family Category๏Google’s “Bigtable: A Distributed Storage System for Structured

Data” (2006)

•Column-Family are essentially Big Table clones

๏Data model:

•A big table, with column families

•Map-reduce for querying/processing

๏Examples:

•HBase, HyperTable, Cassandra

9

Thursday, April 19, 12

Page 24: Intro to Neo4j or why insurances should love graphs

Column-Family: Pros & Cons๏Strengths

•Data model supports semi-structured data

•Naturally indexed (columns)

•Good at scaling out horizontally

๏Weaknesses:

•Unsuited for interconnected data

10

Thursday, April 19, 12

Page 25: Intro to Neo4j or why insurances should love graphs

Document Database Category๏Data model

•Collections of documents

•A document is a key-value collection

• Index-centric, lots of map-reduce

๏Examples

•CouchDB, MongoDB

11

Thursday, April 19, 12

Page 26: Intro to Neo4j or why insurances should love graphs

Document Database: Pros & Cons๏Strengths

• Simple, powerful data model (just like SVN!)

•Good scaling (especially if sharding supported)

๏Weaknesses:

•Unsuited for interconnected data

•Query model limited to keys (and indexes)

•Map reduce for larger queries

12

Thursday, April 19, 12

Page 27: Intro to Neo4j or why insurances should love graphs

Graph Database Category๏Data model:

•Nodes & Relationships

•Hypergraph, sometimes (edges with multiple endpoints)

๏Examples:

•Neo4j (of course), OrientDB, InfiniteGraph, AllegroGraph

13

Thursday, April 19, 12

Page 28: Intro to Neo4j or why insurances should love graphs

14

Living in a NOSQL WorldCo

mpl

exity

Size

Thursday, April 19, 12

Page 29: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

Size

Thursday, April 19, 12

Page 30: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

Size

Key-ValueStore

Thursday, April 19, 12

Page 31: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

ColumnFamily

Size

Key-ValueStore

Thursday, April 19, 12

Page 32: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

ColumnFamily

Size

Key-ValueStore

DocumentDatabases

Thursday, April 19, 12

Page 33: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

ColumnFamily

Size

Key-ValueStore

DocumentDatabases

GraphDatabases

Thursday, April 19, 12

Page 34: Intro to Neo4j or why insurances should love graphs

RDBMS

14

Living in a NOSQL WorldCo

mpl

exity

ColumnFamily

Size

Key-ValueStore

DocumentDatabases

GraphDatabases

90%of

usecases

Thursday, April 19, 12

Page 35: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons

15

Thursday, April 19, 12

Page 36: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

15

Thursday, April 19, 12

Page 37: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

15

Thursday, April 19, 12

Page 38: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

15

Thursday, April 19, 12

Page 39: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

15

Thursday, April 19, 12

Page 40: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

๏Weaknesses:

15

Thursday, April 19, 12

Page 41: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

๏Weaknesses:

• Sharding (though they can scale reasonably well)

15

Thursday, April 19, 12

Page 42: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

๏Weaknesses:

• Sharding (though they can scale reasonably well)

‣also, stay tuned for developments here

15

Thursday, April 19, 12

Page 43: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

๏Weaknesses:

• Sharding (though they can scale reasonably well)

‣also, stay tuned for developments here

•Requires conceptual shift

15

Thursday, April 19, 12

Page 44: Intro to Neo4j or why insurances should love graphs

Graph Database: Pros & Cons๏Strengths

• Powerful data model, as general as RDBMS

• Fast, for connected data

• Easy to query

๏Weaknesses:

• Sharding (though they can scale reasonably well)

‣also, stay tuned for developments here

•Requires conceptual shift

‣though graph-like thinking becomes addictive

15

Thursday, April 19, 12

Page 45: Intro to Neo4j or why insurances should love graphs

Graph DB 101

16

Thursday, April 19, 12

Page 46: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphsThursday, April 19, 12

Page 47: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond

Thursday, April 19, 12

Page 48: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly

Thursday, April 19, 12

Page 49: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly star

Thursday, April 19, 12

Page 50: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly bullstar

Thursday, April 19, 12

Page 51: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly bullstar

franklin

Thursday, April 19, 12

Page 52: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly bullstar

franklin robertson

Thursday, April 19, 12

Page 53: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly bullstar

franklin hortonrobertson

Thursday, April 19, 12

Page 54: Intro to Neo4j or why insurances should love graphs

Some well-known named graphs

17see http://en.wikipedia.org/wiki/Gallery_of_named_graphs

diamond butterfly bullstar

franklin horton hall-jankorobertson

Thursday, April 19, 12

Page 55: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

18

Thursday, April 19, 12

Page 56: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

18

Thursday, April 19, 12

Page 57: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

18

Thursday, April 19, 12

Page 58: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

18

Thursday, April 19, 12

Page 59: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

18

Thursday, April 19, 12

Page 60: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

18

Thursday, April 19, 12

Page 61: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

๏Properties

18

Thursday, April 19, 12

Page 62: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

๏Properties

18

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Thursday, April 19, 12

Page 63: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

๏Properties

18

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Thursday, April 19, 12

Page 64: Intro to Neo4j or why insurances should love graphs

We’re talking about a Property Graph

๏Nodes

๏Relationships

๏Properties

18

+ Indexes

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Thursday, April 19, 12

Page 65: Intro to Neo4j or why insurances should love graphs

Compared to RDBMS

19

becomes

Thursday, April 19, 12

Page 66: Intro to Neo4j or why insurances should love graphs

A look at Graph Queries

20

Thursday, April 19, 12

Page 67: Intro to Neo4j or why insurances should love graphs

Query a graph with a traversal

21

Thursday, April 19, 12

Page 68: Intro to Neo4j or why insurances should love graphs

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Query a graph with a traversal

21

Thursday, April 19, 12

Page 69: Intro to Neo4j or why insurances should love graphs

// lookup starting point in an indexstart n=node:node_auto_index(name = ‘Andreas’)

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Query a graph with a traversal

21

n

Thursday, April 19, 12

Page 70: Intro to Neo4j or why insurances should love graphs

// lookup starting point in an indexstart n=node:node_auto_index(name = ‘Andreas’)// then traverse to find resultsstart n=node:People(name = ‘Andreas’)match (n)--()--(foaf) return foaf

name:Andreasjob: talking

name: Tobiasjob: coding

knowssince: 2008

knowssince: 2006

name: Peterjob: building

name: Emiljob: plumber

knowssince: 1992

name: Stephenjob: DJ

knowssince: 2002

knowssince: 2006

name: Deliajob: barking

knowssince: 2002

knowssince: 1998

name: Tiberiusjob: dancer

knowssince: 2000

name: Allisonjob: plumberknows

since: 2002

knowssince: 1998

knowssince: 1996

Query a graph with a traversal

21

n

Thursday, April 19, 12

Page 71: Intro to Neo4j or why insurances should love graphs

22

Cypher

Thursday, April 19, 12

Page 72: Intro to Neo4j or why insurances should love graphs

22

Cypher๏a pattern-matching query language

๏declarative grammar with clauses (like SQL)

๏aggregation, ordering, limits

๏tabular results

Thursday, April 19, 12

Page 73: Intro to Neo4j or why insurances should love graphs

22

Cypher๏a pattern-matching query language

๏declarative grammar with clauses (like SQL)

๏aggregation, ordering, limits

๏tabular results

// get node with id 0start a=node(0) return a// traverse from node 1start a=node(1) match (a)-->(b) return b// return friends of friendsstart a=node(1) match (a)--()--(c) return c

Thursday, April 19, 12

Page 74: Intro to Neo4j or why insurances should love graphs

Neo4j - the Graph Database

23

Thursday, April 19, 12

Page 75: Intro to Neo4j or why insurances should love graphs

Background of Neo4j๏ 2001 - Windh Technologies, a media asset management company

• CTO Peter with Emil, Johan prototyped a proper graph interface

• first SQL-backed, then revised as a full-stack implementation

• (just like Amazon-Dynamo, Facebook-Cassandra)

๏ 2003 Neo4j went into 24/7 production

๏ 2006-2007 - Neo4j was spun off as an open source project

๏ 2009 seed funding for the company

๏ 2010 Neo4j Server was created (previously only an embedded DB)

๏ 2011 Fully funded silicon valley start-up - Neo Technology

24

Thursday, April 19, 12

Page 76: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database

25

Thursday, April 19, 12

Page 77: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

25

Thursday, April 19, 12

Page 78: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

25

Thursday, April 19, 12

Page 79: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

25

Thursday, April 19, 12

Page 80: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

๏A Graph Database:

25

Thursday, April 19, 12

Page 81: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

๏A Graph Database:

• reliable with real ACID Transactions

25

Thursday, April 19, 12

Page 82: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

๏A Graph Database:

• reliable with real ACID Transactions

• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties

25

Thursday, April 19, 12

Page 83: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

๏A Graph Database:

• reliable with real ACID Transactions

• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties

• Server with REST API, or Embeddable on the JVM

25

Thursday, April 19, 12

Page 84: Intro to Neo4j or why insurances should love graphs

Neo4j is a Graph Database๏A Graph Database:

• a Property Graph with Nodes, Relationships

and Properties on both

• perfect for complex, highly connected data

๏A Graph Database:

• reliable with real ACID Transactions

• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties

• Server with REST API, or Embeddable on the JVM

•high-performance with High-Availability (read scaling)25

Thursday, April 19, 12

Page 85: Intro to Neo4j or why insurances should love graphs

the Real World

26

Thursday, April 19, 12

Page 86: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

27

Thursday, April 19, 12

Page 87: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

27

๏Recommendations

๏Business intelligence

๏Social computing

๏Geospatial

๏MDM

๏Systems management

๏Genealogy

A: highly connected data

Thursday, April 19, 12

Page 88: Intro to Neo4j or why insurances should love graphs

Q: What are graphs good for?

27

๏Recommendations

๏Business intelligence

๏Social computing

๏Geospatial

๏MDM

๏Systems management

๏Genealogy

A: highly connected data

• Real Use Cases:

• [A] ACL from Hell

• [B] Timely recommendations

• [C] Global collaboration

Thursday, April 19, 12

Page 89: Intro to Neo4j or why insurances should love graphs

[A] ACL from Hell

28

Thursday, April 19, 12

Page 90: Intro to Neo4j or why insurances should love graphs

[A] ACL from Hell๏ Customer: leading consumer utility company with tons

and tons of users

๏ Goal: comprehensive access control administration for customers

๏ Benefits:

• Flexible and dynamic architecture

• Exceptional performance

• Extensible data model supports new applications and features

• Low cost

28

Thursday, April 19, 12

Page 91: Intro to Neo4j or why insurances should love graphs

[A] ACL from Hell๏ Customer: leading consumer utility company with tons

and tons of users

๏ Goal: comprehensive access control administration for customers

๏ Benefits:

• Flexible and dynamic architecture

• Exceptional performance

• Extensible data model supports new applications and features

• Low cost

28

• A Reliable access control administration system for

5 million customers, subscriptions and agreements

• Complex dependencies between groups, companies, individuals, accounts, products, subscriptions, services and agreements

• Broad and deep graphs (master customers with 1000s of customers, subscriptions & agreements)

Thursday, April 19, 12

Page 92: Intro to Neo4j or why insurances should love graphs

[A] ACL from Hell๏ Customer: leading consumer utility company with tons

and tons of users

๏ Goal: comprehensive access control administration for customers

๏ Benefits:

• Flexible and dynamic architecture

• Exceptional performance

• Extensible data model supports new applications and features

• Low cost

28

• A Reliable access control administration system for

5 million customers, subscriptions and agreements

• Complex dependencies between groups, companies, individuals, accounts, products, subscriptions, services and agreements

• Broad and deep graphs (master customers with 1000s of customers, subscriptions & agreements)

name: Andreas

subscription: sports

service: NFL

account: 9758352794

agreement: ultimate

owns

subscribes to

has plan

includes

provides group: graphistas

promotion: fall

member of

offered

discounts

company: Neo Technologyworks with

gets discount on

subscription: local

subscribes to

provides service: Ravens

includes

Thursday, April 19, 12

Page 93: Intro to Neo4j or why insurances should love graphs

[A] ACL from Hell

29

Thursday, April 19, 12

Page 94: Intro to Neo4j or why insurances should love graphs

[B] Timely Recommendations

30

Thursday, April 19, 12

Page 95: Intro to Neo4j or why insurances should love graphs

[B] Timely Recommendations๏ Customer: a professional social network

• 35 millions users, adding 30,000+ each day

๏ Goal: up-to-date recommendations

• Scalable solution with real-time end-user experience

• Low maintenance and reliable architecture

• 8-week implementation

30

Thursday, April 19, 12

Page 96: Intro to Neo4j or why insurances should love graphs

[B] Timely Recommendations๏ Customer: a professional social network

• 35 millions users, adding 30,000+ each day

๏ Goal: up-to-date recommendations

• Scalable solution with real-time end-user experience

• Low maintenance and reliable architecture

• 8-week implementation

30

๏ Problem:

• Real-time recommendation imperative to attract new users and maintain positive user retention

• Clustered MySQL solution not scalable or fast enough to support real-time requirements

๏ Upgrade from running a batch job

• initial hour-long batch job

• but then success happened, and it became a day

• then two days

๏ With Neo4j, real time recommendations

Thursday, April 19, 12

Page 97: Intro to Neo4j or why insurances should love graphs

[B] Timely Recommendations๏ Customer: a professional social network

• 35 millions users, adding 30,000+ each day

๏ Goal: up-to-date recommendations

• Scalable solution with real-time end-user experience

• Low maintenance and reliable architecture

• 8-week implementation

30

๏ Problem:

• Real-time recommendation imperative to attract new users and maintain positive user retention

• Clustered MySQL solution not scalable or fast enough to support real-time requirements

๏ Upgrade from running a batch job

• initial hour-long batch job

• but then success happened, and it became a day

• then two days

๏ With Neo4j, real time recommendationsname:Andreasjob: talking

name: Allisonjob: plumber

name: Tobiasjob: coding

knows

knows

name: Peterjob: building

name: Emiljob: plumber

knows

name: Stephenjob: DJ

knows

knows

name: Deliajob: barking

knows

knows

name: Tiberiusjob: dancer

knows

knows

knows

knows

Thursday, April 19, 12

Page 98: Intro to Neo4j or why insurances should love graphs

[C] Collaboration on Global Scale

31

Thursday, April 19, 12

Page 99: Intro to Neo4j or why insurances should love graphs

[C] Collaboration on Global Scale๏ Customer: a worldwide software leader

• highly collaborative end-users

๏ Goal: offer an online platform for global collaboration

• Highly flexible data analysis

• Sub-second results for large, densely-connected data

• User experience - competitive advantage

31

Thursday, April 19, 12

Page 100: Intro to Neo4j or why insurances should love graphs

[C] Collaboration on Global Scale๏ Customer: a worldwide software leader

• highly collaborative end-users

๏ Goal: offer an online platform for global collaboration

• Highly flexible data analysis

• Sub-second results for large, densely-connected data

• User experience - competitive advantage

31

• Massive amounts of data tied to members, user groups, member content, etc. all interconnected

• Infer collaborative relationships through user-generated content

• Worldwide Availability

Thursday, April 19, 12

Page 101: Intro to Neo4j or why insurances should love graphs

[C] Collaboration on Global Scale๏ Customer: a worldwide software leader

• highly collaborative end-users

๏ Goal: offer an online platform for global collaboration

• Highly flexible data analysis

• Sub-second results for large, densely-connected data

• User experience - competitive advantage

31

• Massive amounts of data tied to members, user groups, member content, etc. all interconnected

• Infer collaborative relationships through user-generated content

• Worldwide Availability

Asia North America Europe

Thursday, April 19, 12

Page 102: Intro to Neo4j or why insurances should love graphs

[C] Collaboration on Global Scale๏ Customer: a worldwide software leader

• highly collaborative end-users

๏ Goal: offer an online platform for global collaboration

• Highly flexible data analysis

• Sub-second results for large, densely-connected data

• User experience - competitive advantage

31

• Massive amounts of data tied to members, user groups, member content, etc. all interconnected

• Infer collaborative relationships through user-generated content

• Worldwide Availability

Asia North America Europe

Asia North America Europe

Thursday, April 19, 12

Page 103: Intro to Neo4j or why insurances should love graphs

Insurance <3 Graphs?

32

Thursday, April 19, 12

Page 104: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

Thursday, April 19, 12

Page 105: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

A: because you have connected data.

Thursday, April 19, 12

Page 106: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

๏CRM, BI, social graphs

A: because you have connected data.

Thursday, April 19, 12

Page 107: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

๏CRM, BI, social graphs

๏GeoSpatial analytics

A: because you have connected data.

Thursday, April 19, 12

Page 108: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

๏CRM, BI, social graphs

๏GeoSpatial analytics

๏Fraud detection

A: because you have connected data.

Thursday, April 19, 12

Page 109: Intro to Neo4j or why insurances should love graphs

Q: Why should you care?

33

๏CRM, BI, social graphs

๏GeoSpatial analytics

๏Fraud detection

๏Network management

A: because you have connected data.

Thursday, April 19, 12

Page 110: Intro to Neo4j or why insurances should love graphs

A sample insurance domain setup

34

Thursday, April 19, 12

Page 111: Intro to Neo4j or why insurances should love graphs

A sample insurance domain setup

34

Home

Building A

sub_product

Coverage: Super

covered_by

Coverage: Fire

sub_cover

Size: 120m2

attribute

Risk: Building small

risk_has_attrcovers_risk

Quote: C12

includes

Customer: C12

is_offered

Policy: C12

is_offered

Agreement: C12

signed

User: U34

owns

based_on

contains

made

Questionaire: Q1

concerns

contains_question

owns

fills_in

includes

made

T&C: X

has

Thursday, April 19, 12

Page 112: Intro to Neo4j or why insurances should love graphs

Recommendations, BI, Social Computing

35

Thursday, April 19, 12

Page 113: Intro to Neo4j or why insurances should love graphs

Recommendations, BI, Social Computing

35

๏enrich your CRM with data from Facebook, Google, Twitter etc

Thursday, April 19, 12

Page 114: Intro to Neo4j or why insurances should love graphs

Recommendations, BI, Social Computing

35

๏enrich your CRM with data from Facebook, Google, Twitter etc

๏Recommender systems for products

Thursday, April 19, 12

Page 115: Intro to Neo4j or why insurances should love graphs

Recommendations, BI, Social Computing

35

๏enrich your CRM with data from Facebook, Google, Twitter etc

๏Recommender systems for products

๏Find influencers in your customer base for special treatment

Thursday, April 19, 12

Page 116: Intro to Neo4j or why insurances should love graphs

This is what your CRM sees

36http://inmaps.linkedinlabs.com/network

Customer1

Peter Neubauer

Thursday, April 19, 12

Page 117: Intro to Neo4j or why insurances should love graphs

This is what your CRM doesn’t see.

37http://inmaps.linkedinlabs.com/networkThursday, April 19, 12

Page 118: Intro to Neo4j or why insurances should love graphs

This is what your CRM doesn’t see.

37http://inmaps.linkedinlabs.com/networkThursday, April 19, 12

Page 119: Intro to Neo4j or why insurances should love graphs

Geospatial features

38

Thursday, April 19, 12

Page 120: Intro to Neo4j or why insurances should love graphs

Geospatial features

38

๏Dynamic layers from different sources

Thursday, April 19, 12

Page 121: Intro to Neo4j or why insurances should love graphs

Geospatial features

38

๏Dynamic layers from different sources

• domain data -> flood area layer + crime index + firestation + living standard index

Thursday, April 19, 12

Page 122: Intro to Neo4j or why insurances should love graphs

Geospatial features

38

๏Dynamic layers from different sources

• domain data -> flood area layer + crime index + firestation + living standard index

๏routes of low insurance risks

Thursday, April 19, 12

Page 123: Intro to Neo4j or why insurances should love graphs

Geospatial features

39

Thursday, April 19, 12

Page 124: Intro to Neo4j or why insurances should love graphs

Geospatial features

40

Thursday, April 19, 12

Page 125: Intro to Neo4j or why insurances should love graphs

Geospatial features

41

Thursday, April 19, 12

Page 126: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

42

Thursday, April 19, 12

Page 127: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

42

๏Model physical and logical networks

Thursday, April 19, 12

Page 128: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

42

๏Model physical and logical networks

• impact analysis

Thursday, April 19, 12

Page 129: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

42

๏Model physical and logical networks

• impact analysis

• configuration management

Thursday, April 19, 12

Page 130: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

42

๏Model physical and logical networks

• impact analysis

• configuration management

• network inventory

Thursday, April 19, 12

Page 131: Intro to Neo4j or why insurances should love graphs

Configuration/Network Management

43

Thursday, April 19, 12

Page 132: Intro to Neo4j or why insurances should love graphs

44

Questions!

Thursday, April 19, 12

Page 133: Intro to Neo4j or why insurances should love graphs

45

and, Thanks :)

Thursday, April 19, 12