SlideShare ist ein Scribd-Unternehmen logo
1 von 53
#MongoDBDays 
MongoDB for Time Series Data 
Mark Helmstetter 
@helmstetter 
Senior Solutions Architect, MongoDB
What is Time Series Data?
Time Series 
A time series is a sequence of data points, measured 
typically at successive points in time spaced at 
uniform time intervals. 
– Wikipedia 
0 2 4 6 8 10 12 
time
Time Series Data is Everywhere 
• Financial markets pricing (stock ticks) 
• Sensors (temperature, pressure, proximity) 
• Industrial fleets (location, velocity, operational) 
• Social networks (status updates) 
• Mobile devices (calls, texts) 
• Systems (server logs, application logs)
Example: MMS Monitoring 
• Tool for managing & monitoring MongoDB systems 
– 100+ system metrics visualized and alerted 
• 35,000+ MongoDB systems submitting data every 60 
seconds 
• 90% updates, 10% reads 
• ~30,000 updates/second 
• ~3.2B operations/day 
• 8 x86-64 servers
MMS Monitoring Dashboard
Time Series Data at a Higher Level 
• Widely applicable data model 
• Applies to several different "data use cases" 
• Various schema and modeling options 
• Application requirements drive schema design
Time Series Data Considerations 
• Arrival rate & ingest performance 
• Resolution of raw events 
• Resolution needed to support 
– Applications 
– Analysis 
– Reporting 
• Data retention policies
Data Retention 
• How long is data required? 
• Strategies for purging data 
– TTL Collections 
– Batch remove({query}) 
– Drop collection 
• Performance 
– Can effectively double write load 
– Fragmentation and Record Reuse 
– Index updates
Our Mission Today
Develop Nationwide traffic monitoring 
system
What we want from our data 
Charting and Trending
What we want from our data 
Historical & Predictive Analysis
What we want from our data 
Real Time Traffic Dashboard
Traffic sensors to monitor interstate 
conditions 
• 16,000 sensors 
• Measure 
• Speed 
• Travel time 
• Weather, pavement, and traffic conditions 
• Minute level resolution (average) 
• Support desktop, mobile, and car navigation 
systems
Other requirements 
• Need to keep 3 year history 
• Three data centers 
• VA, Chicago, LA 
• Need to support 5M simultaneous users 
• Peak volume (rush hour) 
• Every minute, each request the 10 minute average 
speed for 50 sensors
Schema Design 
Considerations
Schema Design Goals 
• Store raw event data 
• Support analytical queries 
• Find best compromise of: 
– Memory utilization 
– Write performance 
– Read/analytical query performance 
• Accomplish with realistic amount of hardware
Designing For Reading, Writing, … 
• Document per event 
• Document per minute (average) 
• Document per minute (second) 
• Document per hour
Document Per Event 
{ 
segId: "I495_mile23", 
date: ISODate("2013-10-16T22:07:38.000-0500"), 
speed: 63 
} 
• Relational-centric approach 
• Insert-driven workload 
• Aggregations computed at application-level
Document Per Minute (Average) 
{ 
segId: "I495_mile23", 
date: ISODate("2013-10-16T22:07:00.000-0500"), 
speed_count: 18, 
speed_sum: 1134, 
} 
• Pre-aggregate to compute average per minute more easily 
• Update-driven workload 
• Resolution at the minute-level
Document Per Minute (By Second) 
{ 
segId: "I495_mile23", 
date: ISODate("2013-10-16T22:07:00.000-0500"), 
speed: { 0: 63, 1: 58, …, 58: 66, 59: 64 } 
} 
• Store per-second data at the minute level 
• Update-driven workload 
• Pre-allocate structure to avoid document moves
Document Per Hour (By Second) 
{ 
segId: "I495_mile23", 
date: ISODate("2013-10-16T22:00:00.000-0500"), 
speed: { 0: 63, 1: 58, …, 3598: 45, 3599: 55 } 
} 
• Store per-second data at the hourly level 
• Update-driven workload 
• Pre-allocate structure to avoid document moves 
• Updating last second requires 3599 steps
Document Per Hour (By Second) 
{ 
segId: "I495_mile23", 
date: ISODate("2013-10-16T22:00:00.000-0500"), 
speed: { 
0: {0: 47, …, 59: 45}, 
…. 
59: {0: 65, …, 59: 66} } 
} 
• Store per-second data at the hourly level with nesting 
• Update-driven workload 
• Pre-allocate structure to avoid document moves 
• Updating last second requires 59+59 steps
Characterizing Write Differences 
• Example: data generated every second 
• For 1 minute: 
Document Per Event 
60 writes 
Document Per Minute 
1 write, 59 updates 
• Transition from insert driven to update driven 
– Individual writes are smaller 
– Performance and concurrency benefits
Characterizing Read Differences 
• Example: data generated every second 
• Reading data for a single hour requires: 
Document Per Event 
3600 reads 
Document Per Minute 
60 reads 
• Read performance is greatly improved 
– Optimal with tuned block sizes and read ahead 
– Fewer disk seeks
Characterizing Memory Differences 
• _id index for 1 billion events: 
Document Per Event 
~32 GB 
• _id index plus segId and date index: 
• Memory requirements significantly reduced 
– Fewer shards 
– Lower capacity servers 
Document Per Minute 
~.5 GB 
Document Per Event 
~100 GB 
Document Per Minute 
~2 GB
Traffic Monitoring System 
Schema
Quick Analysis 
Writes 
– 16,000 sensors, 1 insert/update per minute 
– 16,000 / 60 = 267 inserts/updates per second 
Reads 
– 5M simultaneous users 
– Each requests 10 minute average for 50 sensors every 
minute
Tailor your schema to your 
application workload
Reads: Impact of Alternative 
Schemas 
Query: Find the average speed over the 
last 
ten minutes 
10 minute average query 
Schema 1 sensor 50 sensors 
1 doc per event 10 500 
1 doc per 10 min 1.9 95 
1 doc per hour 1.3 65 
10 minute average query with 5M 
users 
Schema ops/sec 
1 doc per event 42M 
1 doc per 10 min 8M 
1 doc per hour 5.4M
Writes: Impact of alternative 
schemas 
1 Sensor - 1 Hour 
Schema Inserts Updates 
doc/event 60 0 
doc/10 min 6 54 
doc/hour 1 59 
16000 Sensors – 1 Day 
Schema Inserts Updates 
doc/event 23M 0 
doc/10 min 2.3M 21M 
doc/hour .38M 22.7M
Sample Document Structure 
{ _id: ObjectId("5382ccdd58db8b81730344e2"), 
segId: "900006", 
date: ISODate("2014-03-12T17:00:00Z"), 
data: [ 
Compound, unique 
Index identifies the 
Individual document 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
... 
], 
conditions: { 
status: "Snow / Ice Conditions", 
pavement: "Icy Spots", 
weather: "Light Snow" 
} 
}
Memory: Impact of alternative 
schemas 
1 Sensor - 1 Hour 
Schema 
# of 
Documents 
Index Size 
(bytes) 
doc/event 60 4200 
doc/10 min 6 420 
doc/hour 1 70 
16000 Sensors – 1 Day 
Schema 
# of 
Documents Index Size 
doc/event 23M 1.3 GB 
doc/10 min 2.3M 131 MB 
doc/hour .38M 1.4 MB
Sample Document Structure 
Saves an extra index 
{ _id: "900006:14031217", 
data: [ 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
... 
], 
conditions: { 
status: "Snow / Ice Conditions", 
pavement: "Icy Spots", 
weather: "Light Snow" 
} 
}
Sample Document Structure 
{ _id: "900006:14031217", 
data: [ 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
... 
], 
conditions: { 
status: "Snow / Ice Conditions", 
pavement: "Icy Spots", 
weather: "Light Snow" 
} 
} 
Range queries: 
/^900006:1403/ 
Regex must be 
left-anchored & 
case-sensitive
Sample Document Structure 
{ _id: "900006:140312", 
data: [ 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
{ speed: NaN, time: NaN }, 
... 
], 
conditions: { 
status: "Snow / Ice Conditions", 
pavement: "Icy Spots", 
weather: "Light Snow" 
} 
} 
Pre-allocated, 
60 element array of 
per-minute data
Analysis with The Aggregation 
Framework
Pipelining operations 
Piping command line operations 
grep | sort | uniq
Pipelining operations 
Piping aggregation operations 
$match | $group | $sort 
Stream of documents Result documents
What is the average speed for a 
given road segment? 
> db.linkData.aggregate( 
{ $match: { "_id" : /^20484097:/ } }, 
{ $project: { "data.speed": 1, segId: 1 } } , 
{ $unwind: "$data"}, 
{ $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } 
); 
{ "_id" : 20484097, "ave" : 47.067650676506766 }
What is the average speed for a 
given road segment? 
> db.linkData.aggregate( 
{ $match: { "_id" : /^20484097:/ } }, 
{ $project: { "data.speed": 1, segId: 1 } } , 
{ $unwind: "$data"}, 
{ $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } 
); 
{ "_id" : 20484097, "ave" : 47.067650676506766 } 
Select documents on the target segment
What is the average speed for a 
given road segment? 
> db.linkData.aggregate( 
{ $match: { "_id" : /^20484097:/ } }, 
{ $project: { "data.speed": 1, segId: 1 } } , 
{ $unwind: "$data"}, 
{ $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } 
); 
{ "_id" : 20484097, "ave" : 47.067650676506766 } 
Keep only the fields we really need
What is the average speed for a 
given road segment? 
> db.linkData.aggregate( 
{ $match: { "_id" : /^20484097:/ } }, 
{ $project: { "data.speed": 1, segId: 1 } } , 
{ $unwind: "$data"}, 
{ $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } 
); 
{ "_id" : 20484097, "ave" : 47.067650676506766 } 
Loop over the array of data points
What is the average speed for a 
given road segment? 
> db.linkData.aggregate( 
{ $match: { "_id" : /^20484097:/ } }, 
{ $project: { "data.speed": 1, segId: 1 } } , 
{ $unwind: "$data"}, 
{ $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } 
); 
{ "_id" : 20484097, "ave" : 47.067650676506766 } 
Use the handy $avg operator
More Sophisticated Pipelines: 
average speed with variance 
{ "$project" : { 
mean: "$meanSpd", 
spdDiffSqrd : { 
"$map" : { 
"input": { 
"$map" : { 
"input" : "$speeds", 
"as" : "samp", 
"in" : { "$subtract" : [ "$$samp", "$meanSpd" ] } 
} 
}, 
as: "df", in: { $multiply: [ "$$df", "$$df" ] } 
} } } }, 
{ $unwind: "$spdDiffSqrd" }, 
{ $group: { _id: mean: "$mean", variance: { $avg: "$spdDiffSqrd" } } }
High Volume Data Feed (HVDF)
High Volume Data Feed (HVDF) 
• Framework for time series data 
• Validate, store, aggregate, query, purge 
• Simple REST API 
• Batch ingest 
• Tasks 
– Indexing 
– Data retention
High Volume Data Feed (HVDF) 
• Customized via plugins 
– Time slicing into collections, purging 
– Storage granularity of raw events 
– _id generation 
– Interceptors 
• Open source 
– https://github.com/10gen-labs/hvdf
Summary 
• Tailor your schema to your application workload 
• Bucketing/aggregating events will 
– Improve write performance: inserts  updates 
– Improve analytics performance: fewer document reads 
– Reduce index size  reduce memory requirements 
• Aggregation framework for analytic queries
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

A Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeA Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeDatabricks
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDatabricks
 
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...Databricks
 
Deep dive into stateful stream processing in structured streaming by Tathaga...
Deep dive into stateful stream processing in structured streaming  by Tathaga...Deep dive into stateful stream processing in structured streaming  by Tathaga...
Deep dive into stateful stream processing in structured streaming by Tathaga...Databricks
 
Benchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkBenchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkXiaoqian Liu
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into CassandraDataStax
 
(참고) Elk stack 설치 및 kafka
(참고) Elk stack 설치 및 kafka(참고) Elk stack 설치 및 kafka
(참고) Elk stack 설치 및 kafkaNoahKIM36
 
Building a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache ArrowBuilding a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache ArrowDremio Corporation
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and BenchmarksJignesh Shah
 
Koalas: Making an Easy Transition from Pandas to Apache Spark
Koalas: Making an Easy Transition from Pandas to Apache SparkKoalas: Making an Easy Transition from Pandas to Apache Spark
Koalas: Making an Easy Transition from Pandas to Apache SparkDatabricks
 
Monitoring Spark Applications
Monitoring Spark ApplicationsMonitoring Spark Applications
Monitoring Spark ApplicationsTzach Zohar
 
How We Optimize Spark SQL Jobs With parallel and sync IO
How We Optimize Spark SQL Jobs With parallel and sync IOHow We Optimize Spark SQL Jobs With parallel and sync IO
How We Optimize Spark SQL Jobs With parallel and sync IODatabricks
 
