SlideShare a Scribd company logo
1 of 31
MongoDB and the
McGraw-Hill Education
Learning Analytics Platform:
Towards an Open, Scalable,
Streaming Solution for
Education
MongoDB World 2015
2
Outline
• McGraw-Hill Education
• My background
• The MHE Learning Analytics Platform (LAP)
• Standardized educational input events
• MongoDB schema design
• Server infrastructure
• Performance
• Conclusions
3
• Global Company with over 5,000 employees
• Now a Learning Science Company
• All content available digitally by Fall 2015
• Higher Ed system is Connect
• K-12 LMS is Engrade
• Adaptive systems LearnSmart, SmartBook
and ALEKS
McGraw-Hill Education
4
• Global and Marine Seismologist
• Small College Physics Professor
• Oracle Database Administrator
• Head of IT Operations at MIT Sloan School
of Management
• Head of MHE Digital Platform Group’s
Analytics team’s Data Science group
• Systems Engineer on this project
My Background
5
Motivation
 MHE has several digital educational platforms
including Connect for Higher Ed and Engrade for K-
12
 Instrument platforms to send student/educator
events in real time to a central system (LAP)
 Ingest and store education events in data store
(MongoDB)
 Analytics provides “insights” to students/educators
Introduction to LAP
6
Demo Connect Insight for Students (CIS)
Introduction to the LAP
7
Standardized education events (Caliper)
 Utilizes JSON-LD (linked data) format
 Caliper uses Actor - Verb - Object tuple to
form learning events (ex: student – submit –
test)
 Triggered from student/educator activity and
sent to LAP input API
IMS Caliper Format for
Education
8
LAP Architectural Design
LAP
Connect
Caliper
Event
Engrade
Caliper
Event
Other
Caliper
Events
9
LAP Architectural Design
Collection
Collection
Receiver
LAP
Ingestion
API
Connect
Caliper
Event
Engrade
Caliper
Event
Other
Caliper
Events
10
LAP Architectural Design
Connect
Caliper
Event
Collection
Collection
Receiver
Engrade
Caliper
Event
Other
Caliper
Events
LAP
Ingestion
API
Long-term
Storage
SQS
11
LAP Architectural Design
Collection
Collection
Worker
LAP
Ingestion
API
Long-term
Storage
SQS
MongoDB
Data Store
Connect
Caliper
Event
Engrade
Caliper
Event
Other
Caliper
Events
12
LAP Architectural Design
Collection
Collection
Worker
LAP
Ingestion
API
Long-term
Storage
SQS
MongoDB
Data Store
Results/
AnalysisResults/
Analysis
Output
API
Results/
Analysis
Connect
Caliper
Event
Engrade
Caliper
Event
Other
Caliper
Events
13
LAP Architectural Design
Collection
Collection
Worker
LAP
Ingestion
API
Long-term
Storage
SQS
MongoDB
Data Store
Results/
AnalysisResults/
Analysis
Output
API
Results/
Analysis
Results/
AnalysisResults/
Analysis
Connect
Insight for
Students
Engrade
Insight for
Teachers
Future
Insights
Insight
Output
API
Results/
Analysis
Connect
Caliper
Event
Engrade
Caliper
Event
Other
Caliper
Events
14
• JSON-LD input suggested a document store
• MongoDB accessible and well documented
• Provided needed performance and capacity
• Support from MongoDB Inc. (10Gen)
• Six Month Development Support contract
• Dedicated consultants
• Ongoing support contract
Why MongoDB?
15
Standardized education events (Caliper)
 Caliper (JSON-LD) produced by triggers in
the Connect Oracle database
 Triggered from student/educator activity and
sent to LAP input API
 LAP then verifies input, transforms into
