Azure Cosmos DB Analysis

Azure Cosmos DB is the first globally distributed, multi-model database service for building world-scale applications. Over the years, it has been providing momentum for Microsoft’s Internet-scale services, which are now available to all Azure developers. The service is designed to allow customers to flexibly and horizontally scale throughput and storage across any number of geographic regions.

Azure Cosmos DB provides a guaranteed 99% latency of less than 10ms, 99.99% high availability, and five consistency models. It is the first global distributed database service on the market today and provides comprehensive service level agreements (SLAs) for throughput, latency, availability, and consistency.

Advantages of Azure Cosmos DB

  1. Provides a simple globally assigned NoSQL database that can be distributed in any number of Azure regions with the click of a button.
  2. Support for elastic expansion of storage and throughput.
  3. Guaranteed low latency: 10 ms reads and 15 ms index writes.
  4. Multi-Model + Multi-API: Only Azure Cosmos DB allows you to use key-value, graphics, and document data in one service. Globally, you don’t need to worry about schema or index management and allow you to use your favorite APIs, including SQL, Javascript, Gremlin, MongoDB, and Azure table storage to query your data.
  5. Consistency choice: 5 well-defined, intuitive and practical consistent choices to optimally optimize latency, availability, and throughput.
  6. Completely managed services and overall service SLA of 99%, Monthly Read Availability Percentage 99.999%.
  7. Meet developers and businesses “whatever they are” – use your familiar API. Choose any model that fits your data naturally – no back-end problems.

Azure Cosmos DB – Global Distributed Multi-Model Database Service

“Developing modern cloud applications provides unique opportunities for businesses to build agility and enter new markets. These applications must not only be accessible from anywhere, but they must also be low latency and high availability in order to gain customer loyalty.”

Azure Cosmos DB is a hosted global distributed multi-model database service. It leverages the Azure cloud infrastructure to support global-scale application workloads.

  • Automatic data indexing (regardless of the data model). No need to manage secondary indexes, Azure Cosmos DB is truly schema agnostic.
  • Azure Cosmos DB can be easily scaled up or down to meet application needs. Storage and throughput can be independently scaled.
  • Data can be replicated globally to build applications on a global scale. Allows use of SQL or LINQ. NET operators for aggregated queries.
  • High availability worldwide, with well-defined consistency, enterprise-level security, and comprehensive SLAs.
  • Fast and guaranteed low latency performance with fast random reads, ease of configuration and maintenance of partitioned collections and global databases, and global scaling and automatic indexing.
  • The “latch-free” attribute ensures that the thread does not block, and the reader does not collide with the author, thus supporting a high degree of concurrency.
  • Azure Cosmos DB’s database engine uses full storage write bandwidth for index updates (ie, writes are not slowed down by reads).
  • Customers can take advantage of the server-side programmability, such as UDFS and the process of using transactional Javascript code.

Azure Cosmos DB Indexes and Queries

Azure Cosmos DB’s automatic indexing is used to index all data attributes. Customers do not need to decide in advance what elements they may be looking for. Azure Cosmos DB does not expect or require any schema or secondary index definitions to index the size of the data. It is a truly transparent architecture. You can customize the index as needed to remove unused attributes and elements.

Azure Cosmos DB provides a rich set of query features (SQL, MongoDB, Gremlin (map), tables) with projections, filters, aggregations, sorting and flattening operators, expressions (arithmetic, logic, and various data transformations). Provides spatial data types and queries.

Azure Cosmos DB queries operate with a high degree of concurrency, architecture-agnostic indexing, and throughput that is separate from storage. Developers can reference any data model through any API and still obtain the same core value pillars—global distribution, elastic expansion of storage and throughput, consistent choices, and comprehensive SLAs.

Azure Cosmos DB – Replication, Consistency, and Transactions

The five consistency level models provide a series of consistency: from “strong” consistency like SQL to a “final” consistency like NoSQL, and other consistency between the two.

Allows customers to specify a single partition collection or partition collection. A single partition set is limited to 10 gb/10 krus. On the other hand, partition sets have no theoretical limit on scaling. Queries can span multiple partitions, but transactions are always bound to within a single partition.

