SlideShare a Scribd company logo
©2017 Experian Information Solutions, Inc. All rights reserved. Experian and the Experian marks used herein are trademarks or registered
trademarks of Experian Information Solutions, Inc. Other product and company names mentioned herein are the trademarks of their
respective owners. No part of this copyrighted work may be reproduced, modified, or distributed in any form or manner without the prior
written permission of Experian.
Experian [Public. Confidential. Internal. Restricted. – please choose the appropriate category]
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 2
Experian Health - Moving Universal Identity Manager
from ANSI SQL to MongoDB
MongoDB World – Chicago
Sean Reisz
June 20, 2017
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 3
1.The steps to migrate from a traditional SQL architecture to a MongoDB architecture, including
improvements and iterations to simplify the migration.
2.Understand the design of a reference architecture for a performant and highly available application
using MongoDB.
3.Architecture performance and scale comparisons between traditional SQL database schemas and
the MongoDB document model.
Learning Objectives
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 4
• Simplify our schema and queries
• Improve performance
• Simplify future growth
• Improve replication & failover
Migrating from ANSI SQL to MongoDB allowed us to:
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 5
Experian Health – Our Vision
To shape the future of healthcare through cutting-edge,
innovative product designs, and improve operational
efficiency through integrated solutions and services
leveraging data-driven analytics and insights.
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 6
Experian Health Solutions
Revenue Cycle
Optimization Services &
Analytics
Revenue Cycle
Management
Care
Management
Identity
Management
Patient
Engagement
 Patient Estimates
 Patient Gifting
 Patient Schedule
 Patient Self-Service
 Patient Statements
 PaymentSafe®
 Care Coordination
Manager
 Clinical Data
Clearinghouse
 MemberMatch®
 Precise ID® with
Digital Risk Score
 Return Mail
 Universal Identity
Manager
 Patient Access
 Contract