MongoDB schema, calculates aggregates,
and sends to data visualizations
Data Flow Through the LAP
16
Data Flow Through the LAP
Standardized education events (Caliper
examples)
1. Assessment Created
2. Assessment Attempt Started
3. Assessment Attempt Submitted
4. Assessment Attempt Graded
An assessment is an on-line homework assignment, quiz or test
associated with a McGraw-Hill digital textbook.
{
"@context": " http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent",
"@type" : "AssessmentEvent",
"@id" : "mhe-caliper:connect-000/eventId/ea7db7cf-2ed9-43a3-b9d4-1472265157c5",
"generatedAtTime" : "2012-11-01T08:00:01",
"verb" : "created",
"actor" : {
"@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc3Nw==",
"@type" : "instructor"
},
"startedAtTime" : "2012-11-01T08:00:00",
"object" : {
"@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==",
"@type": "assessment",
"category" : "homework",
"origin" : "ASSESSMENT",
"topics" : ["addition", "subtraction"],
"maxSubmissionsAllowed" : 3,
"maxTimeAllowed" : 10800,
"maxOutcomePossible" : 100.0,
"startDate" : "2012-11-01T04:00:00",
"dueDate" : "2012-11-05T08:00:00",
"assessmentName" : "Sample Assignment Zero",
"noFeedback" : false,
"ALEDisplayName" : "Critical Missions",
"attemptDeductions" : false,
"lateSubmissionDeduction" : true,
"studyAttempts" : true,
"forceSubmission" : true
},
"learningContext" : {
"enrolledIn" : "section",
"course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==",
"section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==",
"courseName" : "Intro to Algebra",
"sectionName" : "MWF 10-11",
"timeZone" : "America/New_York"
}
}
Assessment Created
Caliper Event
Assessment Attempt Started
Caliper Event
{
"@context" : "http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent",
"@type" : "AssessmentEvent",
"@id" : "mhe-caliper:connect-000/eventId/87231361-6c9c-4ef6-8ea3-49e39e78eb4d",
"generatedAtTime" : "2012-11-01T08:00:01",
"verb" : "started",
"actor" : {
"@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ==",
"@type" : "student"
},
"startedAtTime" : "2012-11-04T11:00:00",
"object" : {
"@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==",
"@type": "assessment"
},
"learningContext" : {
"enrolledIn" : "section",
"course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==",
"section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==",
"courseName" : "Intro to Algebra",
"sectionName" : "MWF 10-11",
"timeZone" : "America/New_York"
},
"attemptCount" : 1
}
Assessment Attempt Submitted
Caliper Event
{
"@context" : "http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent",
"@type" : "AssessmentEvent",
"@id" : "mhe-caliper:connect-000/eventId/b1db77ea-44a7-4f99-a819-e8b7e142f457",
"generatedAtTime" : "2012-11-01T08:00:01",
"verb" : "submitted",
"actor" : {
"@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ==",
"@type" : "student"
},
"startedAtTime" : "2012-11-04T11:45:01",
"object" : {
"@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==",
"@type" : "assessment",
"maxSubmissionsAllowed" : 3,
"maxTimeAllowed" : 10800,
"dueDate" : "2012-11-08T12:00:00"
},
"learningContext" : {
"enrolledIn" : "section",
"course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==",
"section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==",
"courseName" : "Intro to Algebra",
"sectionName" : "MWF 10-11",
"timeZone" : "America/New_York",
},
"attemptCount" : 1,
"timeTaken" : 1800
}
Assessment Attempt Graded
Caliper Event
{
"@context" : "http://mheducation.com/mhe-caliper/v1/OutcomeEvent",
"@type" : "OutcomeEvent",
"@id" : "mhe-caliper:connect-000/eventId/d7c28248-8e14-495e-9a5c-bb1cc1e0882d",
"generatedAtTime" : "2012-11-01T08:00:01",
"verb" : "graded",
"actor" : {
"@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc3Nw==",
"@type" : "instructor"
},
"startedAtTime" : "2012-11-04T19:00:00",
"object" : {
"@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==",
"@type": "assessment",
"student" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ=="
},
"learningContext" : {
"enrolledIn" : "section",
"course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==",
"section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==",
"courseName" : "Intro to Algebra",
"sectionName" : "MWF 10-11",
"timeZone" : "America/New_York"
},
"attemptCount" : 1,
"outcome" : .85,
"percentDeducted" : 5
}
21
Constraints on developing schema
 Several learning activities require multiple
Caliper events
• Example: student starts, submits, and is
graded to complete a quiz
 No guarantee that external applications will
send events in chronological order
 May receive duplicate events