Delta: Building Merge on Read
Delta: Building Merge on ReadDelta: Building Merge on Read
Delta: Building Merge on ReadDatabricks
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiDatabricks
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaGuido Schmutz
 
Cloudstack autoscaling
Cloudstack autoscalingCloudstack autoscaling
Cloudstack autoscalingShapeBlue
 
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleBucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleDatabricks
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouseAltinity Ltd
 

Was ist angesagt? (20)

Data streaming fundamentals
Data streaming fundamentalsData streaming fundamentals
Data streaming fundamentals
 
A Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeA Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta Lake
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache Spark
 
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
 
Deep dive into stateful stream processing in structured streaming by Tathaga...
Deep dive into stateful stream processing in structured streaming  by Tathaga...Deep dive into stateful stream processing in structured streaming  by Tathaga...
Deep dive into stateful stream processing in structured streaming by Tathaga...
 
Benchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkBenchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on Spark
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
(참고) Elk stack 설치 및 kafka
(참고) Elk stack 설치 및 kafka(참고) Elk stack 설치 및 kafka
(참고) Elk stack 설치 및 kafka
 
Building a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache ArrowBuilding a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache Arrow
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
Koalas: Making an Easy Transition from Pandas to Apache Spark
Koalas: Making an Easy Transition from Pandas to Apache SparkKoalas: Making an Easy Transition from Pandas to Apache Spark
Koalas: Making an Easy Transition from Pandas to Apache Spark
 
