Azure Cosmos DB

Distributed, multi-model database for any scale


Azure Cosmos DB is a distributed, multimodal database. It was built from the ground up with distribution and horizontal scaling at its core. It offers turnkey distribution across any number of Azure regions by transparently scaling and replicating data (wherever users are). Flexibly scale throughput and storage within the range of multiple data centers, and only pay for what you need. Azure Cosmos DB guarantees single digit millisecond latencies at the 99th percentile, offers multiple well-defined consistency models for fine tuning performance, and guarantees high availability with multi-homing functionality anywhere in each region – all supported by industry-leading, comprehensive Service Level Agreements (SLAs).

Azure Cosmos DB really is architecture-independent. It can automatically index all data without having to deal with architecture and index management. It is also a data model with multiple models, local support documentation, key values, graphs, and columns. With Azure Cosmos DB, you can use selected APIs to access data because DocumentDB SQL (documents) and MongoDB (documents) and Azure Table Storage (key-value), Gremlin (graph), and Cassandra (column-family) are all supported locally.

Turnkey global distribution with multi-master capability
Global Availability (all Azure regions, including US Government, DoD, China)
Multi-model, multi-API with rich query support and automatic indexing
Single digit millisecond read and write latency at the 99th percentile backed by SLA
Comprehensive SLAs
  • Availability SLA
  • Throughput SLA
  • Consistency SLA
  • Latency SLA
  • End-to-end data encryption (at rest and in motion)
  • IP and VNET isolation
  • Access control and authorization
Elastic and Limitless Scale
  • No limit on throughput and storage
  • Instant scaling that lowers TCO over on-prem and IaaS-hosted NoSQL databases
Comprehensive compliance certifications consistent with Azure compliance

Pricing at a glance

Provisioned throughput

Your Azure Cosmos DB database account could be distributed across one or more Azure regions. While all the regions associated with your database account can serve reads, your database account can also be configured to have all regions to process the writes (multi-master) or exactly one region to process the writes (single-master).

In Azure Cosmos DB, you are billed for the provisioned throughput and consumed storage by the hour. The throughput is expressed in terms of a normalized throughput currency called Request Units per second (RU/s). Once provisioned, RU/s can be used interchangeably across various database operations (e.g., inserts, reads, replaces, upserts, deletes, queries, etc.). You can programmatically (or via Azure Portal) configure the throughput you need and elastically scale the provisioned throughput at any time.

Provisioning at different granularities

You can provision throughput at different granularities You can provision throughput for:

  1. Cosmos DB container. Depending on the choice of data model or API, a Cosmos DB container can be a collection (e.g., MongoDB, SQL), a graph (e.g., Gremlin), or a table (e.g., Cassandra, Azure Table storage). Containers in Cosmos DB are horizontally partitioned and can elastically scale to deliver unlimited amount of throughput and storage.
  2. Cosmos DB database. The throughput configured on the database is shared across all the containers of the database. You can choose to explicitly exclude certain containers from database provisioning and instead provision throughput for those containers at container level.
Container* 400 400 100 100 Unlimited The partitioned container for which the throughput is provisioned
Database** 400 400 100 100 Unlimited All the throughput is shared among all the partitioned-containers within the database (excluding the containers for which the throughput is explicitly provisioned for)
*A Cosmos DB container maps to the following: a Cosmos DB collection while using SQL API, a MongoDB collection while using MongoDB API, a table while using Cassandra or Table storage APIs, or a graph while using Gremlin API.

** A Cosmos DB database maps to the following: a database while using SQL or MongoDB APIs, a keyspace while using Cassandra API or a database account while using Gremlin or Table storage APIs.

Consumed Storage

Azure Cosmos DB offers unlimited transactional and analytical (preview) storage. Storage is billed as GBs of local SSD-backed logical storage used by your data and indexes across all the regions where you are using Azure Cosmos DB. For example, if you replicate an Azure Cosmos DB account across three regions, you will pay for the total storage cost in each of those three regions.

Your data is managed in two distinct storage tiers, transactional and analytical (preview), with workloads operating on the same logical data without interfering with each other. While transactional storage is always enabled by default, you must explicitly enable analytical (preview) storage on your Cosmos container.

*The following prices are tax-inclusive.