Data Flow Through the LAP
22
MongoDB Schema – Version
0.1
V0.1
 2 schema model (student and
class)
Class Collection describes the
class, section and assignments
Student Collection
• Assessment array updated when
attempt is complete
• All events for an activity
• Attempts for each activity in a sub-array
23
V0.1
 Problems
• Too embedded
• Difficult to update a student doc
• Query-logic-update
MongoDB Schema
24
MongoDB Schema Version 2
• Remove nested arrays
• Move attempts doc up to the top level
V0.2
 Problems
• Still have query-logic-update
• Difficult to do atomically and maintain
deterministic state
25
MongoDB Schema Version 2
26
MongoDB Schema Version 3
{}
{}
• Remove arrays altogether
• Replace arrays with assessment and attempt docs,
each of which contains several sub-docs
V0.3
 Atomic updates now much easier
 Save raw Caliper event in event collection
 Only update student collection if all required events
are in event collection
27
MongoDB Schema Version 0.3
28
Query Utilization
• 3 basic queries to build visualization for CIS
• All student docs for current class
• All student docs for current student
• Class doc for current class
• All queries are on indexed parameters
• Student doc _id = class_id:student_id
• Class doc _id = class_id
29
Infrastructure
• All servers and storage is in AWS
• Backups done using EBS snapshots
• DB size estimated to grow about 500 [GB/year]
• Data size estimate small enough for un-sharded
cluster
• 3 member replica sets
• Write to primary, read from primary and secondary's
30
Performance
• Estimated peak load 100 [events/sec] = 100 [kB/sec]
• Average load of 1,500,000 events/day
• Max of 2,500,000 events per day
• Initially planned on sharded, replicated cluster but for
now do not need this
• Added SQS Queue to handle periods of very high
load
• Upgraded from MongoDB 2.6 to 3.0 (~ x10 faster)
31
Conclusions
• We have a learning analytics platform in
production utilizing a MongoDB data store
• After several iterations we developed a
MongoDB schema which:
• Handles data coming in arbitrary order
with duplicates
• Performs one step, atomic inserts
• Has high performance during peak loads

More Related Content

What's hot

Moving Hudl from MS SQL to MongoDB: A Two Year Journey
Moving Hudl from MS SQL to MongoDB: A Two Year JourneyMoving Hudl from MS SQL to MongoDB: A Two Year Journey
Moving Hudl from MS SQL to MongoDB: A Two Year JourneyMongoDB
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewPierre Baillet
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewNorberto Leite
 
MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016Norberto Leite
 
Webinar: Get Started with the MEAN Stack
Webinar: Get Started with the MEAN StackWebinar: Get Started with the MEAN Stack
Webinar: Get Started with the MEAN StackMongoDB
 
An Introduction to MongoDB Compass
An Introduction to MongoDB CompassAn Introduction to MongoDB Compass
An Introduction to MongoDB CompassMongoDB
 
MongoDB at Baidu
MongoDB at BaiduMongoDB at Baidu
MongoDB at BaiduMat Keep
 
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 AtlasMongoDB
 
Maximizing MongoDB Performance on AWS
Maximizing MongoDB Performance on AWSMaximizing MongoDB Performance on AWS
Maximizing MongoDB Performance on AWSMongoDB
 
Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2MongoDB
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketMongoDB
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMongoDB
 
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and Kafka
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and KafkaMongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and Kafka
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and KafkaMongoDB
 
An afternoon with mongo db new delhi
An afternoon with mongo db new delhiAn afternoon with mongo db new delhi
An afternoon with mongo db new delhiRajnish Verma
 
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...MongoDB
 
3 scenarios when to use MongoDB!
3 scenarios when to use MongoDB!3 scenarios when to use MongoDB!
3 scenarios when to use MongoDB!Edureka!
 
MongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineMongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineNorberto Leite
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB AtlasMongoDB
 
eHarmony - Messaging Platform with MongoDB Atlas
eHarmony - Messaging Platform with MongoDB Atlas eHarmony - Messaging Platform with MongoDB Atlas
eHarmony - Messaging Platform with MongoDB Atlas MongoDB
 

What's hot (20)

