Azure Cosmos Database Overview
Azure Cosmos DB is a NoSQL database offering from Microsoft Azure Cloud platform. We can store and process large volumes of structured, semi-structured and unstructured data on Cosmos DB. It is built to support large-scale operational and transactional applications with millisecond response times (Examples: IoT, Gaming, Web, Mobile, etc.).
Earlier version of Azure’s NoSQL database (DocumentDB) only supported JSON documents while Cosmos DB can store and process multiple types of data (Table, Key-Value, Document, Graph, and Column-family) with the use of the following APIs.
Cosmos database is easy to use and provides access through multiple interfaces to configure, manage, and query. We can access and manage Cosmos DB using Data Explorer on Azure portal and DocumentDB Explorer from local desktop. We can perform Cosmos development activities locally using Azure Cosmos Database Emulator. Azure Storage Explorer can be used to access and manage storage accounts and Cosmos database objects.
Key Features and Benefits
- Single data store supporting multiple forms of data storage and processing using APIs.
- Data is automatically indexed. We can choose not to index some of the items to save Request Units (RUs).
- Azure system resources are measured and charged to the customer in terms of RU (Request Units), which abstracts the resources such as CPU, Memory, and IOPS. We get to buy the throughput (guaranteed allocation for predictable performance) based on our application requirements.
- Elastic scalability of Request Units (RUs) and storage (scale out automatically).
- Globally distributable database within different Azure regions. Cosmos DB’s multi-master feature allows every region to be both writable and readable which makes the database 99.999% available across all regions.
- Partitioning allows the data to be organized logically based on “Partition Key.” Item (row) is uniquely identified by Partition Key + Item ID. Cosmos DB engine automatically managed the storage of these partitions physically. This helps to improve performance. This is similar to Partitioned tables in Oracle, Partitioned Primary Index in Teradata, etc.
- Guarantees low-latency reads and writes with 99% of them in < 10 milliseconds response time
- Azure Cosmos DB comes with below security and protection features:
- Access controls based on IPs for controlling incoming traffic Role-based Access Control
- Monitoring abnormal activities and attacks based on the logs
- Data is stored in Azure protected data centers
- All the communications from and to the databases are TLS encrypted
- Online automated database backups. Can be restored with the 30-day period after deletion
- Documents and backups are encrypted at rest
- Azure Cosmos DB offers a spectrum of five consistency levels based on the consistency and availability trade-offs.