This chapter covers
- Creating a Cosmos DB account, database and collection
- Data modelling and partitioning to optimize Cosmos DB
- Consistency models and concurrency control
- Managing costs and performance optimization
We have arrived at one of my favorite services on Azure: Cosmos DB. It is one of those services that wouldn’t exist with cloud computing, so it isn’t merely an adaptation of traditional services like virtual machines or storage. Microsoft Azure's highly scalable and distributed NoSQL database service is designed to handle massive amounts of data across global networks. Cosmos DB stands out with its remarkable flexibility, blazing-fast performance, and comprehensive support for various data models. It handles key-value, document, or graph databases, and has plenty of developer tools to shout about too.
11.1 Guaranteed Speed at Any Scale
11.1.1 Scalability
11.1.2 Speed with multi-region replication
11.1.3 Pitfalls of Enabling Autoscaling and Multi-Region for Cosmos DB
11.2 Simplified Application Development
11.2.1 Introduction to Cosmos DB APIs
11.2.2 SDKs for Enhanced Development
11.3 Advanced Data Modeling and Partitioning
11.3.1 Core Principles of Data Modeling in Cosmos DB
11.3.2 Understanding Partitioning in Cosmos DB
11.3.3 Advanced Partitioning Strategies
11.4 Consistency, Availability, and Concurrency
11.4.1 Consistency
11.4.2 Availability
11.4.3 Concurrency
11.5 Near Real-Time Analytics and Integration with Azure Services
11.5.1 Using Azure Synapse Analytics
11.5.2 Integrating with Azure Functions
11.5.3 Using Azure Stream Analytics
11.6 Managing Costs and Performance Optimization
11.6.1 Provisioned Throughput vs. Autoscale
11.6.2 Monitoring and Optimization
11.6.3 vCore Usage Considerations
11.7 Summary