SQL Server is a relational database built upon sound mathematical concepts devised by IBM in the 1970s; these concepts are also the pillar for Oracle, MySQL, and the bulk of databases in the nearly five decades since.
Yet, a modern Internet age with globally-distributed applications that must be fault-tolerant and scalable demands a high-concurrency, low-latency database model. In comes Cosmos DB, officially a NoSQL database model where items are stored in containers, and containers are grouped together to make the database. This is akin to MongoDB’s documents and collections, and so on for other NoSQL database products.
An important distinction of this NoSQL database type is containers are schema-agnostic, unlike the very strongly structured nature of a relational database.
It’s a highly compelling product for global-scale apps with Microsoft guaranteeing the single-digit-millisecond transaction speeds mentioned above, as well as 99.999% high availability, elastic scaling that matches capacity with demands to control costs and ensure high performance during peak traffic and automatic indexing. Actually, it need not be reserved for your biggest apps; while Cosmos DB scales naturally and seamlessly for the biggest possible workloads the cloud can deliver, it offers elegant and straightforward tools to build microservices in the developer’s choice of programming language.
Fitting into other Azure features, Azure Cosmos DB enables developers to work with Azure IoT Hub to ingest and query diverse IoT - Internet of Things - data easily through its global presence, and tower with Azure Databricks to perform real-time analytics on data of any size or type from any location, to mention two.
Azure Cosmos DB aids developers by eliminating the extreme tradeoffs between consistency, availability, latency and programmability, allowing time and attention to be focused on building great apps while Microsoft Azure handles all the infrastructure and database management and optimisation.
For example, an automotive organisation might collect vehicle telemetry and needs to rapidly ingest and store the vast amount of data it collects, along with processing that detects anomalies in near real-time as the data comes in. The business might even wish to visualise these anomalies in dashboards and have many other requirements. A key component of success is a solid basis and here is where Azure Cosmos DB forms the entry point to near real-time analytics in a way a relational database cannot.
Selecting Cosmos DB does not prevent later data lake enterprise-wide aggregation and processing of your data; as iTWire previously reported, SQL Server 2019 introduces data virtualisation allowing Cosmos DB containers to participate in SQL Server databases as if they were native tables.