Global database customers can easily support geo-local read and write, elastic scaling throughput, failover priority, and consistent database schema and index migration.

Azure Cosmos DB – Analysis, Full-Text Search, and Mobile Support

Power BI includes Power BI Desktop and Azure Cosmos DB is supported through the Azure Cosmos DB connector. Direct connection from Tableau, Qlik, and other reporting tools is not currently supported.

Azure Search and Azure Cosmos DB provide local integration by using an indexer. An indexer that creates and manages data sources (including Cosmos db) and operates on these data sources can index and query Cosmos DB content from Azure Search. Please note that Azure Search Index can only achieve final consistency.

Xamarin and Azure Cosmos DB provide local integration. Most mobile apps need to store data in the cloud, and Azure Cosmos DB is a cloud database for mobile apps. It has everything that a mobile developer needs.

Azure Cosmos DB Price System

Azure Cosmos DB is designed for predictable performance because such customers purchase a reserved capacity throughput level per second (RU) at the requesting unit (RU).
Each operation in Azure Cosmos DB has a deterministic RU value that is based on memory, I/O and CPU processing costs, or “throughput” used to complete queries, stored procedures, or JavaScript operations. Users should provide enough RUs to make up for their peak usage.

Where the collection is partitioned, the provisioned RUs are evenly distributed among the partitions. That is, the throughput per partition = (total throughput per collection)/(number of partitions). A good partitioning strategy is a key to cost efficiency.

Customers should also pay for the use of their indexed storage. Although this is calculated on a per-GB price per month, the actual storage and throughput tables are on an hourly basis.

RUs are billed according to the capacity provided by the user, regardless of whether it is actually used. On the other hand, storage is billed on a single-use basis. The document DB supports elastic scaling so that throughput can be easily provisioned/deactivated at any time.

Management and Monitoring in Azure Cosmos DB

Azure Portal provides syntax highlighting and other IDE-like features, including CRUD support for data browsers (graphics, documents, tables). The Microsoft Visual Studio IDE also provides support for Azure Cosmos DB.

Query execution returns basic statistics about consumed resource units, but no query scheduling mechanism can return a detailed query execution plan from the service (Azure Cosmos DB supports a stateless, short-lived execution model).

Azure Cosmos DB has a fully automated online backup that is completed every 4 hours and the last 2 backups are stored at any time. These are stored in Azure Blob storage to ensure low latency and efficient uploads.
The firewall supports IP filtering and firewall rules for Azure Cosmos DB and MongoDB API.

Security and Encryption in Azure Cosmos DB

Authentication of Azure Cosmos DB is done through the master key and delegated resource tags. The master key can be retrieved and reset through the management portal. At this point, Azure Cosmos DB is not integrated with Azure Active Directory. Azure Cosmos DB provides a mechanism for creating users and providing these users with a set of permissions; it also does not provide a mechanism to define “group” itself.

Permissions can be granted at any level of the resource hierarchy. Databases, collections, files, or attachments; this provides the project-level granularity of permissions. Permissions are either granted full CRUD access or read-only. The execution process requires all permission tokens on the collection.

SSL must be used to protect client-to-service connections. Customers who require auditing capabilities need to use triggers.

Conclusion

Here we discussed on various features of Azure Cosmos DB including its advantages, Global Distributed Multi-Model Database Service, Indexes and queries, Replication, consistency, and transactions, Analysis, full-text search, and mobile support, the price system, Management and monitoring, Security and encryption. We hope that you understood the concept clearly if you have any questions related to Azure Cosmos DB features, please leave your comment in the below comment box. We will get back to you as soon as possible.

Kiran Gutha

Kiran Gutha

Professional training provider at Mindmajix Technologies
The author has an experience of more than 6 years of corporate experience in various technology platforms such as Big Data, AWS, Data Science, Machine Learning, Python, Microsoft Azure, SQL, JAVA, Oracle, Digital Marketing etc. He is a technology nerd and regular contributor to various open community platforms.
Kiran Gutha

Latest posts by Kiran Gutha (see all)