*Monthly price estimates are based on 744 hours of usage per month.
1 GB of consumed transactional storage (row-oriented) ¥ 2.576/month
1 GB of consumed analytical storage (column-oriented) - preview ¥ 0.149/month

For transactional storage, there is no additional charge for IOPS (input/output operations per second).

Elastically scaling reads and writes across the globe

You can add/remove Azure regions anywhere in the world to your Cosmos DB database account at any time. The throughput that you have configured for various Cosmos DB databases and containers is guaranteed to be reserved in each of the Azure regions associated with your Cosmos DB database account.

Automatically configuring provisioned throughput with Autoscale

With Autoscale mode, your containers and databases will automatically scale provisioned throughput based on workload patterns, maintaining SLAs, without requiring you to manually manage capacity or handle rate-limiting. This is best for unpredictable, infrequent or bursty workloads. As your application makes requests to your Cosmos container or database, Autoscale mode will automatically and instantaneously adjust provisioned throughput based on the needs of the workload.

Autoscale Throughput – Unit (100 RU/s per hour) Price
100 Autoscale RU/s, single-region account ¥ 0.0765/hour
100 Autoscale RU/s, multi-region, single master account with N regions N regions x ¥ 0.0765, where N > 1
100 RU/s multi-region, multi-master account with N regions N regions x ¥ 0.102, where N > 1

For more information, see documentation page.

Standard (manual) provisioned throughput

Ideal for large, critical workloads with predictable traffic patterns. With provisioned throughput, resources are dedicated to your workloads and SLA-backed single-digit millisecond latency and 99.999-percent availability are guaranteed.

100 RU/s single-region account ¥0.051/hour
100 RU/s multi-region, single master account with N > 1 regions N regions x ¥0.051 /hour
100 RU/s multi-region, multi-master account with N > 1 regions* N x ¥0.102/hour
Standard data transfer rates apply. Monthly price estimates are based on 744 hours per month.

Cosmos containers and databases require a minimum of provisioned throughput 400 RU/s.

*The price for multi-region, multi-master accounts created before December 1, 2019 is (N regions + 1) x ¥0.102/hour

Scaling containers

For high-throughput and high-storage workloads, you can create unlimited containers by defining a partition key when a collection is created. A partitioned container will seamlessly scale out as the quantity of stored data grows and provisioned throughput increases.

Multi-regional scale with geo-replication

Azure Cosmos DB is a fully managed database service with turnkey global distribution and transparent multi-master replication. You can add and remove regions to your Azure Cosmos account at any time. The throughput that you configure for various Azure Cosmos databases and containers is reserved in each region associated with your Cosmos account.

In addition to multi-region configuration, you can now enable zone redundancy, when selecting a region to associate with your Azure Cosmos database. Zone redundancy provides additional redundancy within a given region by replicating data across multiple zones in that region. Availability zones redundancy is available for single region accounts, and multi-region accounts with multi-region writes enabled.

High throughput and low-latency queries

When writing a sustained amount of data with Azure Cosmos DB, the data is indexed synchronously to provide consistent SQL queries using a write-optimized, latch-free database engine designed for solid-state drives (SSDs) and low-latency access. When data is distributed, read and write requests always originate from the local region. Performance can be further optimized by customizing automatic index behavior.