Moving Hudl from MS SQL to MongoDB: A Two Year Journey
Moving Hudl from MS SQL to MongoDB: A Two Year JourneyMoving Hudl from MS SQL to MongoDB: A Two Year Journey
Moving Hudl from MS SQL to MongoDB: A Two Year Journey
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of view
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature Preview
 
MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016
 
Webinar: Get Started with the MEAN Stack
Webinar: Get Started with the MEAN StackWebinar: Get Started with the MEAN Stack
Webinar: Get Started with the MEAN Stack
 
An Introduction to MongoDB Compass
An Introduction to MongoDB CompassAn Introduction to MongoDB Compass
An Introduction to MongoDB Compass
 
MongoDB at Baidu
MongoDB at BaiduMongoDB at Baidu
MongoDB at Baidu
 
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
 
Rpsonmongodb
RpsonmongodbRpsonmongodb
Rpsonmongodb
 
Maximizing MongoDB Performance on AWS
Maximizing MongoDB Performance on AWSMaximizing MongoDB Performance on AWS
Maximizing MongoDB Performance on AWS
 
Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
 
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and Kafka
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and KafkaMongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and Kafka
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and Kafka
 
An afternoon with mongo db new delhi
An afternoon with mongo db new delhiAn afternoon with mongo db new delhi
An afternoon with mongo db new delhi
 
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...
MongoDB .local Chicago 2019: A MongoDB Journey: Moving from a relational data...
 
3 scenarios when to use MongoDB!
3 scenarios when to use MongoDB!3 scenarios when to use MongoDB!
3 scenarios when to use MongoDB!
 
MongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineMongoDB: Agile Combustion Engine
MongoDB: Agile Combustion Engine
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB Atlas
 
eHarmony - Messaging Platform with MongoDB Atlas
eHarmony - Messaging Platform with MongoDB Atlas eHarmony - Messaging Platform with MongoDB Atlas
eHarmony - Messaging Platform with MongoDB Atlas
 

Viewers also liked

Modern SSO Using the MEAN Stack
Modern SSO Using the MEAN StackModern SSO Using the MEAN Stack
Modern SSO Using the MEAN StackMongoDB
 
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and Privacy
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and PrivacyBridging XAPI into Higher Education: Learning Analytics, Ownership, and Privacy
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and PrivacyChristian Glahn
 
Scalable Learning Analytics and Interoperability – an assessment of potential...
Scalable Learning Analytics and Interoperability – an assessment of potential...Scalable Learning Analytics and Interoperability – an assessment of potential...
Scalable Learning Analytics and Interoperability – an assessment of potential...LACE Project
 
Prospect for learning analytics to achieve adaptive learning model
Prospect for learning analytics to achieve adaptive learning modelProspect for learning analytics to achieve adaptive learning model
Prospect for learning analytics to achieve adaptive learning modelOpen Cyber University of Korea
 
Innovations in Analytics for Academic Publishing and Research Networking
Innovations in Analytics for Academic Publishing and Research NetworkingInnovations in Analytics for Academic Publishing and Research Networking
Innovations in Analytics for Academic Publishing and Research NetworkingSandra Hausmann
 
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)Michael Brito | Zeno Group
 
Caliper: tapping into the Learn Activity Stream
Caliper: tapping into the Learn Activity StreamCaliper: tapping into the Learn Activity Stream
Caliper: tapping into the Learn Activity StreamDan Rinzel
 
Learning Analytics Medea Webinar, part 2
Learning Analytics Medea Webinar, part 2Learning Analytics Medea Webinar, part 2
Learning Analytics Medea Webinar, part 2erikwoning
 
Publisher Monetization: Next Generation of Prime Time
Publisher Monetization: Next Generation of Prime TimePublisher Monetization: Next Generation of Prime Time
Publisher Monetization: Next Generation of Prime TimeTaboola
 
Building Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and HydraBuilding Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and HydraMarkus Lanthaler
 
Grand Challenges Learning Analytics
Grand Challenges Learning AnalyticsGrand Challenges Learning Analytics
Grand Challenges Learning Analyticsamberg
 
The Pedagogy, Andragogy, Heutagogy of Mobile Learning
The Pedagogy, Andragogy, Heutagogy of Mobile LearningThe Pedagogy, Andragogy, Heutagogy of Mobile Learning
The Pedagogy, Andragogy, Heutagogy of Mobile LearningJackie Gerstein, Ed.D
 
