SlideShare a Scribd company logo
From Pharmacist to
Analyst:
Leveraging MongoDB for
Real-Time Alerting to
Improve Business Outcomes
Presented by: David Munguia
Humana: Healthcare Services / Platforms
HUMANA HCS PLATFORMS
OVERVIEW
• Background
• MongoDB Journey & Lessons Learned
• You Can Do It!
• Closing and Questions
HUMANA HCS PLATFORMS
WHO ARE WE?
• High Performance Rule Based
Analytics
• HEDIS Reporting & Compliance
• Improved Member Outcomes
• Batch and Real-time Deployments
• SpecialtyRx
• Official Kickoff November 2017
• Stream Based Platform
• MongoDB Journey Began Here!
HUMANA HCS PLATFORMS: SpecialtyRx
NRT
Pipeline
Analytic
Services
Batch
Driver
Alert
Sink
ETL
Services
Message Bus
• Provide Alerting for Specialty Medications (e.g.
Humera, Embril, etc) at Point-of-Service
• Supports Daily Batch Runs
• Concurrent ETL Jobs
• Modern Streaming Platform
• MongoDB & Apache Spark Central
Technologies
• Language Agnostic (C/C++, Scala, Python)
• Clinical Quality Language Engine (CQL)
HUMANA HCS PLATFORMS: SpecialtyRx – Clinical Quality Language (CQL)
HUMANA HCS PLATFORMS
“No Battle Plan Survives
Contact with the Enemy.”
Helmuth von Moltke
HUMANA HCS PLATFORMS
“No Battle Plan Survives
Contact with the Enemy.”
Helmuth von Moltke
“Everyone has a plan ‘till you
get punched in the mouth.”
Mike Tyson
HUMANA HCS PLATFORMS
LESSON 1 – TRY IT
• I Hated Hearing it!!!
• No Two Use-Cases are the Same
• MongoDB Made it Doable
• Our Mindset
HUMANA HCS PLATFORMS
LESSON 2 – USE AVAILABLE RESOURCES
• Befriend your MongoDB
Representative
• Sigfrido Narvaez
• Giovanni DeVita
• Engage MongoDB Professional Services
• Suggest 6 Day Engagement over 2 Visits
• When you have Security Concerns
• Consultants have Undocumented Tools
• MongoDB University
• Stack Overflow
• Github Repositories!
HUMANA HCS PLATFORMS
LESSON 3 – MongoDB ≠ Oracle
• SQL-Let it Go!
• JSON is a Blessing
• $lookup is Like C/C++ goto
• Reserved for Special Cases
• We’re not that Special
• MongoDB has Fewer Features
• But, That is Good Thing
• Simplifies ‘Try-ability’
• Plenty of Usable Build Patterns
• Bucket, Subset, Tree & Graph
HUMANA HCS PLATFORMS
LESSON 3 – MongoDB ≠ Oracle
• SQL-Let it Go!
• JSON is a Blessing
• $lookup is Like C/C++ goto
• Reserved for Special Cases
• We’re not that Special
• MongoDB has Fewer Features
• That is Good
• Try-ability
• Plenty of Usable Build Patterns
• Bucket, Subset, Tree & Graph
CREATE TABLE member (
member_id NUMBER generated BY DEFAULT AS identity,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
PRIMARY KEY(member_id)
);
db.createCollection(‘member’); // assuming member_id = _id
Or
SELECT *
FROM members a,
member_address b
WHERE a.member_id = b.member_id
AND a.member_id = ‘abcd’;
db.patients.find( {_id: ‘abcd’ } );
HUMANA HCS PLATFORMS
LESSON 4 – SCHEMAS & INDEXING
• Have a Complete Understanding
of your Access Patterns
• Utilize Covered Queries
• Index Order Matters
• Your First Version will Suck
HUMANA HCS PLATFORMS
LESSON 5 – SIZING CONSIDERATIONS
• Stay Clear of 16MB Document Limit
• Keep to Less Than 1MB
• 800B Avg.
• Our Inflection Point: 200M Documents
• Prefer Foreground Indexing
• Background Indexing Can Slow Normal
Operations
• Smaller Index Sizes
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING
• Pre-Splitting is the Process of Pre-
Chunking and Balancing Data Blocks
• 50% Science, 25% Magic, 25% Voodoo
• Automatic Splitting and Balancing is Slow
and Consumes Resources
• The Choice of Shard Key and Pre-Splitting
Strategy is Crucial
• When do you Pre-Split? Refer to Lesson 1
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING • Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant of Hash Partitioning
• Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant of Hash Partitioning
• Try 1: Naïve member id Splitter
• Divided min/max keys into n bins
• Keys were “clumpy”
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING • Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant
• Try 1: Naïve member id Splitter
• Divided min/max keys into n bins
• Keys were “clumpy”
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING • Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant
• Try 1: Naïve member id Splitter
• Divided min/max keys into n bins
• Keys were “clumpy”
Still Created 25-40 Splits When Loading
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING • Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant
• Try 1: Naïve member id Splitter
• Divided min/max keys into n bins
• Keys were “clumpy”
• Try 2: MongoDB did Initial Work (5 days/Col)
1. Established IOPS, Network, Oplog Params
2. Stored _id, min/max for ns(database) in new Collection
3. Used python and “master_chunk” collection to auto-
generate pre-splitting JS scripts for each sharded
collection.
4. Load Data
HUMANA HCS PLATFORMS
LESSON 6 – PRE-SPLITTING • Shard Key: member identifier
• Non-Monotonic String Type
• Oracle Remnant
• Try 1: Naïve member id Splitter
• Divided min/max keys into n bins
• Keys were “clumpy”
• Try 2: MongoDB did Initial Work (5 days/Col)
1. Established IOPS, Network, Oplog Params
2. Stored _id, min/max for ns(database) in new Collection
3. Used python and “master_chunk” collection to auto-
generate pre-splitting JS scripts for each sharded
collection.
HUMANA HCS PLATFORMS
APACHE SPARK & MONGODB
mongos
CQL
mongos
CQL
[Message Pipeline]
[Message Pipeline]
mongos
[Message Pipeline]
v1
v2
• MongoDB Connector for Apache Spark
• Highly Recommended
• Scalable and Resilient
• Perfect for Many ETL Jobs
• Leverages MongoDB Agg. Pipelines
• Optimized for MongoDB Topology
• Allowed us to Concentrate on Problem
• Thank you Bryan!
HUMANA HCS PLATFORMS
APACHE SPARK & MONGODB
mongos
CQL
mongos
CQL
[Message Pipeline]
[Message Pipeline]
mongos
[Message Pipeline]
v1
v2
• MongoDB Connector for Apache Spark
• Scalable and Resilient
• Strong Contender for ETL Jobs
• Leverages MongoDB Agg. Pipelines
• Optimized for MongoDB Topology
• Allowed us to Concentrate on Problem
• Thank you Bryan!
HUMANA HCS PLATFORMS
LESSON 7 – TURN THE TABLES
• Exploit New Opportunities
• Active Medications
• Pre-Filtering (CQL)
• Exploit New Opportunities
• Active Medications
• Pre-Filtering (CQL)
HUMANA HCS PLATFORMS
LESSON 7 – TURN THE TABLES
{
"_id": "076438350931",
"patient_id": "xxxxxxxxxxxxxx",
"claim_status": "D",
"claim_id": "076438xxxxxx",
"ndc": "00310028060",
"date_filled": "2017-07-29:00:00.000Z",
"dispensed_qty": 90,
"days_supply": 90,
"avg_qty_per_day": 1,
"active_end_date": "2017-11-28T00:00:00.000Z",
"rx_number": "000000959377",
}
HUMANA HCS PLATFORMS
LESSON 7 – TURN THE TABLES
• Turn Disadvantages into Advantages
• Active Medications
• Pre-Filtering (CQL)
HUMANA HCS PLATFORMS
LESSON 7 – TURN THE TABLES
• Turn Disadvantages into Advantages
• Active Medications
• Pre-Filtering (CQL)
def preFilteringPopulation (
patient_collection: String,
engineList: String,
grpcMessageSize: Int,
batchType: String): Boolean = {
//-- Configs assumed to be passed-in through spark-submit
val sparkSession = SparkSession.builder().getOrCreate()
var status = true
try {
var response = null.asInstanceOf[com.tsi.grpc.EngineServer.BatchPopulationResponse]
val engines = engineList.split(",").map(_.trim).toList
var flag = false
var idx = 0
while ( !flag && idx < engines.length ){
var client = new gRpcEngineClient(engines(idx), grpcMessageSize)
response = client.batchPopulation(patient_collection,batchType,rundate_str)
if (response == null || response.status == false) {
println("Pre-filtering process failed with engine=" + engines(idx))
idx += 1
}…
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• C++ Stream Builders Are Awesome
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• C++ Stream Builders Are Awesome
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
}
],
"Encrypted": true,
"VolumeType": "io1",
"VolumeId": "vol-02cbed099c22xxxxx",
"State": "in-use",
"KmsKeyId": "arn:aws:kms:us-east-1:068955290847:key/8f175f51-60fb-4750-bbfe,
"SnapshotId": "",
"Iops": 6000,
"CreateTime": "2019-01-14T19:24:42.150Z",
"Size": 1500
}
]
}
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• C++ Stream Builders Are Awesome
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• C++ Stream Builders Are Awesome
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
bsoncxx::builder::stream::document filterBuilder;
filterBuilder
<< "patient_id" << patientId
<< "ndc"
<< bsoncxx::builder::stream::open_document
<< "$in" << targetDrugs
<< bsoncxx::builder::stream::close_document
<< "claim_status" << "P"
<< "date_filled"
<< bsoncxx::builder::stream::open_document
<< "$lte" << endDate
<< bsoncxx::builder::stream::close_document
<< "active_end_date"
<< bsoncxx::builder::stream::open_document
<< "$gte" << startDate
<< bsoncxx::builder::stream::close_document
<< "provider_id"
<< bsoncxx::builder::stream::open_document
<< "$exists" << true
<< "$ne" << ""
<< bsoncxx::builder::stream::close_document;
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• C++ Stream Builders Are Awesome
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
HUMANA HCS PLATFORMS: LESSON 7
MongoDB in the Cloud & Other Weirdness
• Use Dedicated IOPS (mongod and ETL Instances)
• Take Advantage of Mutable Resources
• “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx --
profile prof1 --region us-east-1”
• Keep Hyperthreading On
• When you have $match Everything Looks Like a Nail
• Must Iterate through Iterator when Using $out
• Setting Write Concerns when NOT Writing (not pretty)
• C++ Stream Constructors Are Awesome
HUMANA HCS PLATFORMS
SO, WHAT HAPPENED…
• Went Live May 2019 with Full
Membership
• Largest Deployment at Humana
• Over 80 Customer Measures
• Batches Went from 30 to 4 Hours
• Compressed 2 Week ETL to 5 Days
HUMANA HCS PLATFORMS
CLOSING
• Large Projects are Daunting, But
You Can Do It
• Have a “try it” attitude
• You Have Many Resources
• Let Go of SQL (Spark--I Know)
• Understand Your Access Patterns
• Pre-Splitting
• Turn your Disadvantages to
Advantages
ACKNOWLEDGEMENTS
• Humana
• Christopher Jaramillo
• Sathish John
• Raj Basavaraju
• Walter von Westphalen
• MongoDB
• Sigfrido Narvaez
• Giovanni DeVita
• MongoDB and SoCal Chapter
Team Members that made this possible:
THANK YOUHUMANA HCS INSIGHT PLATFORMS
Humana: Healthcare Services / Platforms
QUESTIONS!