Expand all
  • What is a request unit?

    A request unit (RU) is the unit of measurement for throughput in Azure Cosmos DB. 1 RU corresponds to the throughput for obtaining a 1 KB file. Every operation performed in DocumentDB (including reads, writes, SQL queries, and stored procedure executions) has a determined request unit value based on the throughput required to complete the operation. Instead of thinking about CPU, IO, and memory, and how they affect your application throughput, you can think in terms of a single Request Unit measure.

    A request unit used through provisioned RUs per second or a one-minute bucket is the same.

    For details on request units and help determining your collection needs, please see Request Units in Azure Cosmos DB.

  • How does request unit usage appear on my bill?

    During this period, billing is based on the total capacity (RU/second) provisioned under your Azure Cosmos DB account, using predictable hourly rates that fluctuate steadily

    If you create accounts for two partitions that use 500 RU/second and 700 RU/second respectively, the total provisioned capacity will reach 1,200 RU/second. Therefore, the billing amount will be 12 x ¥ 0.051 = ¥ 0.612 /hour.

    If your throughput needs to be changed and you increase the capacity of each partition by 500 RU/second, while also creating a new unlimited container using 20,000 RU/s, your overall provisioned capacity would be 22,200 RU/second (1,000 RU/second + 1,200 RU/second + 20,000 RU/second). Your bill would then change to: ¥ 0.051 x 222 = ¥11.322/hour.

    In a month of 720 hours, if 500 hours are provisioned at 1,200 RU/second and 220 hours are provisioned at 22,200 RU/second, the monthly bill will show: 500 x ¥ 0.612/hour + 220 x ¥ 11.322/hour = ¥ 2,796.84.

  • Working principles of request units per minute

    In addition to the normal preview throughput, additional per minute request units can now be provisioned. You can use these additional throughput units in the UTC minute window. If per minute request units are enabled, an additional 1,000 request units per minute can be used for every 100 RU/second provisioned in a container.

    For example, if you provision 400 RU/second, you can use an additional 4,000 request units per second. Suppose that an application requires more than 400 RU/second at 12 o'clock noon. From 12:00:01 p.m. to 12:01:00 p.m., the application will be able to use 4,000 additional request units while continuing to use the provisioned 400 RU/second throughput. Starting from 12:00:01 p.m., if all 4,000 request units are used before 12:01:00 p.m., the other request units cannot be used until the next UTC minute (starting from 12:01:01 p.m.). If you do not use all 4,000 request units within a given minute time interval, the remaining request units will not accumulate to the next minute time interval.

    Please see Number of per minute request units in Azure Cosmos DB for details.

  • If I specify my own performance for the container, how will the storage be billed?

    Storage capacity is billed according to the maximum hourly amount of data stored (in GB) over a monthly period. For example, if you used 100 GB of storage in the first half of the month and 50 GB in the second half of the month, you would be billed for an equivalent of 75 GB of storage during that month.

  • How will I be billed if my container is active for less than an hour?

    You are billed the flat rate for each hour the container exists, regardless of usage or if the collection is active for less than an hour. For example, if you create a container and delete it five minutes later, your bill will reflect a charge of one unit hour.

  • How do I increase or decrease the throughput for each collection?

    You can increase or decrease the number of request units per container in an Azure Cosmos DB account using one of the supported SDKs or REST APIs in the Azure portal.

  • What is the difference between "autopilot" and "autoscale" in Azure Cosmos DB?

    "Autoscale" or "autoscale provisioned throughput" is the updated name for the feature, previously known as "autopilot." With the current release of autoscale, we've added new features, including the ability to set custom max RU/s and programmatic support.

  • How does autoscale show up on my bill?

    In single-master accounts, the autoscale rate per 100 RU/s is 1.5x the rate of standard (manual) provisioned throughput. On your bill, you will see the existing standard provisioned throughput meter. The quantity of this meter will be multiplied by 1.5. For example, if the highest RU/s the system scaled to within an hour was 6000 RU/s, you'd be billed 60 * 1.5 = 90 units of the meter for that hour.

    In multi-master accounts, the autoscale rate per 100 RU/s is the same as the rate for standard (manual) provisioned multi-master throughput. On your bill, you will see the existing multi-master meter. Since the rates are the same, if you use autoscale, you'll see the same quantity as with standard throughput.

Support & SLA

If you have any questions or need help, please visit Azure Support and select self-help service or any other method to contact us for support.

Azure Cosmos DBoperated by 21Vianet in China is a distributedmulti-model database service. It provides turnkey data distribution in different Azure Data Centers in China, so your users can adjust and replicate your data transparently, no matter where they are located. This service offers a comprehensive 99.99% Service Level Agreement that includes a Cosmos DB database account for a single Azure region configured with any of five levels of consistency, or throughput, consistency, availability, and latency guarantees for database accounts across multiple Azure regions configured with any of four levels of loose consistency. In addition to consistency level selection, Cosmos DB also offers a 99.999% Service Level Agreement for database accounts with read availability across two or more Azure regions.

To learn more about the details of our Service Level Agreement, please visit the Service Level Agreements page.

Are you ready to start?

Apply for a 1RMB Trial, and get an ¥ 1,500 free credit limit with Azure

1RMB Trial