Education 3.0 and the Pedagogy of Mobile Learning
Education 3.0 and the Pedagogy of Mobile LearningEducation 3.0 and the Pedagogy of Mobile Learning
Education 3.0 and the Pedagogy of Mobile LearningJackie Gerstein, Ed.D
 

Viewers also liked (15)

Modern SSO Using the MEAN Stack
Modern SSO Using the MEAN StackModern SSO Using the MEAN Stack
Modern SSO Using the MEAN Stack
 
EDUPUB Phoenix 2015 報告
EDUPUB Phoenix 2015 報告EDUPUB Phoenix 2015 報告
EDUPUB Phoenix 2015 報告
 
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and Privacy
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and PrivacyBridging XAPI into Higher Education: Learning Analytics, Ownership, and Privacy
Bridging XAPI into Higher Education: Learning Analytics, Ownership, and Privacy
 
Scalable Learning Analytics and Interoperability – an assessment of potential...
Scalable Learning Analytics and Interoperability – an assessment of potential...Scalable Learning Analytics and Interoperability – an assessment of potential...
Scalable Learning Analytics and Interoperability – an assessment of potential...
 
Prospect for learning analytics to achieve adaptive learning model
Prospect for learning analytics to achieve adaptive learning modelProspect for learning analytics to achieve adaptive learning model
Prospect for learning analytics to achieve adaptive learning model
 
Innovations in Analytics for Academic Publishing and Research Networking
Innovations in Analytics for Academic Publishing and Research NetworkingInnovations in Analytics for Academic Publishing and Research Networking
Innovations in Analytics for Academic Publishing and Research Networking
 
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)
An Analytics-Driven Approach to Becoming an Effective Brand Publisher (CaaS)
 
Caliper: tapping into the Learn Activity Stream
Caliper: tapping into the Learn Activity StreamCaliper: tapping into the Learn Activity Stream
Caliper: tapping into the Learn Activity Stream
 
Learning Analytics Medea Webinar, part 2
Learning Analytics Medea Webinar, part 2Learning Analytics Medea Webinar, part 2
Learning Analytics Medea Webinar, part 2
 
Edupub day1 ims
Edupub day1 imsEdupub day1 ims
Edupub day1 ims
 
Publisher Monetization: Next Generation of Prime Time
Publisher Monetization: Next Generation of Prime TimePublisher Monetization: Next Generation of Prime Time
Publisher Monetization: Next Generation of Prime Time
 
Building Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and HydraBuilding Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and Hydra
 
Grand Challenges Learning Analytics
Grand Challenges Learning AnalyticsGrand Challenges Learning Analytics
Grand Challenges Learning Analytics
 
The Pedagogy, Andragogy, Heutagogy of Mobile Learning
The Pedagogy, Andragogy, Heutagogy of Mobile LearningThe Pedagogy, Andragogy, Heutagogy of Mobile Learning
The Pedagogy, Andragogy, Heutagogy of Mobile Learning
 
Education 3.0 and the Pedagogy of Mobile Learning
Education 3.0 and the Pedagogy of Mobile LearningEducation 3.0 and the Pedagogy of Mobile Learning
Education 3.0 and the Pedagogy of Mobile Learning
 

Similar to MongoDB & The McGraw-Hill Education Learning Analytics Platform

Metail and Elastic MapReduce
Metail and Elastic MapReduceMetail and Elastic MapReduce
Metail and Elastic MapReduceGareth Rogers
 
Math-Bridge Architecture
Math-Bridge ArchitectureMath-Bridge Architecture
Math-Bridge Architecturemetamath
 
With Automated ML, is Everyone an ML Engineer?
With Automated ML, is Everyone an ML Engineer?With Automated ML, is Everyone an ML Engineer?
With Automated ML, is Everyone an ML Engineer?Dan Sullivan, Ph.D.
 
PyCon Ukraine 2016: Maintaining a high load Python project for newcomers
PyCon Ukraine 2016: Maintaining a high load Python project for newcomersPyCon Ukraine 2016: Maintaining a high load Python project for newcomers
PyCon Ukraine 2016: Maintaining a high load Python project for newcomersViach Kakovskyi
 
