Graph Adoption at Gamesys - Toby O'Rourke @ GraphConnect SF 2013
The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013
-
Upload
neo4j-the-fastest-and-most-scalable-native-graph-database -
Category
Technology
-
view
1.254 -
download
0
Transcript of The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013
Neo Technology, Inc Confidential
The 5 Graphs of Finance
Philip RathleSr. Director of Products
@prathle [email protected]
Neo Technology, Inc Confidential
The “4 Giants”
Ref: http://www.gartner.com/id=2081316
Neo Technology, Inc Confidential
Consumer Web Giants Depends on Five GraphsGartner’s “5 Graphs”
Social Graph
Ref: http://www.gartner.com/id=2081316
Interest Graph
Payment Graph
Intent Graph
Mobile Graph
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
Neo Technology, Inc Confidential
#1: Payment Graph
Neo Technology, Inc Confidential
Neo Technology, Inc Confidential
The Payment Graph Depends on the Customer Graph (#2)#1: Payment Graph Example
Neo Technology, Inc Confidential
Capturing B2B & B2C Transactions#1: Payment Graph Example
Neo Technology, Inc Confidential
#1: Payment Graph Example
Neo Technology, Inc Confidential
Streamlined Management of Chargebacks#1: Payment Graph Example
Neo Technology, Inc Confidential
#2: Customer Graph
Neo Technology, Inc Confidential
Neo Technology, Inc Confidential
The Corporate Hierarchy is Really a Graph#2: Customer Graph
Neo Technology, Inc Confidential
Cleansing & Matching for 360 degree master view#2: Customer Graph
Neo Technology, Inc Confidential
Bank Fraud Example: Ring of False Identities#2: Customer Graph
Neo Technology, Inc Confidential
Bank Fraud Example: Combinatorial Multiplying of False Persona#2: Customer Graph
3 phony addresses + 3 phony phone #s = 9 phony customers.... and so on
Neo Technology, Inc Confidential
#3: Entitlement Graph
Neo Technology, Inc Confidential
http://blogs.gartner.com/ian-glazer/2013/02/08/killing-iam-in-order-to-save-it/
Neo Technology, Inc Confidential
Background
• Top investment bank: over $1T in total assets
• Using a relational database coupled with Gemfire for managing employee permissions to research resources (documents and application services)
Business problem• When a new investment manager was onboarded,
permissions were manually provisioned via a complex manual process. Traders lost an average of 5 days of trading, waiting for the permissions to be granted
• Competitor had implemented a project to accelerate the onboarding process. Needed to respond quickly.
• High stakes: Regulations leave no room for error.
• High complexity: Granular permissions mean each trader needed access to hundreds of resources.
Solution & Benefits• Organizational model, groups, and entitlements stored
in Neo4j
• Very happy with the performance of the solution, and the productivity advantage of a domain fit
• Graph visualization makes it easier for the business to provision permissions themselves
• Moving to Neo4j meant “fewer compromises” than a relational data store
Industry: Financial ServicesUse case: Entitlements/IAMLondon
Large Investment
Bank
Neo Technology, Inc Confidential
#4: Asset Graph
Neo Technology, Inc Confidential
IT Asset ManagementPortfolio Analytics
Risk Analysis
#4: Asset Graph Examples
Neo Technology, Inc Confidential
#5: Master Data Graph
Neo Technology, Inc Confidential
Background
Business problem Solution & Benefits
• German mid-size Insurance company
• Founded in 1858, over 500 employees
• Field sales unit needed easy access to policies and customer data, in an increasing variety of ways
• Needed to support a growing business
• Existing IBM DB2 system not able to meet performance requirements as the system scaled
• 24/7 available system for sales unit outside the company needed
• Enable field sales unit to flexibly search for insurance policies and associated personal data
• Raising the bar with respect to insurance industry practices
• Suppor the business as it scales, with a high level of performance
• Easy port of existing metadata into Neo4j
Industry: InsuranceUse case: Master Data Management
Neo Technology, Inc Confidential
IntercontinentalExchange
Social network for brokers
Neo Technology, Inc Confidential
Technology for Managing Graphs
Neo Technology, Inc Confidential
Use SQL to Find all Dependencies(up to 3 levels down)
(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (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 countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(L2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (SELECT manager.directly_manages AS directReportees, 0 AS countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")UNIONSELECT reportee.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNION
(continued from previous page...)SELECT depth1Reportees.pid AS directReportees,count(depth2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM( SELECT reportee.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT L2Reportees.pid AS directReportees, count(L2Reportees.directly_manages) AScountFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT L2Reportees.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName"))
Neo Technology, Inc Confidential
Using CypherMATCH (fund)-‐[:INCLUDES*0..n]-‐>(sub), (sub)-‐[:INCLUDES*1..n]-‐>(asset)WHERE fund.ticker = “TRLGX”RETURN sub.ticker AS Asset_Group, count(asset) AS TotalORDER BY Total DESC
Use Cypher to Find all Dependencies(up to n levels down)
For a given fund, returns all assets thatare made up of other assets,
ordered by the total # of included assets
Neo Technology, Inc Confidential
RDBMS vs. Native Graph Database
Connected Data & Query Performance
Connectedness of Data Set
Resp
onse
Tim
e
RDBMSDegree: < 3Size: Thousands
# Hops: < 3Neo4j
Degree: Thousands+Size: Billions+
# Hops: Tens to Hundreds
1000x faster
Neo Technology, Inc Confidential
Top Reasons for Choosing Neo4j
1. Problems with JOIN performance
2. Domain fit for graph
3. Open-ended business requirements necessitating fast, iterative development
4. Evolving and/or non-uniform data, avoiding sparse tables and frequent schema chances
Neo Technology, Inc Confidential
Who’s Using Graph Databases Today?
Finance
Finance
Accenture
Neo Technology, Inc Confidential
Thanks!
Stay Connected