mongodb days silicon valley: implementing graph databases with mongodb

21
COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC. Democratizing Health Analytics & Data

Upload: mongodb

Post on 18-Feb-2017

1.770 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Democratizing Health Analytics & Data

Page 2: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Building a Graph Database in Mongo

Page 3: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Agenda

• What is a Graph Database?• Let’s Build One!• Example MongoDb Implementation• Pitfalls• How Apervita Uses Graphs

Page 4: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Graph Databases

Elements: Edges

Nodes

Nodes and edges can also have properties

Page 5: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

More on Graphs

• Graphs can have multiple types of edges• Multiple types of graphs• Directed Acyclic Graphs are our focus• Directed have one-way relationships• Relationships will not loop back to a higher node

Page 6: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Let’s build a Graf Database!This is Steffi Graf

• Edges:• Tournament Type• Sponsorships• Tournaments Won

Page 7: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Grand

Slam

French

OpenUS

Open

Aus. Ope

n

Canon

Dunlop

Head

Adidas

Wimbledon

Tourney Won

Tourney Type

Sponsorship

Page 8: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Graf is a Subgraph• Implementations depend on what the overall purpose of the graph is

• Tracking tournaments and results?

Page 9: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Graf is a Subgraph• Tracking tennis players and their results?

Tournaments

Page 10: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Edges

Graf is a Subgraph• Tracking tennis players and their results?

Page 11: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Players

Graf is a Subgraph• Tracking tennis players and their results?

Page 12: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Graf is a Subgraph• Just tracking Stefi Graf?

YouStalkers

• You’ll need a new relationship:

Page 13: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Implementation of paths

•Multiple implementations of the graph exist:•Parents only•Children only•Parents and Children•Edges

Page 14: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Transitive Closure Mathematics • Finding transitive closure with math• Picard solved this in 1976. (not that Picard)• But it’s polynomial time and the math is kind of hard

Page 15: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Implementing Paths

• Solution:• Implement paths in their own collection.

Page 16: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Page 17: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Considerations

• As graphs get larger, performance becomes an issue

• Extremely wide child models can break the document size

Page 18: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

How Apervita Uses Graphs

• Hospital Datasets are dynamic and varied

• Medical Vocabularies are by their nature graphs• SNOMED, ICD-9, ICD-10, RxNorm

• The ability to code an algorithm to the “generic” and subsume for the specific is extremely powerful

Page 19: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

How Apervita Uses GraphsExample of browsing RxNorm

Page 20: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

In Summary

• Think about your data model

• Use MongoDb’s indexing power to have quick access to your paths for graph calculations

• Think about your overall expected graph size

Page 21: MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

COPYRIGHT © 2015. THIS INFORMATION IS THE PROPERTY OF APERVITA, INC. APERVITA IS A REGISTERED TRADEMARK OF APERVITA, INC.

Democratizing Health Analytics & Data