Graph All Teh Things!!!111 Graph Database Use Cases That Arent - - PowerPoint PPT Presentation

graph all teh things 111
SMART_READER_LITE
LIVE PREVIEW

Graph All Teh Things!!!111 Graph Database Use Cases That Arent - - PowerPoint PPT Presentation

Graph All Teh Things!!!111 Graph Database Use Cases That Arent Social GOTO Berlin, 2014 Emil Eifrem emil@neotechnology.com @emileifrem #neo4j Neo Technology, Inc Confidential Thursday, November 6, 14 1 Agenda 1. Context 2. Wait! What


slide-1
SLIDE 1

Neo Technology, Inc Confidential

Emil Eifrem emil@neotechnology.com @emileifrem #neo4j

Graph All Teh Things!!!111

Graph Database Use Cases That Aren’t Social GOTO Berlin, 2014

1 Thursday, November 6, 14

slide-2
SLIDE 2

Neo Technology, Inc Confidential

Agenda

  • 1. Context
  • 2. Wait! What Is A Graph Anyway?
  • 3. !Social Graph Use Cases

2 Thursday, November 6, 14

slide-3
SLIDE 3

Neo Technology, Inc Confidential

WARNING! ALL I’M OFFERING IS THE TRUTH

3 Thursday, November 6, 14

slide-4
SLIDE 4

Neo Technology, Inc Confidential

Victims

4 Thursday, November 6, 14

slide-5
SLIDE 5

Neo Technology, Inc Confidential

Victims

5 Thursday, November 6, 14

slide-6
SLIDE 6

Neo Technology, Inc Confidential

Context

6 Thursday, November 6, 14

slide-7
SLIDE 7

Neo Technology, Inc Confidential 7 Thursday, November 6, 14

slide-8
SLIDE 8

Neo Technology, Inc Confidential

Graphs Are Eating The World

8 Thursday, November 6, 14

slide-9
SLIDE 9

Neo Technology, Inc Confidential

C 34,3% B 38,4% A 3,3% D 3,8% 1,8% 1,8% 1,8% 1,8% 1,8% E 8,1% F 3,9%

9 Thursday, November 6, 14

slide-10
SLIDE 10

Neo Technology, Inc Confidential 10 Thursday, November 6, 14

slide-11
SLIDE 11

Neo Technology, Inc Confidential 11 Thursday, November 6, 14

slide-12
SLIDE 12

Neo Technology, Inc Confidential

Core industries & Use Cases WEB / ISV Financial Services Tele-communications Network & Data Center Management Master Data Management Social Geo

12 Thursday, November 6, 14

slide-13
SLIDE 13

Neo Technology, Inc Confidential

Core industries & Use Cases WEB / ISV Financial Services Tele-communications & Life Sciences Network & Data Center Management Master Data Management Social GEO

Finance

13 Thursday, November 6, 14

slide-14
SLIDE 14

Neo Technology, Inc Confidential

Graphs Are Growin’

Source: http://db-engines.com/en/ranking/graph+dbms!

14 Thursday, November 6, 14

slide-15
SLIDE 15

Neo Technology, Inc Confidential

0% 10% 20% 30% 2011 2014 2017

25% 2.5% 0%

% of Enterprises using Graph Databases

“Forrester estimates that over 25%

  • f enterprises will be using graph

databases by 2017”

Sources

  • Forrester TechRadar™: Enterprise DBMS, Feb 13 2014 (http://www.forrester.com/TechRadar+Enterprise

+DBMS+Q1+2014/fulltext/-/E-RES106801)

  • Dataversity Mar 31 2014: “Deconstructing NoSQL: Analysis of a 2013 Survey on the Use, Production and Assessment
  • f NoSQL

