Resources
The Cosmos DB hierarchy is made up of four different resources:
AccountDatabaseContainerItem
Account
The Cosmos DB account is the base resource providing global distribution and high availability. The account contains the DNS definition and which regions your data is available in.
Currently you can have up to 50 different Cosmos DB accounts under a single subscription, with more available via support request.
Database
You can create one or more databases under a single Cosmos DB account. A database is a namespace for grouping and managing containers.
Container
The Cosmos DB container is the fundamental unit of scalability. You can have virtually unlimited throughput and storage on a container. This is achieved by sharding your database across multiple servers using your partition key.
Partitions in Cosmos DB are effectively shards. There are two levels to Azure managed partitioning: logical and physical.
Data is arranged into logical partitions with a maximum size of 20GB via your selected partition key. Logical partitions are assigned to physical servers, creating physical partitions. Physical partitions have a maximum size of 50GB.
Each individual physical partition can support up to 10,000 RU/s throughput.
When you create a container you specify one of two throughput modes:
Dedicated
Throughput to this container is exclusively reserved for this container.StandardAutoscale
Shared
Throughput is shared with up to 25 containers within a database. Containers configured asdedicatedare excluded from this shared throughput
Item
Items are the leaf nodes of the Cosmos DB resource hierarchy. Depending on which API you use, these resourced are realised as different types:
| API for NoSQL | API for Cassandra | API for MongoDB | API for Gremlin | API for Table |
|---|---|---|---|---|
| Item | Row | Document | Node or edge | Item |