More Related Content

What's hot

Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBWebinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB
MongoDB
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation Performance
MongoDB
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
MongoDB
 
How To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own DatasourceHow To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own Datasource
MongoDB
 
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
Webinar: Deep Dive on Apache Flink State - Seth WiesmanWebinar: Deep Dive on Apache Flink State - Seth Wiesman
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
Ververica
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and Scale
MongoDB
 
Constructing Web APIs with Rack, Sinatra and MongoDB
Constructing Web APIs with Rack, Sinatra and MongoDBConstructing Web APIs with Rack, Sinatra and MongoDB
Constructing Web APIs with Rack, Sinatra and MongoDB
Oisin Hurley
 
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
StreamNative
 
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
MongoDB
 
Using MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB DayUsing MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB Day
hayesdavis
 
Webinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage EngineWebinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage Engine
MongoDB
 
Cassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsCassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra Internals
DataStax
 
Document validation in MongoDB 3.2
Document validation in MongoDB 3.2Document validation in MongoDB 3.2
Document validation in MongoDB 3.2
Andrew Morgan
 
Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack
MongoDB
 
Webinar: When to Use MongoDB
Webinar: When to Use MongoDBWebinar: When to Use MongoDB
Webinar: When to Use MongoDB
MongoDB
 
CouchDB
CouchDBCouchDB
CouchDB
codebits
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
MongoDB
 
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Apache Con 2021 : Apache Bookkeeper Key Value Store and use casesApache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Shivji Kumar Jha
 