Monitoring Spark Applications
Monitoring Spark ApplicationsMonitoring Spark Applications
Monitoring Spark Applications
 
Spark streaming: Best Practices
Spark streaming: Best PracticesSpark streaming: Best Practices
Spark streaming: Best Practices
 
How We Optimize Spark SQL Jobs With parallel and sync IO
How We Optimize Spark SQL Jobs With parallel and sync IOHow We Optimize Spark SQL Jobs With parallel and sync IO
How We Optimize Spark SQL Jobs With parallel and sync IO
 
Delta: Building Merge on Read
Delta: Building Merge on ReadDelta: Building Merge on Read
Delta: Building Merge on Read
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
 
Cloudstack autoscaling
Cloudstack autoscalingCloudstack autoscaling
Cloudstack autoscaling
 
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleBucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouse
 

Ähnlich wie MongoDB for Time Series Data: Setting the Stage for Sensor Management

MongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema DesignMongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema DesignMongoDB
 
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB
 
Mongo db 2.4 time series data - Brignoli
Mongo db 2.4 time series data - BrignoliMongo db 2.4 time series data - Brignoli
Mongo db 2.4 time series data - BrignoliCodemotion
 
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy Industries
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy IndustriesWebinar: MongoDB Use Cases within the Oil, Gas, and Energy Industries
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy IndustriesMongoDB
 
Webinar: Best Practices for Getting Started with MongoDB
Webinar: Best Practices for Getting Started with MongoDBWebinar: Best Practices for Getting Started with MongoDB
Webinar: Best Practices for Getting Started with MongoDBMongoDB
 
MongoDB Best Practices
MongoDB Best PracticesMongoDB Best Practices
MongoDB Best PracticesLewis Lin 🦊
 
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...MongoDB
 
Design and Implementation of A Data Stream Management System
Design and Implementation of A Data Stream Management SystemDesign and Implementation of A Data Stream Management System
Design and Implementation of A Data Stream Management SystemErdi Olmezogullari
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB
 
Sizing MongoDB Clusters
Sizing MongoDB Clusters Sizing MongoDB Clusters
Sizing MongoDB Clusters MongoDB
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuningMongoDB
 