Energy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopEnergy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopQuantUniversity
 
Proof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityProof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityOpen Cyber University of Korea
 
Novedades de MongoDB 3.6
Novedades de MongoDB 3.6Novedades de MongoDB 3.6
Novedades de MongoDB 3.6MongoDB
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data AnalyticsAmazon Web Services
 
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...DataMind-slides
 
IGeLU 2014
IGeLU 2014IGeLU 2014
IGeLU 2014jhkrug
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor FrameworkDamien Magoni
 
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...Databricks
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....Databricks
 
Integrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST APIIntegrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST APIEspresso Logic
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Kristi Lewandowski
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017SingleStore
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Kristi Lewandowski
 
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Amazon Web Services
 

Similar to MongoDB & The McGraw-Hill Education Learning Analytics Platform (20)

Metail and Elastic MapReduce
Metail and Elastic MapReduceMetail and Elastic MapReduce
Metail and Elastic MapReduce
 
Math-Bridge Architecture
Math-Bridge ArchitectureMath-Bridge Architecture
Math-Bridge Architecture
 
With Automated ML, is Everyone an ML Engineer?
With Automated ML, is Everyone an ML Engineer?With Automated ML, is Everyone an ML Engineer?
With Automated ML, is Everyone an ML Engineer?
 
PyCon Ukraine 2016: Maintaining a high load Python project for newcomers
PyCon Ukraine 2016: Maintaining a high load Python project for newcomersPyCon Ukraine 2016: Maintaining a high load Python project for newcomers
PyCon Ukraine 2016: Maintaining a high load Python project for newcomers
 
Energy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopEnergy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshop
 
Proof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityProof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics Interoperability
 
Novedades de MongoDB 3.6
Novedades de MongoDB 3.6Novedades de MongoDB 3.6
Novedades de MongoDB 3.6
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
 
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...
DataMind: An e-learning platform for Data Analysis based on R. RBelgium meetu...
 
IGeLU 2014
IGeLU 2014IGeLU 2014
IGeLU 2014
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor Framework
 
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...
Real-time Machine Learning Analytics Using Structured Streaming and Kinesis F...
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
 
Nagacv
NagacvNagacv
Nagacv
 
Integrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST APIIntegrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST API
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017
 
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
 
70487.pdf
70487.pdf70487.pdf
70487.pdf
 

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 AtlasMongoDB
 
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 MongoDBMongoDB
 
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 DataMongoDB
 
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 StartMongoDB
 
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.2MongoDB
 
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 MindsetMongoDB
 
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 JumpstartMongoDB
 
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 DiveMongoDB
 
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 & GolangMongoDB
 
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...
 

