MongoDB Days Silicon Valley: Implementing Graph Databases with MongoDB

Post on 18-Feb-2017

1765 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

Transcript

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

Democratizing Health Analytics & Data

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

Building a Graph Database in Mongo

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

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

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

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

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

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?

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

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?

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?

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:

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

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

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.

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

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

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

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

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

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

Democratizing Health Analytics & Data

top related