Azure Stream Analytics : Analyse Data in Motion
Azure Stream Analytics  : Analyse Data in MotionAzure Stream Analytics  : Analyse Data in Motion
Azure Stream Analytics : Analyse Data in MotionRuhani Arora
 
Codemotion Milano 2014 - MongoDB and the Internet of Things
Codemotion Milano 2014 - MongoDB and the Internet of ThingsCodemotion Milano 2014 - MongoDB and the Internet of Things
Codemotion Milano 2014 - MongoDB and the Internet of ThingsMassimo Brignoli
 
Optimizing industrial operations using the big data ecosystem
Optimizing industrial operations using the big data ecosystemOptimizing industrial operations using the big data ecosystem
Optimizing industrial operations using the big data ecosystemDataWorks Summit
 
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon KinesisDay 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon KinesisAmazon Web Services
 
Geek Sync I Learn to Troubleshoot Query Performance in Analysis Services
Geek Sync I Learn to Troubleshoot Query Performance in Analysis ServicesGeek Sync I Learn to Troubleshoot Query Performance in Analysis Services
Geek Sync I Learn to Troubleshoot Query Performance in Analysis ServicesIDERA Software
 
AWS Webcast - Introduction to Amazon Kinesis
AWS Webcast - Introduction to Amazon KinesisAWS Webcast - Introduction to Amazon Kinesis
AWS Webcast - Introduction to Amazon KinesisAmazon Web Services
 
Transforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big DataTransforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big Dataplumbee
 
MongoDB IoT City Tour EINDHOVEN: Managing the Database Complexity
MongoDB IoT City Tour EINDHOVEN: Managing the Database ComplexityMongoDB IoT City Tour EINDHOVEN: Managing the Database Complexity
MongoDB IoT City Tour EINDHOVEN: Managing the Database ComplexityMongoDB
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysSmartNews, Inc.
 

Ähnlich wie MongoDB for Time Series Data: Setting the Stage for Sensor Management (20)

MongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema DesignMongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema Design
 
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
 
Mongo db 2.4 time series data - Brignoli
Mongo db 2.4 time series data - BrignoliMongo db 2.4 time series data - Brignoli
Mongo db 2.4 time series data - Brignoli
 
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy Industries
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy IndustriesWebinar: MongoDB Use Cases within the Oil, Gas, and Energy Industries
Webinar: MongoDB Use Cases within the Oil, Gas, and Energy Industries
 
Webinar: Best Practices for Getting Started with MongoDB
Webinar: Best Practices for Getting Started with MongoDBWebinar: Best Practices for Getting Started with MongoDB
Webinar: Best Practices for Getting Started with MongoDB
 
MongoDB Best Practices
MongoDB Best PracticesMongoDB Best Practices
MongoDB Best Practices
 
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...
MongoDB for Time Series Data: Analyzing Time Series Data Using the Aggregatio...
 
Design and Implementation of A Data Stream Management System
Design and Implementation of A Data Stream Management SystemDesign and Implementation of A Data Stream Management System
Design and Implementation of A Data Stream Management System
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
 
Sizing MongoDB Clusters
Sizing MongoDB Clusters Sizing MongoDB Clusters
Sizing MongoDB Clusters
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuning
 
Azure Stream Analytics : Analyse Data in Motion
Azure Stream Analytics  : Analyse Data in MotionAzure Stream Analytics  : Analyse Data in Motion
Azure Stream Analytics : Analyse Data in Motion
 
Codemotion Milano 2014 - MongoDB and the Internet of Things
Codemotion Milano 2014 - MongoDB and the Internet of ThingsCodemotion Milano 2014 - MongoDB and the Internet of Things
Codemotion Milano 2014 - MongoDB and the Internet of Things
 
Optimizing industrial operations using the big data ecosystem
Optimizing industrial operations using the big data ecosystemOptimizing industrial operations using the big data ecosystem
Optimizing industrial operations using the big data ecosystem
 
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon KinesisDay 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
 
Geek Sync I Learn to Troubleshoot Query Performance in Analysis Services
Geek Sync I Learn to Troubleshoot Query Performance in Analysis ServicesGeek Sync I Learn to Troubleshoot Query Performance in Analysis Services
Geek Sync I Learn to Troubleshoot Query Performance in Analysis Services
 