MongoDB Europe 2016 - Building WiredTiger
MongoDB Europe 2016 - Building WiredTigerMongoDB Europe 2016 - Building WiredTiger
MongoDB Europe 2016 - Building WiredTiger
MongoDB
 
HBaseCon 2015: HBase @ CyberAgent
HBaseCon 2015: HBase @ CyberAgentHBaseCon 2015: HBase @ CyberAgent
HBaseCon 2015: HBase @ CyberAgent
HBaseCon
 

What's hot (20)

Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBWebinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation Performance
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
 
How To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own DatasourceHow To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own Datasource
 
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
Webinar: Deep Dive on Apache Flink State - Seth WiesmanWebinar: Deep Dive on Apache Flink State - Seth Wiesman
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and Scale
 
Constructing Web APIs with Rack, Sinatra and MongoDB
Constructing Web APIs with Rack, Sinatra and MongoDBConstructing Web APIs with Rack, Sinatra and MongoDB
Constructing Web APIs with Rack, Sinatra and MongoDB
 
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021
 
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
Webinar: Developing with the modern App Stack: MEAN and MERN (with Angular2 a...
 
Using MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB DayUsing MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB Day
 
Webinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage EngineWebinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage Engine
 
Cassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsCassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra Internals
 
Document validation in MongoDB 3.2
Document validation in MongoDB 3.2Document validation in MongoDB 3.2
Document validation in MongoDB 3.2
 
Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack
 
Webinar: When to Use MongoDB
Webinar: When to Use MongoDBWebinar: When to Use MongoDB
Webinar: When to Use MongoDB
 
CouchDB
CouchDBCouchDB
CouchDB
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
 
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Apache Con 2021 : Apache Bookkeeper Key Value Store and use casesApache Con 2021 : Apache Bookkeeper Key Value Store and use cases
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
 
MongoDB Europe 2016 - Building WiredTiger
MongoDB Europe 2016 - Building WiredTigerMongoDB Europe 2016 - Building WiredTiger
MongoDB Europe 2016 - Building WiredTiger
 
HBaseCon 2015: HBase @ CyberAgent
HBaseCon 2015: HBase @ CyberAgentHBaseCon 2015: HBase @ CyberAgent
HBaseCon 2015: HBase @ CyberAgent
 

Similar to MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-Time Alerting to Improve Business Outcomes

Facebook Presto presentation
Facebook Presto presentationFacebook Presto presentation
Facebook Presto presentation
Cyanny LIANG
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
Antonio Pintus
 
Deep Dive into Cassandra
Deep Dive into CassandraDeep Dive into Cassandra
Deep Dive into Cassandra
Brent Theisen
 
ITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cbormITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cborm
Ortus Solutions, Corp
 
ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
Roy Russo
 
SolrCloud on Hadoop
SolrCloud on HadoopSolrCloud on Hadoop
SolrCloud on Hadoop
Alex Moundalexis
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORM
Ortus Solutions, Corp
 
SDEC2011 NoSQL concepts and models
SDEC2011 NoSQL concepts and modelsSDEC2011 NoSQL concepts and models
SDEC2011 NoSQL concepts and models
Korea Sdec
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
Brian DeShong
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Sean Laurent
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
Mauro Pompilio
 
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into LuceneLuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
eby
 
Hadoop - Introduction to Hadoop
Hadoop - Introduction to HadoopHadoop - Introduction to Hadoop
Hadoop - Introduction to Hadoop
Vibrant Technologies & Computers
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
bartzon
 
ログ収集プラットフォーム開発におけるElasticsearchの運用
ログ収集プラットフォーム開発におけるElasticsearchの運用ログ収集プラットフォーム開発におけるElasticsearchの運用
ログ収集プラットフォーム開発におけるElasticsearchの運用
LINE Corporation
 
Managing growth in Production Hadoop Deployments
Managing growth in Production Hadoop DeploymentsManaging growth in Production Hadoop Deployments
Managing growth in Production Hadoop Deployments
DataWorks Summit
 
Cassandra Talk: Austin JUG
Cassandra Talk: Austin JUGCassandra Talk: Austin JUG
Cassandra Talk: Austin JUG
Stu Hood
 
Exploiting NoSQL Like Never Before
Exploiting NoSQL Like Never BeforeExploiting NoSQL Like Never Before
Exploiting NoSQL Like Never Before
Francis Alexander
 

Similar to MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-Time Alerting to Improve Business Outcomes (20)

Facebook Presto presentation
Facebook Presto presentationFacebook Presto presentation
Facebook Presto presentation
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
 
Deep Dive into Cassandra
Deep Dive into CassandraDeep Dive into Cassandra
Deep Dive into Cassandra
 
ITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cbormITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cborm
 
ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
 
SolrCloud on Hadoop
SolrCloud on HadoopSolrCloud on Hadoop
SolrCloud on Hadoop
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORM
 
SDEC2011 NoSQL concepts and models
SDEC2011 NoSQL concepts and modelsSDEC2011 NoSQL concepts and models
SDEC2011 NoSQL concepts and models
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
 
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into LuceneLuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
 
Hadoop - Introduction to Hadoop
Hadoop - Introduction to HadoopHadoop - Introduction to Hadoop
Hadoop - Introduction to Hadoop
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
ログ収集プラットフォーム開発におけるElasticsearchの運用
ログ収集プラットフォーム開発におけるElasticsearchの運用ログ収集プラットフォーム開発におけるElasticsearchの運用
ログ収集プラットフォーム開発におけるElasticsearchの運用
 
Managing growth in Production Hadoop Deployments
Managing growth in Production Hadoop DeploymentsManaging growth in Production Hadoop Deployments
Managing growth in Production Hadoop Deployments
 
Cassandra Talk: Austin JUG
Cassandra Talk: Austin JUGCassandra Talk: Austin JUG
Cassandra Talk: Austin JUG
 
Exploiting NoSQL Like Never Before
Exploiting NoSQL Like Never BeforeExploiting NoSQL Like Never Before
Exploiting NoSQL Like Never Before
 

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: 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
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
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: 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...
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
 

Recently uploaded

Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
aakash malhotra
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
Shiv Technolabs
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
Anant Gupta
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
ssuser1915fe1
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
digitalxplive
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 

Recently uploaded (20)

Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 

MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-Time Alerting to Improve Business Outcomes

  • 1. From Pharmacist to Analyst: Leveraging MongoDB for Real-Time Alerting to Improve Business Outcomes Presented by: David Munguia Humana: Healthcare Services / Platforms
  • 2. HUMANA HCS PLATFORMS OVERVIEW • Background • MongoDB Journey & Lessons Learned • You Can Do It! • Closing and Questions
  • 3. HUMANA HCS PLATFORMS WHO ARE WE? • High Performance Rule Based Analytics • HEDIS Reporting & Compliance • Improved Member Outcomes • Batch and Real-time Deployments • SpecialtyRx • Official Kickoff November 2017 • Stream Based Platform • MongoDB Journey Began Here!
  • 4. HUMANA HCS PLATFORMS: SpecialtyRx NRT Pipeline Analytic Services Batch Driver Alert Sink ETL Services Message Bus • Provide Alerting for Specialty Medications (e.g. Humera, Embril, etc) at Point-of-Service • Supports Daily Batch Runs • Concurrent ETL Jobs • Modern Streaming Platform • MongoDB & Apache Spark Central Technologies • Language Agnostic (C/C++, Scala, Python) • Clinical Quality Language Engine (CQL)
  • 5. HUMANA HCS PLATFORMS: SpecialtyRx – Clinical Quality Language (CQL)
  • 6. HUMANA HCS PLATFORMS “No Battle Plan Survives Contact with the Enemy.” Helmuth von Moltke
  • 7. HUMANA HCS PLATFORMS “No Battle Plan Survives Contact with the Enemy.” Helmuth von Moltke “Everyone has a plan ‘till you get punched in the mouth.” Mike Tyson
  • 8. HUMANA HCS PLATFORMS LESSON 1 – TRY IT • I Hated Hearing it!!! • No Two Use-Cases are the Same • MongoDB Made it Doable • Our Mindset
  • 9. HUMANA HCS PLATFORMS LESSON 2 – USE AVAILABLE RESOURCES • Befriend your MongoDB Representative • Sigfrido Narvaez • Giovanni DeVita • Engage MongoDB Professional Services • Suggest 6 Day Engagement over 2 Visits • When you have Security Concerns • Consultants have Undocumented Tools • MongoDB University • Stack Overflow • Github Repositories!
  • 10. HUMANA HCS PLATFORMS LESSON 3 – MongoDB ≠ Oracle • SQL-Let it Go! • JSON is a Blessing • $lookup is Like C/C++ goto • Reserved for Special Cases • We’re not that Special • MongoDB has Fewer Features • But, That is Good Thing • Simplifies ‘Try-ability’ • Plenty of Usable Build Patterns • Bucket, Subset, Tree & Graph
  • 11. HUMANA HCS PLATFORMS LESSON 3 – MongoDB ≠ Oracle • SQL-Let it Go! • JSON is a Blessing • $lookup is Like C/C++ goto • Reserved for Special Cases • We’re not that Special • MongoDB has Fewer Features • That is Good • Try-ability • Plenty of Usable Build Patterns • Bucket, Subset, Tree & Graph CREATE TABLE member ( member_id NUMBER generated BY DEFAULT AS identity, first_name VARCHAR2(50) NOT NULL, last_name VARCHAR2(50) NOT NULL, PRIMARY KEY(member_id) ); db.createCollection(‘member’); // assuming member_id = _id Or SELECT * FROM members a, member_address b WHERE a.member_id = b.member_id AND a.member_id = ‘abcd’; db.patients.find( {_id: ‘abcd’ } );
  • 12. HUMANA HCS PLATFORMS LESSON 4 – SCHEMAS & INDEXING • Have a Complete Understanding of your Access Patterns • Utilize Covered Queries • Index Order Matters • Your First Version will Suck
  • 13. HUMANA HCS PLATFORMS LESSON 5 – SIZING CONSIDERATIONS • Stay Clear of 16MB Document Limit • Keep to Less Than 1MB • 800B Avg. • Our Inflection Point: 200M Documents • Prefer Foreground Indexing • Background Indexing Can Slow Normal Operations • Smaller Index Sizes
  • 14. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Pre-Splitting is the Process of Pre- Chunking and Balancing Data Blocks • 50% Science, 25% Magic, 25% Voodoo • Automatic Splitting and Balancing is Slow and Consumes Resources • The Choice of Shard Key and Pre-Splitting Strategy is Crucial • When do you Pre-Split? Refer to Lesson 1
  • 15. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant of Hash Partitioning
  • 16. • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant of Hash Partitioning • Try 1: Naïve member id Splitter • Divided min/max keys into n bins • Keys were “clumpy” HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING
  • 17. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant • Try 1: Naïve member id Splitter • Divided min/max keys into n bins • Keys were “clumpy”
  • 18. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant • Try 1: Naïve member id Splitter • Divided min/max keys into n bins • Keys were “clumpy” Still Created 25-40 Splits When Loading
  • 19. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant • Try 1: Naïve member id Splitter • Divided min/max keys into n bins • Keys were “clumpy” • Try 2: MongoDB did Initial Work (5 days/Col) 1. Established IOPS, Network, Oplog Params 2. Stored _id, min/max for ns(database) in new Collection 3. Used python and “master_chunk” collection to auto- generate pre-splitting JS scripts for each sharded collection. 4. Load Data
  • 20. HUMANA HCS PLATFORMS LESSON 6 – PRE-SPLITTING • Shard Key: member identifier • Non-Monotonic String Type • Oracle Remnant • Try 1: Naïve member id Splitter • Divided min/max keys into n bins • Keys were “clumpy” • Try 2: MongoDB did Initial Work (5 days/Col) 1. Established IOPS, Network, Oplog Params 2. Stored _id, min/max for ns(database) in new Collection 3. Used python and “master_chunk” collection to auto- generate pre-splitting JS scripts for each sharded collection.
  • 21. HUMANA HCS PLATFORMS APACHE SPARK & MONGODB mongos CQL mongos CQL [Message Pipeline] [Message Pipeline] mongos [Message Pipeline] v1 v2 • MongoDB Connector for Apache Spark • Highly Recommended • Scalable and Resilient • Perfect for Many ETL Jobs • Leverages MongoDB Agg. Pipelines • Optimized for MongoDB Topology • Allowed us to Concentrate on Problem • Thank you Bryan!
  • 22. HUMANA HCS PLATFORMS APACHE SPARK & MONGODB mongos CQL mongos CQL [Message Pipeline] [Message Pipeline] mongos [Message Pipeline] v1 v2 • MongoDB Connector for Apache Spark • Scalable and Resilient • Strong Contender for ETL Jobs • Leverages MongoDB Agg. Pipelines • Optimized for MongoDB Topology • Allowed us to Concentrate on Problem • Thank you Bryan!
  • 23. HUMANA HCS PLATFORMS LESSON 7 – TURN THE TABLES • Exploit New Opportunities • Active Medications • Pre-Filtering (CQL)
  • 24. • Exploit New Opportunities • Active Medications • Pre-Filtering (CQL) HUMANA HCS PLATFORMS LESSON 7 – TURN THE TABLES { "_id": "076438350931", "patient_id": "xxxxxxxxxxxxxx", "claim_status": "D", "claim_id": "076438xxxxxx", "ndc": "00310028060", "date_filled": "2017-07-29:00:00.000Z", "dispensed_qty": 90, "days_supply": 90, "avg_qty_per_day": 1, "active_end_date": "2017-11-28T00:00:00.000Z", "rx_number": "000000959377", }
  • 25. HUMANA HCS PLATFORMS LESSON 7 – TURN THE TABLES • Turn Disadvantages into Advantages • Active Medications • Pre-Filtering (CQL)
  • 26. HUMANA HCS PLATFORMS LESSON 7 – TURN THE TABLES • Turn Disadvantages into Advantages • Active Medications • Pre-Filtering (CQL) def preFilteringPopulation ( patient_collection: String, engineList: String, grpcMessageSize: Int, batchType: String): Boolean = { //-- Configs assumed to be passed-in through spark-submit val sparkSession = SparkSession.builder().getOrCreate() var status = true try { var response = null.asInstanceOf[com.tsi.grpc.EngineServer.BatchPopulationResponse] val engines = engineList.split(",").map(_.trim).toList var flag = false var idx = 0 while ( !flag && idx < engines.length ){ var client = new gRpcEngineClient(engines(idx), grpcMessageSize) response = client.batchPopulation(patient_collection,batchType,rundate_str) if (response == null || response.status == false) { println("Pre-filtering process failed with engine=" + engines(idx)) idx += 1 }…
  • 27. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • C++ Stream Builders Are Awesome • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty)
  • 28. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • C++ Stream Builders Are Awesome • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty) } ], "Encrypted": true, "VolumeType": "io1", "VolumeId": "vol-02cbed099c22xxxxx", "State": "in-use", "KmsKeyId": "arn:aws:kms:us-east-1:068955290847:key/8f175f51-60fb-4750-bbfe, "SnapshotId": "", "Iops": 6000, "CreateTime": "2019-01-14T19:24:42.150Z", "Size": 1500 } ] }
  • 29. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • C++ Stream Builders Are Awesome • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty)
  • 30. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • C++ Stream Builders Are Awesome • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty) bsoncxx::builder::stream::document filterBuilder; filterBuilder << "patient_id" << patientId << "ndc" << bsoncxx::builder::stream::open_document << "$in" << targetDrugs << bsoncxx::builder::stream::close_document << "claim_status" << "P" << "date_filled" << bsoncxx::builder::stream::open_document << "$lte" << endDate << bsoncxx::builder::stream::close_document << "active_end_date" << bsoncxx::builder::stream::open_document << "$gte" << startDate << bsoncxx::builder::stream::close_document << "provider_id" << bsoncxx::builder::stream::open_document << "$exists" << true << "$ne" << "" << bsoncxx::builder::stream::close_document;
  • 31. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • C++ Stream Builders Are Awesome • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty)
  • 32. HUMANA HCS PLATFORMS: LESSON 7 MongoDB in the Cloud & Other Weirdness • Use Dedicated IOPS (mongod and ETL Instances) • Take Advantage of Mutable Resources • “aws ec2 modify-volume --iops 20000 --volume-id vol-02cbed099c22xxxxx -- profile prof1 --region us-east-1” • Keep Hyperthreading On • When you have $match Everything Looks Like a Nail • Must Iterate through Iterator when Using $out • Setting Write Concerns when NOT Writing (not pretty) • C++ Stream Constructors Are Awesome
  • 33. HUMANA HCS PLATFORMS SO, WHAT HAPPENED… • Went Live May 2019 with Full Membership • Largest Deployment at Humana • Over 80 Customer Measures • Batches Went from 30 to 4 Hours • Compressed 2 Week ETL to 5 Days
  • 34. HUMANA HCS PLATFORMS CLOSING • Large Projects are Daunting, But You Can Do It • Have a “try it” attitude • You Have Many Resources • Let Go of SQL (Spark--I Know) • Understand Your Access Patterns • Pre-Splitting • Turn your Disadvantages to Advantages
  • 35. ACKNOWLEDGEMENTS • Humana • Christopher Jaramillo • Sathish John • Raj Basavaraju • Walter von Westphalen • MongoDB • Sigfrido Narvaez • Giovanni DeVita • MongoDB and SoCal Chapter Team Members that made this possible:
  • 36. THANK YOUHUMANA HCS INSIGHT PLATFORMS
  • 37. Humana: Healthcare Services / Platforms QUESTIONS!