MongoDB & The McGraw-Hill Education Learning Analytics Platform

  • 1. MongoDB and the McGraw-Hill Education Learning Analytics Platform: Towards an Open, Scalable, Streaming Solution for Education MongoDB World 2015
  • 2. 2 Outline • McGraw-Hill Education • My background • The MHE Learning Analytics Platform (LAP) • Standardized educational input events • MongoDB schema design • Server infrastructure • Performance • Conclusions
  • 3. 3 • Global Company with over 5,000 employees • Now a Learning Science Company • All content available digitally by Fall 2015 • Higher Ed system is Connect • K-12 LMS is Engrade • Adaptive systems LearnSmart, SmartBook and ALEKS McGraw-Hill Education
  • 4. 4 • Global and Marine Seismologist • Small College Physics Professor • Oracle Database Administrator • Head of IT Operations at MIT Sloan School of Management • Head of MHE Digital Platform Group’s Analytics team’s Data Science group • Systems Engineer on this project My Background
  • 5. 5 Motivation  MHE has several digital educational platforms including Connect for Higher Ed and Engrade for K- 12  Instrument platforms to send student/educator events in real time to a central system (LAP)  Ingest and store education events in data store (MongoDB)  Analytics provides “insights” to students/educators Introduction to LAP
  • 6. 6 Demo Connect Insight for Students (CIS) Introduction to the LAP
  • 7. 7 Standardized education events (Caliper)  Utilizes JSON-LD (linked data) format  Caliper uses Actor - Verb - Object tuple to form learning events (ex: student – submit – test)  Triggered from student/educator activity and sent to LAP input API IMS Caliper Format for Education
  • 11. 11 LAP Architectural Design Collection Collection Worker LAP Ingestion API Long-term Storage SQS MongoDB Data Store Connect Caliper Event Engrade Caliper Event Other Caliper Events
  • 12. 12 LAP Architectural Design Collection Collection Worker LAP Ingestion API Long-term Storage SQS MongoDB Data Store Results/ AnalysisResults/ Analysis Output API Results/ Analysis Connect Caliper Event Engrade Caliper Event Other Caliper Events
  • 13. 13 LAP Architectural Design Collection Collection Worker LAP Ingestion API Long-term Storage SQS MongoDB Data Store Results/ AnalysisResults/ Analysis Output API Results/ Analysis Results/ AnalysisResults/ Analysis Connect Insight for Students Engrade Insight for Teachers Future Insights Insight Output API Results/ Analysis Connect Caliper Event Engrade Caliper Event Other Caliper Events
  • 14. 14 • JSON-LD input suggested a document store • MongoDB accessible and well documented • Provided needed performance and capacity • Support from MongoDB Inc. (10Gen) • Six Month Development Support contract • Dedicated consultants • Ongoing support contract Why MongoDB?
  • 15. 15 Standardized education events (Caliper)  Caliper (JSON-LD) produced by triggers in the Connect Oracle database  Triggered from student/educator activity and sent to LAP input API  LAP then verifies input, transforms into MongoDB schema, calculates aggregates, and sends to data visualizations Data Flow Through the LAP
  • 16. 16 Data Flow Through the LAP Standardized education events (Caliper examples) 1. Assessment Created 2. Assessment Attempt Started 3. Assessment Attempt Submitted 4. Assessment Attempt Graded An assessment is an on-line homework assignment, quiz or test associated with a McGraw-Hill digital textbook.
  • 17. { "@context": " http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent", "@type" : "AssessmentEvent", "@id" : "mhe-caliper:connect-000/eventId/ea7db7cf-2ed9-43a3-b9d4-1472265157c5", "generatedAtTime" : "2012-11-01T08:00:01", "verb" : "created", "actor" : { "@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc3Nw==", "@type" : "instructor" }, "startedAtTime" : "2012-11-01T08:00:00", "object" : { "@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==", "@type": "assessment", "category" : "homework", "origin" : "ASSESSMENT", "topics" : ["addition", "subtraction"], "maxSubmissionsAllowed" : 3, "maxTimeAllowed" : 10800, "maxOutcomePossible" : 100.0, "startDate" : "2012-11-01T04:00:00", "dueDate" : "2012-11-05T08:00:00", "assessmentName" : "Sample Assignment Zero", "noFeedback" : false, "ALEDisplayName" : "Critical Missions", "attemptDeductions" : false, "lateSubmissionDeduction" : true, "studyAttempts" : true, "forceSubmission" : true }, "learningContext" : { "enrolledIn" : "section", "course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==", "section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==", "courseName" : "Intro to Algebra", "sectionName" : "MWF 10-11", "timeZone" : "America/New_York" } } Assessment Created Caliper Event
  • 18. Assessment Attempt Started Caliper Event { "@context" : "http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent", "@type" : "AssessmentEvent", "@id" : "mhe-caliper:connect-000/eventId/87231361-6c9c-4ef6-8ea3-49e39e78eb4d", "generatedAtTime" : "2012-11-01T08:00:01", "verb" : "started", "actor" : { "@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ==", "@type" : "student" }, "startedAtTime" : "2012-11-04T11:00:00", "object" : { "@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==", "@type": "assessment" }, "learningContext" : { "enrolledIn" : "section", "course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==", "section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==", "courseName" : "Intro to Algebra", "sectionName" : "MWF 10-11", "timeZone" : "America/New_York" }, "attemptCount" : 1 }
  • 19. Assessment Attempt Submitted Caliper Event { "@context" : "http://purl.imsglobal.org/ctx/caliper/v1/AssessmentEvent", "@type" : "AssessmentEvent", "@id" : "mhe-caliper:connect-000/eventId/b1db77ea-44a7-4f99-a819-e8b7e142f457", "generatedAtTime" : "2012-11-01T08:00:01", "verb" : "submitted", "actor" : { "@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ==", "@type" : "student" }, "startedAtTime" : "2012-11-04T11:45:01", "object" : { "@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==", "@type" : "assessment", "maxSubmissionsAllowed" : 3, "maxTimeAllowed" : 10800, "dueDate" : "2012-11-08T12:00:00" }, "learningContext" : { "enrolledIn" : "section", "course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==", "section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==", "courseName" : "Intro to Algebra", "sectionName" : "MWF 10-11", "timeZone" : "America/New_York", }, "attemptCount" : 1, "timeTaken" : 1800 }
  • 20. Assessment Attempt Graded Caliper Event { "@context" : "http://mheducation.com/mhe-caliper/v1/OutcomeEvent", "@type" : "OutcomeEvent", "@id" : "mhe-caliper:connect-000/eventId/d7c28248-8e14-495e-9a5c-bb1cc1e0882d", "generatedAtTime" : "2012-11-01T08:00:01", "verb" : "graded", "actor" : { "@id" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc3Nw==", "@type" : "instructor" }, "startedAtTime" : "2012-11-04T19:00:00", "object" : { "@id" : "mhe-caliper:connect-000/assessment/MjYwMTM4Nzc4Mg==", "@type": "assessment", "student" : "mhe-caliper:connect-000/actor/MjYwMTM4Nzc4MQ==" }, "learningContext" : { "enrolledIn" : "section", "course" : "mhe-caliper:connect-000/course/MjYwMTM4Nzc4NQ==", "section" : "mhe-caliper:connect-000/section/MjYwMDU1MTc0Ng==", "courseName" : "Intro to Algebra", "sectionName" : "MWF 10-11", "timeZone" : "America/New_York" }, "attemptCount" : 1, "outcome" : .85, "percentDeducted" : 5 }
  • 21. 21 Constraints on developing schema  Several learning activities require multiple Caliper events • Example: student starts, submits, and is graded to complete a quiz  No guarantee that external applications will send events in chronological order  May receive duplicate events Data Flow Through the LAP
  • 22. 22 MongoDB Schema – Version 0.1 V0.1  2 schema model (student and class) Class Collection describes the class, section and assignments Student Collection • Assessment array updated when attempt is complete • All events for an activity • Attempts for each activity in a sub-array
  • 23. 23 V0.1  Problems • Too embedded • Difficult to update a student doc • Query-logic-update MongoDB Schema
  • 24. 24 MongoDB Schema Version 2 • Remove nested arrays • Move attempts doc up to the top level
  • 25. V0.2  Problems • Still have query-logic-update • Difficult to do atomically and maintain deterministic state 25 MongoDB Schema Version 2
  • 26. 26 MongoDB Schema Version 3 {} {} • Remove arrays altogether • Replace arrays with assessment and attempt docs, each of which contains several sub-docs
  • 27. V0.3  Atomic updates now much easier  Save raw Caliper event in event collection  Only update student collection if all required events are in event collection 27 MongoDB Schema Version 0.3
  • 28. 28 Query Utilization • 3 basic queries to build visualization for CIS • All student docs for current class • All student docs for current student • Class doc for current class • All queries are on indexed parameters • Student doc _id = class_id:student_id • Class doc _id = class_id
  • 29. 29 Infrastructure • All servers and storage is in AWS • Backups done using EBS snapshots • DB size estimated to grow about 500 [GB/year] • Data size estimate small enough for un-sharded cluster • 3 member replica sets • Write to primary, read from primary and secondary's
  • 30. 30 Performance • Estimated peak load 100 [events/sec] = 100 [kB/sec] • Average load of 1,500,000 events/day • Max of 2,500,000 events per day • Initially planned on sharded, replicated cluster but for now do not need this • Added SQS Queue to handle periods of very high load • Upgraded from MongoDB 2.6 to 3.0 (~ x10 faster)
  • 31. 31 Conclusions • We have a learning analytics platform in production utilizing a MongoDB data store • After several iterations we developed a MongoDB schema which: • Handles data coming in arbitrary order with duplicates • Performs one step, atomic inserts • Has high performance during peak loads