Provision database, container or autoscale throughput on Azure Cosmos DB for MongoDB resources
APPLIES TO: MongoDB
This article explains how to provision throughput in Azure Cosmos DB for MongoDB. You can provision standard(manual) or autoscale throughput on a container, or a database and share it among the containers within the database. You can provision throughput using Azure portal, Azure CLI, or Azure Cosmos DB SDKs.
If you are using a different API, see API for NoSQL, API for Cassandra, API for Gremlin articles to provision the throughput.
Azure portal
Sign in to the Azure portal.
Create a new Azure Cosmos DB account, or select an existing Azure Cosmos DB account.
Open the Data Explorer pane, and select New Collection. Next, provide the following details:
- Indicate whether you are creating a new database or using an existing one. Select the Provision database throughput option if you want to provision throughput at the database level.
- Enter a collection ID.
- Enter a partition key value (for example,
ItemID
). - Enter a throughput that you want to provision (for example, 1000 RUs).
- Select OK.
Note
If you are provisioning throughput on a container in an Azure Cosmos DB account configured with the Azure Cosmos DB for MongoDB, use myShardKey
for the partition key path.
.NET SDK
// refer to MongoDB .NET Driver
// https://docs.mongodb.com/drivers/csharp
// Create a new Client
String mongoConnectionString = "mongodb://DB AccountName:Password@DB AccountName.documents.azure.com:10255/?ssl=true&replicaSet=globaldb";
mongoUrl = new MongoUrl(mongoConnectionString);
mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl);
mongoClient = new MongoClient(mongoClientSettings);
// Change the database name
mongoDatabase = mongoClient.GetDatabase("testdb");
// Change the collection name, throughput value then update via MongoDB extension commands
// https://learn.microsoft.com/azure/cosmos-db/mongodb-custom-commands#update-collection
var result = mongoDatabase.RunCommand<BsonDocument>(@"{customAction: ""UpdateCollection"", collection: ""testcollection"", offerThroughput: 400}");
Azure Resource Manager
Azure Resource Manager templates can be used to provision autoscale throughput on database or container-level resources for all Azure Cosmos DB APIs. See Azure Resource Manager templates for Azure Cosmos DB for samples.
Azure CLI
Azure CLI can be used to provision autoscale throughput on a database or container-level resources for all Azure Cosmos DB APIs. For samples see Azure CLI Samples for Azure Cosmos DB.
Azure PowerShell
Azure PowerShell can be used to provision autoscale throughput on a database or container-level resources for all Azure Cosmos DB APIs. For samples see Azure PowerShell samples for Azure Cosmos DB.
Next steps
See the following articles to learn about throughput provisioning in Azure Cosmos DB:
- Request units and throughput in Azure Cosmos DB
- Trying to do capacity planning for a migration to Azure Cosmos DB? You can use information about your existing database cluster for capacity planning.
- If all you know is the number of vcores and servers in your existing database cluster, read about estimating request units using vCores or vCPUs
- If you know typical request rates for your current database workload, read about estimating request units using Azure Cosmos DB capacity planner