Technologies in the Enterprise” (http://www.dataversity.net)

  • Neo Technology customer base in 2011 and 2014
  • Estimation of other graph vendors’ customer base in 2011 and 2014 based on best available intelligence

“25% of survey respondents said they plan to use Graph databases in the future.”

Graph Databases In The Enterprise

15 Thursday, November 6, 14

slide-16
SLIDE 16

Neo Technology, Inc Confidential

What Is A Graph, Anyway?

16 Thursday, November 6, 14

slide-17
SLIDE 17

The Property Graph Model

17 Thursday, November 6, 14

slide-18
SLIDE 18

The Property Graph Model

Ann Loves Dan

18 Thursday, November 6, 14

slide-19
SLIDE 19

The Property Graph Model

Ann Dan Loves

19 Thursday, November 6, 14

slide-20
SLIDE 20

Ann Dan

The Property Graph Model

(Ann) –[:LOVES]-> (Dan) Loves

20 Thursday, November 6, 14

slide-21
SLIDE 21

Ann Dan

The Property Graph Model

Loves

(:Person {name:"Ann"}) –[:LOVES]-> (:Person {name:"Dan"})

21 Thursday, November 6, 14

slide-22
SLIDE 22

Ann Dan

The Property Graph Model

Loves

(:Person {name:"Ann"}) –[:LOVES]-> (:Person {name:"Dan"})

Node Relationship Node

22 Thursday, November 6, 14

slide-23
SLIDE 23

Cypher

Query: Whom does Ann love?

(:Person {name:"Ann"})–[:LOVES]->(whom)

23 Thursday, November 6, 14

slide-24
SLIDE 24

Cypher

Query: Whom does Ann love?

MATCH (:Person {name:"Ann"})–[:LOVES]->(whom)

24 Thursday, November 6, 14

slide-25
SLIDE 25

Cypher

Query: Whom does Ann love?

MATCH (:Person {name:"Ann"})–[:LOVES]->(whom) RETURN whom

25 Thursday, November 6, 14

slide-26
SLIDE 26

Neo Technology, Inc Confidential 26 Thursday, November 6, 14

slide-27
SLIDE 27

Neo Technology, Inc Confidential

MATCH (me:Person)-[:IS_FRIEND_OF]->(friend:Person), (friend)-[:LIKES]->(restaurant), (restaurant)-[:LOCATED_IN]->(newyork:City), (restaurant)-[:SERVES]->(sushi:Cuisine) WHERE me.name = 'Emil' AND newyork.location='New York' AND sushi.cuisine='Sushi' RETURN restaurant.name

http://maxdemarzi.com/?s=facebook

27 Thursday, November 6, 14

slide-28
SLIDE 28

*“Find all direct reports and how many they manage, up to 3 levels down”

Example HR Query (using SQL)

28 Thursday, November 6, 14

slide-29
SLIDE 29

*“Find all direct reports and how many they manage, up to 3 levels down”

(SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM ( SELECT manager.pid AS directReportees, 0 AS count FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") UNION SELECT manager.pid AS directReportees, count(manager.directly_manages) AS count FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees UNION SELECT manager.pid AS directReportees, count(reportee.directly_manages) AS count FROM person_reportee manager JOIN person_reportee reportee ON manager.directly_manages = reportee.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees UNION SELECT manager.pid AS directReportees, count(L2Reportees.directly_manages) AS count FROM person_reportee manager JOIN person_reportee L1Reportees ON manager.directly_manages = L1Reportees.pid JOIN person_reportee L2Reportees ON L1Reportees.directly_manages = L2Reportees.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees ) AS T GROUP BY directReportees) UNION (SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM ( SELECT manager.directly_manages AS directReportees, 0 AS count FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") UNION SELECT reportee.pid AS directReportees, count(reportee.directly_manages) AS count FROM person_reportee manager JOIN person_reportee reportee ON manager.directly_manages = reportee.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees UNION (continued from previous page...) SELECT depth1Reportees.pid AS directReportees, count(depth2Reportees.directly_manages) AS count FROM person_reportee manager JOIN person_reportee L1Reportees ON manager.directly_manages = L1Reportees.pid JOIN person_reportee L2Reportees ON L1Reportees.directly_manages = L2Reportees.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees ) AS T GROUP BY directReportees) UNION (SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM( SELECT reportee.directly_manages AS directReportees, 0 AS count FROM person_reportee manager JOIN person_reportee reportee ON manager.directly_manages = reportee.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees UNION SELECT L2Reportees.pid AS directReportees, count(L2Reportees.directly_manages) AS count FROM person_reportee manager JOIN person_reportee L1Reportees ON manager.directly_manages = L1Reportees.pid JOIN person_reportee L2Reportees ON L1Reportees.directly_manages = L2Reportees.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees ) AS T GROUP BY directReportees) UNION (SELECT L2Reportees.directly_manages AS directReportees, 0 AS count FROM person_reportee manager JOIN person_reportee L1Reportees ON manager.directly_manages = L1Reportees.pid JOIN person_reportee L2Reportees ON L1Reportees.directly_manages = L2Reportees.pid WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") )

Example HR Query (using SQL)

29 Thursday, November 6, 14

slide-30
SLIDE 30

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

Same Query in Cypher

*“Find all direct reports and how many they manage, up to 3 levels down”

30 Thursday, November 6, 14

slide-31
SLIDE 31

DATABASE # PEOPLE QUERY TIME (MS) MySQL Neo4j Neo4j

1,000 2,000 1,000 2 1,000,000 2

31 Thursday, November 6, 14

slide-32
SLIDE 32

Neo Technology, Inc Confidential

“Our ¡Neo4j ¡solution ¡is ¡literally ¡thousands ¡of ¡times ¡ faster ¡than ¡the ¡prior ¡MySQL ¡solution, with ¡queries ¡that ¡require ¡10-­‑100 ¡times ¡less ¡code.”

  • ­‑ ¡Volker ¡Pacher, ¡Senior ¡Developer ¡eBay

M’kay. But what about the Real World(tm)?

32 Thursday, November 6, 14

slide-33
SLIDE 33

Neo Technology, Inc Confidential

!Social Graph Use Cases

33 Thursday, November 6, 14

slide-34
SLIDE 34

Neo Technology, Inc Confidential

Network Impact Analysis

34 Thursday, November 6, 14

slide-35
SLIDE 35

Neo Technology, Inc Confidential

Route Finding

35 Thursday, November 6, 14

slide-36
SLIDE 36

Neo Technology, Inc Confidential

Recommendations

36 Thursday, November 6, 14

slide-37
SLIDE 37

Neo Technology, Inc Confidential

Logistics

37 Thursday, November 6, 14

slide-38
SLIDE 38

Neo Technology, Inc Confidential

Access Control

38 Thursday, November 6, 14

slide-39
SLIDE 39

Neo Technology, Inc Confidential

Fraud Detection

39 Thursday, November 6, 14

slide-40
SLIDE 40

Neo Technology, Inc Confidential

Fraud Detection: Uncovering Fraud Rings

Total Dollar Amount Transaction Count Investigate Investigate

40 Thursday, November 6, 14

slide-41
SLIDE 41

Neo Technology, Inc Confidential

Basically: Graph All The Things!!!1

41 Thursday, November 6, 14

slide-42
SLIDE 42

Neo Technology, Inc Confidential

Ref: http://www.gartner.com/id=2081316

Interest Graph Payment Graph Intent Graph Mobile Graph Social Graph

Gartner’s “5 Graphs”

42 Thursday, November 6, 14

slide-43
SLIDE 43

Neo Technology, Inc Confidential

  • Network Graph

(e.g. Network Dependency Analysis, Network Inventory, etc.)

  • Social Graph

(mobile apps, social recommendations, collaboration)

  • Call Graph

(creating inferred social graph, churn reduction, etc.)

  • Master Data Graph

(org & product hierarchy, data governance, IAM)

  • Help Desk Graph

(enterprise collaboration)

5 Graphs of Telco

43 Thursday, November 6, 14

slide-44
SLIDE 44

Neo Technology, Inc Confidential

  • Payment Graph

(e.g. Fraud Detection, Credit Risk Analysis, Chargebacks...)

  • Customer Graph

(org drillthru, product recommendations, mobile payments, etc.)

  • Entitlement Graph

(identity & access management, authorization)

  • Asset Graph

(portfolio analytics, risk management, market & sentiment analysis, compliance)

  • Master Data Graph

(enterprise collaboration, corporate hierarchy, data governance)

5 Graphs of Finance

Finance Finance

44 Thursday, November 6, 14

slide-45
SLIDE 45

Neo Technology, Inc Confidential

  • Provider Graph

(e.g. referrals, patient management, research)

  • Patient Graph

(support communities, doctor recommendations, clinical trials)

  • Bioinformatic Graph

(drug research, genetic screening, bioengineering, etc.)

  • Master Data Graph

(biological master data, evolutionary taxonomy, the access control graph, etc.)

  • Treatment Graph

(collaborative medicine, clinical trials, etc.)

5 Graphs of Health Care

45 Thursday, November 6, 14

slide-46
SLIDE 46

Neo Technology, Inc Confidential

5 Graphs of <YourIndustry>

Please help us map out the five graphs of your industry!

46 Thursday, November 6, 14

slide-47
SLIDE 47

Download now! http://neo4j.com Visit our booth! Thanks for Listening!

47 Thursday, November 6, 14