AWS Webcast - Introduction to Amazon Kinesis
AWS Webcast - Introduction to Amazon KinesisAWS Webcast - Introduction to Amazon Kinesis
AWS Webcast - Introduction to Amazon Kinesis
 
Transforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big DataTransforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big Data
 
MongoDB IoT City Tour EINDHOVEN: Managing the Database Complexity
MongoDB IoT City Tour EINDHOVEN: Managing the Database ComplexityMongoDB IoT City Tour EINDHOVEN: Managing the Database Complexity
MongoDB IoT City Tour EINDHOVEN: Managing the Database Complexity
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdays
 

Mehr von 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
 

Mehr von 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...
 

Kürzlich hochgeladen

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

MongoDB for Time Series Data: Setting the Stage for Sensor Management

  • 1. #MongoDBDays MongoDB for Time Series Data Mark Helmstetter @helmstetter Senior Solutions Architect, MongoDB
  • 2. What is Time Series Data?
  • 3. Time Series A time series is a sequence of data points, measured typically at successive points in time spaced at uniform time intervals. – Wikipedia 0 2 4 6 8 10 12 time
  • 4. Time Series Data is Everywhere • Financial markets pricing (stock ticks) • Sensors (temperature, pressure, proximity) • Industrial fleets (location, velocity, operational) • Social networks (status updates) • Mobile devices (calls, texts) • Systems (server logs, application logs)
  • 5. Example: MMS Monitoring • Tool for managing & monitoring MongoDB systems – 100+ system metrics visualized and alerted • 35,000+ MongoDB systems submitting data every 60 seconds • 90% updates, 10% reads • ~30,000 updates/second • ~3.2B operations/day • 8 x86-64 servers
  • 7. Time Series Data at a Higher Level • Widely applicable data model • Applies to several different "data use cases" • Various schema and modeling options • Application requirements drive schema design
  • 8. Time Series Data Considerations • Arrival rate & ingest performance • Resolution of raw events • Resolution needed to support – Applications – Analysis – Reporting • Data retention policies
  • 9. Data Retention • How long is data required? • Strategies for purging data – TTL Collections – Batch remove({query}) – Drop collection • Performance – Can effectively double write load – Fragmentation and Record Reuse – Index updates
  • 11.
  • 12.
  • 13. Develop Nationwide traffic monitoring system
  • 14. What we want from our data Charting and Trending
  • 15. What we want from our data Historical & Predictive Analysis
  • 16. What we want from our data Real Time Traffic Dashboard
  • 17. Traffic sensors to monitor interstate conditions • 16,000 sensors • Measure • Speed • Travel time • Weather, pavement, and traffic conditions • Minute level resolution (average) • Support desktop, mobile, and car navigation systems
  • 18. Other requirements • Need to keep 3 year history • Three data centers • VA, Chicago, LA • Need to support 5M simultaneous users • Peak volume (rush hour) • Every minute, each request the 10 minute average speed for 50 sensors
  • 20. Schema Design Goals • Store raw event data • Support analytical queries • Find best compromise of: – Memory utilization – Write performance – Read/analytical query performance • Accomplish with realistic amount of hardware
  • 21. Designing For Reading, Writing, … • Document per event • Document per minute (average) • Document per minute (second) • Document per hour
  • 22. Document Per Event { segId: "I495_mile23", date: ISODate("2013-10-16T22:07:38.000-0500"), speed: 63 } • Relational-centric approach • Insert-driven workload • Aggregations computed at application-level
  • 23. Document Per Minute (Average) { segId: "I495_mile23", date: ISODate("2013-10-16T22:07:00.000-0500"), speed_count: 18, speed_sum: 1134, } • Pre-aggregate to compute average per minute more easily • Update-driven workload • Resolution at the minute-level
  • 24. Document Per Minute (By Second) { segId: "I495_mile23", date: ISODate("2013-10-16T22:07:00.000-0500"), speed: { 0: 63, 1: 58, …, 58: 66, 59: 64 } } • Store per-second data at the minute level • Update-driven workload • Pre-allocate structure to avoid document moves
  • 25. Document Per Hour (By Second) { segId: "I495_mile23", date: ISODate("2013-10-16T22:00:00.000-0500"), speed: { 0: 63, 1: 58, …, 3598: 45, 3599: 55 } } • Store per-second data at the hourly level • Update-driven workload • Pre-allocate structure to avoid document moves • Updating last second requires 3599 steps
  • 26. Document Per Hour (By Second) { segId: "I495_mile23", date: ISODate("2013-10-16T22:00:00.000-0500"), speed: { 0: {0: 47, …, 59: 45}, …. 59: {0: 65, …, 59: 66} } } • Store per-second data at the hourly level with nesting • Update-driven workload • Pre-allocate structure to avoid document moves • Updating last second requires 59+59 steps
  • 27. Characterizing Write Differences • Example: data generated every second • For 1 minute: Document Per Event 60 writes Document Per Minute 1 write, 59 updates • Transition from insert driven to update driven – Individual writes are smaller – Performance and concurrency benefits
  • 28. Characterizing Read Differences • Example: data generated every second • Reading data for a single hour requires: Document Per Event 3600 reads Document Per Minute 60 reads • Read performance is greatly improved – Optimal with tuned block sizes and read ahead – Fewer disk seeks
  • 29. Characterizing Memory Differences • _id index for 1 billion events: Document Per Event ~32 GB • _id index plus segId and date index: • Memory requirements significantly reduced – Fewer shards – Lower capacity servers Document Per Minute ~.5 GB Document Per Event ~100 GB Document Per Minute ~2 GB
  • 31. Quick Analysis Writes – 16,000 sensors, 1 insert/update per minute – 16,000 / 60 = 267 inserts/updates per second Reads – 5M simultaneous users – Each requests 10 minute average for 50 sensors every minute
  • 32. Tailor your schema to your application workload
  • 33. Reads: Impact of Alternative Schemas Query: Find the average speed over the last ten minutes 10 minute average query Schema 1 sensor 50 sensors 1 doc per event 10 500 1 doc per 10 min 1.9 95 1 doc per hour 1.3 65 10 minute average query with 5M users Schema ops/sec 1 doc per event 42M 1 doc per 10 min 8M 1 doc per hour 5.4M
  • 34. Writes: Impact of alternative schemas 1 Sensor - 1 Hour Schema Inserts Updates doc/event 60 0 doc/10 min 6 54 doc/hour 1 59 16000 Sensors – 1 Day Schema Inserts Updates doc/event 23M 0 doc/10 min 2.3M 21M doc/hour .38M 22.7M
  • 35. Sample Document Structure { _id: ObjectId("5382ccdd58db8b81730344e2"), segId: "900006", date: ISODate("2014-03-12T17:00:00Z"), data: [ Compound, unique Index identifies the Individual document { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, ... ], conditions: { status: "Snow / Ice Conditions", pavement: "Icy Spots", weather: "Light Snow" } }
  • 36. Memory: Impact of alternative schemas 1 Sensor - 1 Hour Schema # of Documents Index Size (bytes) doc/event 60 4200 doc/10 min 6 420 doc/hour 1 70 16000 Sensors – 1 Day Schema # of Documents Index Size doc/event 23M 1.3 GB doc/10 min 2.3M 131 MB doc/hour .38M 1.4 MB
  • 37. Sample Document Structure Saves an extra index { _id: "900006:14031217", data: [ { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, ... ], conditions: { status: "Snow / Ice Conditions", pavement: "Icy Spots", weather: "Light Snow" } }
  • 38. Sample Document Structure { _id: "900006:14031217", data: [ { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, ... ], conditions: { status: "Snow / Ice Conditions", pavement: "Icy Spots", weather: "Light Snow" } } Range queries: /^900006:1403/ Regex must be left-anchored & case-sensitive
  • 39. Sample Document Structure { _id: "900006:140312", data: [ { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, { speed: NaN, time: NaN }, ... ], conditions: { status: "Snow / Ice Conditions", pavement: "Icy Spots", weather: "Light Snow" } } Pre-allocated, 60 element array of per-minute data
  • 40. Analysis with The Aggregation Framework
  • 41. Pipelining operations Piping command line operations grep | sort | uniq
  • 42. Pipelining operations Piping aggregation operations $match | $group | $sort Stream of documents Result documents
  • 43. What is the average speed for a given road segment? > db.linkData.aggregate( { $match: { "_id" : /^20484097:/ } }, { $project: { "data.speed": 1, segId: 1 } } , { $unwind: "$data"}, { $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } ); { "_id" : 20484097, "ave" : 47.067650676506766 }
  • 44. What is the average speed for a given road segment? > db.linkData.aggregate( { $match: { "_id" : /^20484097:/ } }, { $project: { "data.speed": 1, segId: 1 } } , { $unwind: "$data"}, { $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } ); { "_id" : 20484097, "ave" : 47.067650676506766 } Select documents on the target segment
  • 45. What is the average speed for a given road segment? > db.linkData.aggregate( { $match: { "_id" : /^20484097:/ } }, { $project: { "data.speed": 1, segId: 1 } } , { $unwind: "$data"}, { $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } ); { "_id" : 20484097, "ave" : 47.067650676506766 } Keep only the fields we really need
  • 46. What is the average speed for a given road segment? > db.linkData.aggregate( { $match: { "_id" : /^20484097:/ } }, { $project: { "data.speed": 1, segId: 1 } } , { $unwind: "$data"}, { $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } ); { "_id" : 20484097, "ave" : 47.067650676506766 } Loop over the array of data points
  • 47. What is the average speed for a given road segment? > db.linkData.aggregate( { $match: { "_id" : /^20484097:/ } }, { $project: { "data.speed": 1, segId: 1 } } , { $unwind: "$data"}, { $group: { _id: "$segId", ave: { $avg: "$data.speed"} } } ); { "_id" : 20484097, "ave" : 47.067650676506766 } Use the handy $avg operator
  • 48. More Sophisticated Pipelines: average speed with variance { "$project" : { mean: "$meanSpd", spdDiffSqrd : { "$map" : { "input": { "$map" : { "input" : "$speeds", "as" : "samp", "in" : { "$subtract" : [ "$$samp", "$meanSpd" ] } } }, as: "df", in: { $multiply: [ "$$df", "$$df" ] } } } } }, { $unwind: "$spdDiffSqrd" }, { $group: { _id: mean: "$mean", variance: { $avg: "$spdDiffSqrd" } } }
  • 49. High Volume Data Feed (HVDF)
  • 50. High Volume Data Feed (HVDF) • Framework for time series data • Validate, store, aggregate, query, purge • Simple REST API • Batch ingest • Tasks – Indexing – Data retention
  • 51. High Volume Data Feed (HVDF) • Customized via plugins – Time slicing into collections, purging – Storage granularity of raw events – _id generation – Interceptors • Open source – https://github.com/10gen-labs/hvdf
  • 52. Summary • Tailor your schema to your application workload • Bucketing/aggregating events will – Improve write performance: inserts  updates – Improve analytics performance: fewer document reads – Reduce index size  reduce memory requirements • Aggregation framework for analytic queries

Hinweis der Redaktion

  1. Data produced at regular intervals, ordered in time. Want to capture this data and build an application.
  2. Need to clarify the new flavors of MMS?
  3. A special index type supports the implementation of TTL collections. TTL relies on a background thread in mongod that reads the date-typed values in the index and removes expired documents from the collection.
  4. Wind speed and direction sensor Antenna for communications Traffic speed and traffic count sensor Pan-tilt-zoom color camera Precipitation and visibility sensor Air temperature and Relative Humidity sensor Road surface temperature sensor and sub surface temperature sensor below pavement
  5. 511ny.org Many states have 511 systems, data provided by dialing 511 and/or via webapp
  6. Assumptions/requirements for what we're going to spec out for this imaginary time series application
  7. Should I axe the 3 data centers bullet since we don't go into replication?
  8. Use findAndModify with the $inc operator 63 mph average
  9. *** clarify 2nd to last bullet
  10. How did we get these numbers…db.collection.stats() totalIndexSize, indexSizes []
  11. Point out 1 doc per minute granularity, not per second 5M users performing 10 minute average
  12. Need to practice this
  13. Compound unique index on segId & date update field used to identify new documents for aggregation
  14. Need to redo these index sizes based on different data types for segId?