Manager
 Claims
 Collections
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 7
Why Experian Health?
The Power of
Experian Data
Well-rounded
suite of offerings
Patented, KLAS-
ranked Touchless
WorkflowTM
System
Strong heritage in
RCM & Patient
Access
• 220 million consumer
credit profiles
• 235 million consumer
demographic profiles
Strength of solutions in
revenue cycle management
(SearchAmerica, MPV) &
Patient access (Passport
Health Communications)
• Revenue Cycle
Management
• Identity Management
• Patient Engagement
• Care Management
Our eCare NEXT® platform
earned the highest score
in the Patient Access
category of the 2017 Best
in KLAS: Software &
Services Report
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 8
Universal Identity Manager – What Is It?
What does the UIM Do?
The Universal Identity Manager (UIM) Is a person
record matching tool:
•Probabilistic matching engine
•Data Improvement
– Scrubbing
– Normalization
– Augmentation
•Matches related Person records
•Assigns a single identifier
•Provides a combined “best” view
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 9
Universal Identity Manager – What Is It?
How Is This Useful?
Allows for Disparate Data
•Incomplete Records
•Different data sources / domains
•Different data quality levels
Uses
•Improved patient care
•Historical and longitudinal data collection
•Coordination of benefits across clients
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 10
UIM SQL Schema
Source Record
Addresses
Aliases Phone Numbers
Identifiers
Address / Alias
Cross Reference
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 11
UIM Major Database Steps
Incoming
Record is
Received
Is
Record
in DB?
Pull Existing
Record Data
Find Candidate
Records
Pull Candidate
Record Data
Insert New
Record
Update Existing
Record
Was
Match
Found
?
Return UIM ID
Y
N
Y
N
Source Record
Lookup
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 12
UIM Major SQL DB Steps
Source Record Lookup (SQL)
SELECT * FROM SourceRecord WHERE
SourceRecordID = ?
Find Candidate Records (SQL)
SELECT category, id FROM (
SELECT DISTINCT ‘FN-LN-ZIP’ as category,
SourceRecordID from Xref WHERE FirstName = ?
AND LastName = ? AND Zip = ?
UNION ALL
SELECT DISTINCT ‘FN-DOB’ as category,
SourceRecordID from Xref WHERE FirstName = ?
AND Dob = ?
UNION ALL
SELECT DISTINCT ‘LN-DOB’ as category,
SourceRecordID from Xref WHERE LastName = ?
AND Dob = ?
UNION ALL
… )
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 13
UIM Major SQL DB Steps
Pull Candidate / Existing Record Data (SQL)
SELECT * FROM SourceRecord
LEFT OUTER JOIN Addresses on (SourceRecord.id =
Addresses.SourceRecordID)
LEFT OUTER JOIN Phones on (SourceRecord.id =
Phones.SourceRecordID)
LEFT OUTER JOIN Identifiers on (SourceRecord.id =
Identifiers.SourceRecordID)
LEFT OUTER JOIN Aliases on (SourceRecord.id =
Aliases.SourceRecordID)
LEFT OUTER JOIN Xrefs on (SourceRecord.id =
Aliases.SourceRecordID)
WHERE SourceRecord.id = ?
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 14
UIM Major SQL DB Steps
Insert / Update Record Data (SQL)
INSERT INTO SourceRecord VALUES (?,?,…)
-or- UPDATE SourceRecord SET VALUES = (?,?,..) WHERE id = ?
INSERT INTO Addresses VALUES (?,?,…)
-or- UPDATE Addresses SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Addresses WHERE id = ?
INSERT INTO PhoneNumbers VALUES (?,?,…)
-or- UPDATE PhoneNumbers SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM PhoneNumbers WHERE id = ?
INSERT INTO Identifiers VALUES (?,?,…)
-or- UPDATE Identifiers SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Identifiers WHERE id = ?
INSERT INTO Aliases VALUES (?,?,…)
-or- UPDATE Aliases SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Aliases WHERE id = ?
INSERT INTO Xref VALUES (?,?,…)
-or- UPDATE Xref SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Xref WHERE id = ?
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 15
UIM SQL Schema - Challenges
Database Size Multiple Indexes
Table Joins
Multiple Writes Per Person
Record
Cross Reference Table Replication and Failover
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 16
UIM New Architecture – Why MongoDB?
• MongoDB presence in the organization
• Document based writes / retrievals
• Easier growth as data increased
• Naturally better replication and failover
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 17
UIM Initial MongoDB Schema
Source Records
{
_id: <ObjectId>,
dob: ‘19010101’,
…
}
Addresses
Aliases
Phone
Numbers
Identifiers
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 18
MongoDB Performance
0
5000
10000
15000
20000
25000
Proof of Concept (100M Records)
Average Inserts / Minute
ANSI SQL
18,000 / minute
MongoDB 2.6.5
20,000 / minute
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 19
UIM MongoDB Lesson – Category Lookup
• Candidate lookup queries required multiple indexes
• Candidate queries could not use queries optimized for shards
Categories
{
_id: <ObjectId>,
sourceRecordId: <Source Record ObjectId>
category: ‘FN-DOB’,
value: ‘SEAN-19010101’
}
• Shard key is Category + Value
• Candidate lookup now can use queries that are optimized for shards
• Only one additional index was required
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 20
UIM MongoDB Lesson – Source Record ID Lookup
• Source Record lookup requires a query against the record’s logical key
• This query required an additional index
• Could not use queries optimized for shards
Source Record IDs
{
_id: <SourceRecord Logical ID>,
sourceRecord: <SourceRecord ObjectId>
}
• Source Record lookups now use default index
• Source Record lookups can use queries optimized for shards
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 21
UIM MongoDB Lesson – Single Document Category Lookup
• Candidate selection returns multiple records for each value
• The candidates returned are always the same set
• The Category collection still has an additional index
Categories
{
_id: { category: ‘FN-DOB’,
value: ‘SEAN-19010101’},
sourceRecords: [
<SourceRecord ObjectId>,
<SourceRecord ObjectId>,…]
}
• Allows single document retrieval
• Removes additional index
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 22
UIM Final MongoDB Schema
Categories
{
_id: { category: ‘FN-DOB’,
value: ‘SEAN-19010101’},
sourceRecords: [
<SourceRecord ObjectId>,
<SourceRecord ObjectId>,…]
}
Source Record IDs
{
_id: <SourceRecord Logical ID>,
sourceRecord: <SourceRecord
ObjectId>
}
Source Records
{
_id: <ObjectId>,
dob: ‘19010101’,
…
}
Addresses
Aliases
Phone
Numbers
Identifiers
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 23
Major Database Steps
Source Record Lookup (SQL)
SELECT * FROM SourceRecord WHERE
SourceRecordID = ?
Source Record Lookup (MongoDB)
db.SourceRecordIDs.find({_id: ?})
Find Candidate Records (SQL)
SELECT category, id FROM (
SELECT DISTINCT ‘FN-LN-ZIP’ as category,
SourceRecordID from Xref WHERE FirstName = ?
AND LastName = ? AND Zip = ?
UNION ALL
SELECT DISTINCT ‘FN-DOB’ as category,
SourceRecordID from Xref WHERE FirstName = ?
AND Dob = ?
UNION ALL
SELECT DISTINCT ‘LN-DOB’ as category,
SourceRecordID from Xref WHERE LastName = ?
AND Dob = ?
UNION ALL
… )
Find Candidate Records (MongoDB)
db.Categories. find({$or:[
{"_id.category":“FN-LN-ZIP", "_id.value" :?},
{"_id.category":"FN-DOB", "_id.value" :?},
{"_id.category":“LN-DOB", "_id.value" :?},
…]})
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 24
Major Database Steps
Pull Candidate / Existing Record Data (SQL)
SELECT * FROM SourceRecord
LEFT OUTER JOIN Addresses on
(SourceRecord.id = Addresses.SourceRecordID)
LEFT OUTER JOIN Phones on (SourceRecord.id
= Phones.SourceRecordID)
LEFT OUTER JOIN Identifiers on
(SourceRecord.id = Identifiers.SourceRecordID)
LEFT OUTER JOIN Aliases on (SourceRecord.id =
Aliases.SourceRecordID)
LEFT OUTER JOIN Xrefs on (SourceRecord.id =
Aliases.SourceRecordID)
WHERE SourceRecord.id = ?
Pull Candidate / Existing Record Data
(MongoDB)
db.SourceRecords.find({_id: ?})
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 25
Major Database Steps
Insert / Update Record Data (SQL)
INSERT INTO SourceRecord VALUES (?,?,…)
-or- UPDATE SourceRecord SET VALUES = (?,?,..) WHERE id =
?
INSERT INTO Addresses VALUES (?,?,…)
-or- UPDATE Addresses SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Addresses WHERE id = ?
INSERT INTO PhoneNumbers VALUES (?,?,…)
-or- UPDATE PhoneNumbers SET VALUES = (?,?,…) WHERE id
= ?
-or- DELETE FROM PhoneNumbers WHERE id = ?
INSERT INTO Identifiers VALUES (?,?,…)
-or- UPDATE Identifiers SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Identifiers WHERE id = ?
INSERT INTO Aliases VALUES (?,?,…)
-or- UPDATE Aliases SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Aliases WHERE id = ?
INSERT INTO Xref VALUES (?,?,…)
-or- UPDATE Xref SET VALUES = (?,?,…) WHERE id = ?
-or- DELETE FROM Xref WHERE id = ?
Insert / Update Record Data (MongoDB)
db.SourceRecords.save({…})
db.SourceRecordIds.save({…})
db.Categories.save({…})
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 26
UIM MongoDB Schema - Benefits
Simplified Structure
Simplified Document
Retrieval / Document Writes
Simplified Queries Reduced Number of Indexes
Futureproofing – Sharding
Improved Failover /
Replication
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 27
UIM MongoDB Reference Architecture
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 28
MongoDB Performance
0
10000
20000
30000
40000
50000
60000
70000
80000
Reference DB (300M Records)
Average Inserts / Minute
MongoDB 3.2.9
70,000 / minute
ANSI SQL
15,000 / minute
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 29
In Summary
•We started with an ANSI SQL database
•We transitioned to MongoDB which better fit our
natural model
•With a few iterations we developed a final model
that
– Simplified the schema
– Minimized indexes
– Simplified queries
– Allowed all queries to be optimized for shards
•Final Architecture
– Significantly Improved performance
– Allowed for simpler future growth
– Improved failover / replication
© Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 30
Questions / Comments
©2017 Experian Information Solutions, Inc. All rights reserved. Experian and the Experian marks used herein are trademarks or registered
trademarks of Experian Information Solutions, Inc. Other product and company names mentioned herein are the trademarks of their
respective owners. No part of this copyrighted work may be reproduced, modified, or distributed in any form or manner without the prior
written permission of Experian.
Experian [Public. Confidential. Internal. Restricted. – please choose the appropriate category]

More Related Content

What's hot

Bye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the JourneyBye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the Journey
MongoDB
 
Jumpstart: MongoDB BI Connector & Tableau
Jumpstart: MongoDB BI Connector & TableauJumpstart: MongoDB BI Connector & Tableau
Jumpstart: MongoDB BI Connector & Tableau
MongoDB
 
It's a Dangerous World
It's a Dangerous World It's a Dangerous World
It's a Dangerous World
MongoDB
 
Webinar: Faster Big Data Analytics with MongoDB
Webinar: Faster Big Data Analytics with MongoDBWebinar: Faster Big Data Analytics with MongoDB
Webinar: Faster Big Data Analytics with MongoDB
MongoDB
 
Building a Scalable and Modern Infrastructure at CARFAX
Building a Scalable and Modern Infrastructure at CARFAXBuilding a Scalable and Modern Infrastructure at CARFAX
Building a Scalable and Modern Infrastructure at CARFAX
MongoDB
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your Cluster
MongoDB
 
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
MongoDB
 
Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com
MongoDB
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature Preview
Norberto Leite
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
Andrew Morgan
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEA
Andrew Morgan
 
A Mobile-First, Cloud-First Stack at Pearson
A Mobile-First, Cloud-First Stack at PearsonA Mobile-First, Cloud-First Stack at Pearson
A Mobile-First, Cloud-First Stack at Pearson
MongoDB
 
AWS Lambda, Step Functions & MongoDB Atlas Tutorial
AWS Lambda, Step Functions & MongoDB Atlas TutorialAWS Lambda, Step Functions & MongoDB Atlas Tutorial
AWS Lambda, Step Functions & MongoDB Atlas Tutorial
MongoDB
 
Webinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB AtlasWebinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB Atlas
MongoDB
 
Sizing Your MongoDB Cluster
Sizing Your MongoDB ClusterSizing Your MongoDB Cluster
Sizing Your MongoDB Cluster
MongoDB
 
Introducing MongoDB Atlas
Introducing MongoDB AtlasIntroducing MongoDB Atlas
Introducing MongoDB Atlas
MongoDB
 
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
MongoDB
 
Introducing Stitch
Introducing Stitch Introducing Stitch
Introducing Stitch
MongoDB
 
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB
 
MongoDB on Azure
MongoDB on AzureMongoDB on Azure
MongoDB on Azure
Norberto Leite
 

What's hot (20)

Bye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the JourneyBye Bye Legacy: Simplifying the Journey
Bye Bye Legacy: Simplifying the Journey
 
Jumpstart: MongoDB BI Connector & Tableau
Jumpstart: MongoDB BI Connector & TableauJumpstart: MongoDB BI Connector & Tableau
Jumpstart: MongoDB BI Connector & Tableau
 
It's a Dangerous World
It's a Dangerous World It's a Dangerous World
It's a Dangerous World
 
Webinar: Faster Big Data Analytics with MongoDB
Webinar: Faster Big Data Analytics with MongoDBWebinar: Faster Big Data Analytics with MongoDB
Webinar: Faster Big Data Analytics with MongoDB
 
Building a Scalable and Modern Infrastructure at CARFAX
Building a Scalable and Modern Infrastructure at CARFAXBuilding a Scalable and Modern Infrastructure at CARFAX
Building a Scalable and Modern Infrastructure at CARFAX
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your Cluster
 
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
 
Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature Preview
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEA
 
A Mobile-First, Cloud-First Stack at Pearson
A Mobile-First, Cloud-First Stack at PearsonA Mobile-First, Cloud-First Stack at Pearson
A Mobile-First, Cloud-First Stack at Pearson
 
AWS Lambda, Step Functions & MongoDB Atlas Tutorial
AWS Lambda, Step Functions & MongoDB Atlas TutorialAWS Lambda, Step Functions & MongoDB Atlas Tutorial
AWS Lambda, Step Functions & MongoDB Atlas Tutorial
 
Webinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB AtlasWebinar: Simplifying the Database Experience with MongoDB Atlas
Webinar: Simplifying the Database Experience with MongoDB Atlas
 
Sizing Your MongoDB Cluster
Sizing Your MongoDB ClusterSizing Your MongoDB Cluster
Sizing Your MongoDB Cluster
 
Introducing MongoDB Atlas
Introducing MongoDB AtlasIntroducing MongoDB Atlas
Introducing MongoDB Atlas
 
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
Replacing Traditional Technologies with MongoDB: A Single Platform for All Fi...
 
Introducing Stitch
Introducing Stitch Introducing Stitch
Introducing Stitch
 
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
 
MongoDB on Azure
MongoDB on AzureMongoDB on Azure
MongoDB on Azure
 

Similar to Experian Health: Moving Universal Identity Manager from ANSI SQL to MongoDB

MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB
 
Introduction To Sql Server Data Mining
Introduction To Sql Server Data MiningIntroduction To Sql Server Data Mining
Introduction To Sql Server Data Mining
Hugo Olivera Alonso
 
Collaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan PunniyamoorthyCollaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan Punniyamoorthy
Dayalan Punniyamoorthy
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
Norberto Leite
 
MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
MySQL Brasil
 
Measure() or die()
Measure() or die()Measure() or die()
Measure() or die()
Tamar Duvshani Hermel
 
Measure() or die()
Measure() or die() Measure() or die()
Measure() or die()
LivePerson
 
#CNX14 - Intro to Force
#CNX14 - Intro to Force#CNX14 - Intro to Force
#CNX14 - Intro to Force
Salesforce Marketing Cloud
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Nishanth Kadiyala
 
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
Fwdays
 
Mysql query optimization best practices and indexing
Mysql query optimization  best practices and indexingMysql query optimization  best practices and indexing
Mysql query optimization best practices and indexing
Alkin Tezuysal
 
Introducing LINQ
Introducing LINQIntroducing LINQ
Introducing LINQ
LearnNowOnline
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Dreamforce
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
Inho Kang
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
Oracle Korea
 
Resume
ResumeResume
Resume
Rakhi Modi
 
Best Practices for Migrating RDBMS to MongoDB
Best Practices for Migrating RDBMS to MongoDBBest Practices for Migrating RDBMS to MongoDB
Best Practices for Migrating RDBMS to MongoDB
Sheeri Cabral
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Developers
 
Using Compass to Diagnose Performance Problems
Using Compass to Diagnose Performance Problems Using Compass to Diagnose Performance Problems
Using Compass to Diagnose Performance Problems
MongoDB
 
Postgres: The NoSQL Cake You Can Eat
Postgres: The NoSQL Cake You Can EatPostgres: The NoSQL Cake You Can Eat
Postgres: The NoSQL Cake You Can Eat
EDB
 

Similar to Experian Health: Moving Universal Identity Manager from ANSI SQL to MongoDB (20)

MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
 
Introduction To Sql Server Data Mining
Introduction To Sql Server Data MiningIntroduction To Sql Server Data Mining
Introduction To Sql Server Data Mining
 
Collaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan PunniyamoorthyCollaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan Punniyamoorthy
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
Measure() or die()
Measure() or die()Measure() or die()
Measure() or die()
 
Measure() or die()
Measure() or die() Measure() or die()
Measure() or die()
 
#CNX14 - Intro to Force
#CNX14 - Intro to Force#CNX14 - Intro to Force
#CNX14 - Intro to Force
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
 
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
Alkin Tezuysal "MySQL Query Optimization Best Practices and Indexing"
 
Mysql query optimization best practices and indexing
Mysql query optimization  best practices and indexingMysql query optimization  best practices and indexing
Mysql query optimization best practices and indexing
 
Introducing LINQ
Introducing LINQIntroducing LINQ
Introducing LINQ
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
Resume
ResumeResume
Resume
 
Best Practices for Migrating RDBMS to MongoDB
Best Practices for Migrating RDBMS to MongoDBBest Practices for Migrating RDBMS to MongoDB
Best Practices for Migrating RDBMS to MongoDB
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
 
Using Compass to Diagnose Performance Problems
Using Compass to Diagnose Performance Problems Using Compass to Diagnose Performance Problems
Using Compass to Diagnose Performance Problems
 
Postgres: The NoSQL Cake You Can Eat
Postgres: The NoSQL Cake You Can EatPostgres: The NoSQL Cake You Can Eat
Postgres: The NoSQL Cake You Can Eat
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 

Recently uploaded (20)

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 

Experian Health: Moving Universal Identity Manager from ANSI SQL to MongoDB

  • 1. ©2017 Experian Information Solutions, Inc. All rights reserved. Experian and the Experian marks used herein are trademarks or registered trademarks of Experian Information Solutions, Inc. Other product and company names mentioned herein are the trademarks of their respective owners. No part of this copyrighted work may be reproduced, modified, or distributed in any form or manner without the prior written permission of Experian. Experian [Public. Confidential. Internal. Restricted. – please choose the appropriate category]
  • 2. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 2 Experian Health - Moving Universal Identity Manager from ANSI SQL to MongoDB MongoDB World – Chicago Sean Reisz June 20, 2017
  • 3. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 3 1.The steps to migrate from a traditional SQL architecture to a MongoDB architecture, including improvements and iterations to simplify the migration. 2.Understand the design of a reference architecture for a performant and highly available application using MongoDB. 3.Architecture performance and scale comparisons between traditional SQL database schemas and the MongoDB document model. Learning Objectives
  • 4. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 4 • Simplify our schema and queries • Improve performance • Simplify future growth • Improve replication & failover Migrating from ANSI SQL to MongoDB allowed us to:
  • 5. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 5 Experian Health – Our Vision To shape the future of healthcare through cutting-edge, innovative product designs, and improve operational efficiency through integrated solutions and services leveraging data-driven analytics and insights.
  • 6. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 6 Experian Health Solutions Revenue Cycle Optimization Services & Analytics Revenue Cycle Management Care Management Identity Management Patient Engagement  Patient Estimates  Patient Gifting  Patient Schedule  Patient Self-Service  Patient Statements  PaymentSafe®  Care Coordination Manager  Clinical Data Clearinghouse  MemberMatch®  Precise ID® with Digital Risk Score  Return Mail  Universal Identity Manager  Patient Access  Contract Manager  Claims  Collections
  • 7. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 7 Why Experian Health? The Power of Experian Data Well-rounded suite of offerings Patented, KLAS- ranked Touchless WorkflowTM System Strong heritage in RCM & Patient Access • 220 million consumer credit profiles • 235 million consumer demographic profiles Strength of solutions in revenue cycle management (SearchAmerica, MPV) & Patient access (Passport Health Communications) • Revenue Cycle Management • Identity Management • Patient Engagement • Care Management Our eCare NEXT® platform earned the highest score in the Patient Access category of the 2017 Best in KLAS: Software & Services Report
  • 8. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 8 Universal Identity Manager – What Is It? What does the UIM Do? The Universal Identity Manager (UIM) Is a person record matching tool: •Probabilistic matching engine •Data Improvement – Scrubbing – Normalization – Augmentation •Matches related Person records •Assigns a single identifier •Provides a combined “best” view
  • 9. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 9 Universal Identity Manager – What Is It? How Is This Useful? Allows for Disparate Data •Incomplete Records •Different data sources / domains •Different data quality levels Uses •Improved patient care •Historical and longitudinal data collection •Coordination of benefits across clients
  • 10. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 10 UIM SQL Schema Source Record Addresses Aliases Phone Numbers Identifiers Address / Alias Cross Reference
  • 11. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 11 UIM Major Database Steps Incoming Record is Received Is Record in DB? Pull Existing Record Data Find Candidate Records Pull Candidate Record Data Insert New Record Update Existing Record Was Match Found ? Return UIM ID Y N Y N Source Record Lookup
  • 12. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 12 UIM Major SQL DB Steps Source Record Lookup (SQL) SELECT * FROM SourceRecord WHERE SourceRecordID = ? Find Candidate Records (SQL) SELECT category, id FROM ( SELECT DISTINCT ‘FN-LN-ZIP’ as category, SourceRecordID from Xref WHERE FirstName = ? AND LastName = ? AND Zip = ? UNION ALL SELECT DISTINCT ‘FN-DOB’ as category, SourceRecordID from Xref WHERE FirstName = ? AND Dob = ? UNION ALL SELECT DISTINCT ‘LN-DOB’ as category, SourceRecordID from Xref WHERE LastName = ? AND Dob = ? UNION ALL … )
  • 13. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 13 UIM Major SQL DB Steps Pull Candidate / Existing Record Data (SQL) SELECT * FROM SourceRecord LEFT OUTER JOIN Addresses on (SourceRecord.id = Addresses.SourceRecordID) LEFT OUTER JOIN Phones on (SourceRecord.id = Phones.SourceRecordID) LEFT OUTER JOIN Identifiers on (SourceRecord.id = Identifiers.SourceRecordID) LEFT OUTER JOIN Aliases on (SourceRecord.id = Aliases.SourceRecordID) LEFT OUTER JOIN Xrefs on (SourceRecord.id = Aliases.SourceRecordID) WHERE SourceRecord.id = ?
  • 14. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 14 UIM Major SQL DB Steps Insert / Update Record Data (SQL) INSERT INTO SourceRecord VALUES (?,?,…) -or- UPDATE SourceRecord SET VALUES = (?,?,..) WHERE id = ? INSERT INTO Addresses VALUES (?,?,…) -or- UPDATE Addresses SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Addresses WHERE id = ? INSERT INTO PhoneNumbers VALUES (?,?,…) -or- UPDATE PhoneNumbers SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM PhoneNumbers WHERE id = ? INSERT INTO Identifiers VALUES (?,?,…) -or- UPDATE Identifiers SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Identifiers WHERE id = ? INSERT INTO Aliases VALUES (?,?,…) -or- UPDATE Aliases SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Aliases WHERE id = ? INSERT INTO Xref VALUES (?,?,…) -or- UPDATE Xref SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Xref WHERE id = ?
  • 15. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 15 UIM SQL Schema - Challenges Database Size Multiple Indexes Table Joins Multiple Writes Per Person Record Cross Reference Table Replication and Failover
  • 16. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 16 UIM New Architecture – Why MongoDB? • MongoDB presence in the organization • Document based writes / retrievals • Easier growth as data increased • Naturally better replication and failover
  • 17. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 17 UIM Initial MongoDB Schema Source Records { _id: <ObjectId>, dob: ‘19010101’, … } Addresses Aliases Phone Numbers Identifiers
  • 18. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 18 MongoDB Performance 0 5000 10000 15000 20000 25000 Proof of Concept (100M Records) Average Inserts / Minute ANSI SQL 18,000 / minute MongoDB 2.6.5 20,000 / minute
  • 19. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 19 UIM MongoDB Lesson – Category Lookup • Candidate lookup queries required multiple indexes • Candidate queries could not use queries optimized for shards Categories { _id: <ObjectId>, sourceRecordId: <Source Record ObjectId> category: ‘FN-DOB’, value: ‘SEAN-19010101’ } • Shard key is Category + Value • Candidate lookup now can use queries that are optimized for shards • Only one additional index was required
  • 20. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 20 UIM MongoDB Lesson – Source Record ID Lookup • Source Record lookup requires a query against the record’s logical key • This query required an additional index • Could not use queries optimized for shards Source Record IDs { _id: <SourceRecord Logical ID>, sourceRecord: <SourceRecord ObjectId> } • Source Record lookups now use default index • Source Record lookups can use queries optimized for shards
  • 21. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 21 UIM MongoDB Lesson – Single Document Category Lookup • Candidate selection returns multiple records for each value • The candidates returned are always the same set • The Category collection still has an additional index Categories { _id: { category: ‘FN-DOB’, value: ‘SEAN-19010101’}, sourceRecords: [ <SourceRecord ObjectId>, <SourceRecord ObjectId>,…] } • Allows single document retrieval • Removes additional index
  • 22. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 22 UIM Final MongoDB Schema Categories { _id: { category: ‘FN-DOB’, value: ‘SEAN-19010101’}, sourceRecords: [ <SourceRecord ObjectId>, <SourceRecord ObjectId>,…] } Source Record IDs { _id: <SourceRecord Logical ID>, sourceRecord: <SourceRecord ObjectId> } Source Records { _id: <ObjectId>, dob: ‘19010101’, … } Addresses Aliases Phone Numbers Identifiers
  • 23. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 23 Major Database Steps Source Record Lookup (SQL) SELECT * FROM SourceRecord WHERE SourceRecordID = ? Source Record Lookup (MongoDB) db.SourceRecordIDs.find({_id: ?}) Find Candidate Records (SQL) SELECT category, id FROM ( SELECT DISTINCT ‘FN-LN-ZIP’ as category, SourceRecordID from Xref WHERE FirstName = ? AND LastName = ? AND Zip = ? UNION ALL SELECT DISTINCT ‘FN-DOB’ as category, SourceRecordID from Xref WHERE FirstName = ? AND Dob = ? UNION ALL SELECT DISTINCT ‘LN-DOB’ as category, SourceRecordID from Xref WHERE LastName = ? AND Dob = ? UNION ALL … ) Find Candidate Records (MongoDB) db.Categories. find({$or:[ {"_id.category":“FN-LN-ZIP", "_id.value" :?}, {"_id.category":"FN-DOB", "_id.value" :?}, {"_id.category":“LN-DOB", "_id.value" :?}, …]})
  • 24. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 24 Major Database Steps Pull Candidate / Existing Record Data (SQL) SELECT * FROM SourceRecord LEFT OUTER JOIN Addresses on (SourceRecord.id = Addresses.SourceRecordID) LEFT OUTER JOIN Phones on (SourceRecord.id = Phones.SourceRecordID) LEFT OUTER JOIN Identifiers on (SourceRecord.id = Identifiers.SourceRecordID) LEFT OUTER JOIN Aliases on (SourceRecord.id = Aliases.SourceRecordID) LEFT OUTER JOIN Xrefs on (SourceRecord.id = Aliases.SourceRecordID) WHERE SourceRecord.id = ? Pull Candidate / Existing Record Data (MongoDB) db.SourceRecords.find({_id: ?})
  • 25. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 25 Major Database Steps Insert / Update Record Data (SQL) INSERT INTO SourceRecord VALUES (?,?,…) -or- UPDATE SourceRecord SET VALUES = (?,?,..) WHERE id = ? INSERT INTO Addresses VALUES (?,?,…) -or- UPDATE Addresses SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Addresses WHERE id = ? INSERT INTO PhoneNumbers VALUES (?,?,…) -or- UPDATE PhoneNumbers SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM PhoneNumbers WHERE id = ? INSERT INTO Identifiers VALUES (?,?,…) -or- UPDATE Identifiers SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Identifiers WHERE id = ? INSERT INTO Aliases VALUES (?,?,…) -or- UPDATE Aliases SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Aliases WHERE id = ? INSERT INTO Xref VALUES (?,?,…) -or- UPDATE Xref SET VALUES = (?,?,…) WHERE id = ? -or- DELETE FROM Xref WHERE id = ? Insert / Update Record Data (MongoDB) db.SourceRecords.save({…}) db.SourceRecordIds.save({…}) db.Categories.save({…})
  • 26. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 26 UIM MongoDB Schema - Benefits Simplified Structure Simplified Document Retrieval / Document Writes Simplified Queries Reduced Number of Indexes Futureproofing – Sharding Improved Failover / Replication
  • 27. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 27 UIM MongoDB Reference Architecture
  • 28. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 28 MongoDB Performance 0 10000 20000 30000 40000 50000 60000 70000 80000 Reference DB (300M Records) Average Inserts / Minute MongoDB 3.2.9 70,000 / minute ANSI SQL 15,000 / minute
  • 29. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 29 In Summary •We started with an ANSI SQL database •We transitioned to MongoDB which better fit our natural model •With a few iterations we developed a final model that – Simplified the schema – Minimized indexes – Simplified queries – Allowed all queries to be optimized for shards •Final Architecture – Significantly Improved performance – Allowed for simpler future growth – Improved failover / replication
  • 30. © Experian Private and confidential Moving Universal Identity Manager from ANSI SQL to MongoDB 30 Questions / Comments
  • 31. ©2017 Experian Information Solutions, Inc. All rights reserved. Experian and the Experian marks used herein are trademarks or registered trademarks of Experian Information Solutions, Inc. Other product and company names mentioned herein are the trademarks of their respective owners. No part of this copyrighted work may be reproduced, modified, or distributed in any form or manner without the prior written permission of Experian. Experian [Public. Confidential. Internal. Restricted. – please choose the appropriate category]

Editor's Notes

  1. Time on my story Improved quality of life Time spent maintaining Creaking architecture
  2. - Don't read vision - just pause & look - basically we're taking large data and using technology to help healthcare companies
  3. * Pay & Chase * Merging Hospital data * Medical History * Allergies
  4. Move quickly, build momentum DB Size: * Hundreds of Millions * Multiple DB Servers difficult Table Joins * All data required every time * Select query had 5 joins Xref * Denormalized * Huge, maintenance issue Indexes * Many required Multiple writes per record Replication & Failover * Replication difficult & time consuming * Failover is manual Recovery is painful - Why did we think to use MongoDB?
  5. Why did we think to use MongoDB? Had been thinking in SQL, not sure we’d get results – so we did a Proof of concept
  6. call out color coding
  7. 11% increase
  8. Principle: Fewer indexes Pretty much right away, categories
  9. Principle: Shard optimization - Like Categories, SRID'
  10. Principle: Single document retrieval MongoDB Engineer, helped us come up with - Add "how difficult it would be to add categories in the middle of development"
  11. - Remind blue = sql, purple = MongoDB
  12. Quality of life again Simplified Structure * Schema reduced to 1 main collection plus 2 helpers * Xref table not needed Simplified queries * Queries use _id fieldsd for selection /updates * Complex SQL qeries greatly simplified Futureproofing - Shards * All collections can be sharded * Queries will run against a single shard Simplified Document retrieval / Writes * Records are retrieved or written as single doc * Candidates retrieved as a single doc per category Reduced Indexes * Candidate selection required most, now requires single index Improved failover / replication * Replica sets allow handling of lost servers better * Loss of a node is not a manual thing "Now I'd like to show you how it all fits together..."
  13. I’d like to show how it all fits together
  14. 300% instead of 11%
  15. - Stress it didn't take that long to optimize
  16. Closing slide [uses Holding Slide layout] This slide can be used as a ‘closing’ slide and should not include any additional text or graphics. The same slide layout is used as a presentation opening slide. The brand mark and data art graphic on this slide layout are set up at the correct size and position and should not be altered.