Approvisionner le débit avec mise à l’échelle automatique sur une base de données ou un conteneur dans Azure Cosmos DB - API pour NoSQL

S’APPLIQUE À : NoSQL

Cet article explique comment approvisionner le débit avec mise à l’échelle automatique sur une base de données ou un conteneur (collection, graphique ou table) dans Azure Cosmos DB for NoSQL. Vous pouvez activer la mise à l’échelle automatique sur un seul conteneur ou approvisionner le débit avec mise à l’échelle automatique sur une base de données et le partager entre tous les conteneurs de cette base de données.

Si vous utilisez une autre API, consultez les articles API pour MongoDB, API pour Cassandra, API pour Gremlin pour approvisionner le débit.

Portail Azure

Créer une base de données ou un conteneur avec mise à l’échelle automatique

  1. Connectez-vous au Portail Azure ou à l’ explorateur Azure Cosmos DB.

  2. Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Explorateur de données.

  3. Sélectionnez Nouveau conteneur. Entrez un nom pour votre base de données et votre conteneur ainsi qu’une clé de partition. Sous Débit de la base de données ou d’un conteneur, sélectionnez l’option Mise à l’échelle automatique et définissez le débit maximal (RU/s) auquel vous souhaitez que la base de données ou le conteneur soit mis à l’échelle.

    Création d’un conteneur et configuration du débit provisionné en mode de mise à l’échelle automatique

  4. Sélectionnez OK.

Pour configurer la mise à l’échelle automatique sur une base de données à débit partagé, sélectionnez l’option Approvisionner le débit d’une base de données lors de la création d’une base de données.

Activer la mise à l’échelle automatique sur une base de données ou un conteneur existant

  1. Connectez-vous au Portail Azure ou à l’ explorateur Azure Cosmos DB.

  2. Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Explorateur de données.

  3. Sélectionnez Mise à l’échelle et paramètres pour votre conteneur ou Mise à l’échelle pour votre base de données.

  4. Sous Mise à l’échelle, sélectionnez l’option Mise à l’échelle automatique, puis Enregistrer.

    Activation de la mise à l’échelle automatique sur un conteneur existant

Notes

Lorsque vous activez la mise à l’échelle automatique sur une base de données ou un conteneur existant, la valeur de départ pour le nombre maximum de RU/s est déterminée par le système, en fonction de vos paramètres de débit approvisionné manuellement et de votre stockage. Une fois l’opération terminée, vous pouvez modifier le nombre maximal de RU/s si nécessaire. En savoir plus.

Kit de développement logiciel (SDK) .NET Azure Cosmos DB V3

Utilisez la version 3.9 ou ultérieure du Kit de développement logiciel (SDK) .NET Azure Cosmos DB pour l’API pour NoSQL pour gérer les ressources avec mise à l’échelle automatique.

Important

Vous pouvez utiliser le Kit de développement logiciel (SDK) .NET pour créer des ressources avec mise à l’échelle automatique. Le Kit de développement logiciel (SDK) ne prend pas en charge la migration entre le débit en mode de mise à l’échelle automatique et le débit standard (manuel). Actuellement, le scénario de migration est pris en charge uniquement dans le portail Azure, l’interface CLI et PowerShell.

Créer une base de données avec débit partagé

// Create instance of CosmosClient
CosmosClient cosmosClient = new CosmosClient(Endpoint, PrimaryKey);
 
// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
database = await cosmosClient.CreateDatabaseAsync(DatabaseName, throughputProperties: autoscaleThroughputProperties);

Créer un conteneur avec débit dédié

// Get reference to database that container will be created in
Database database = await cosmosClient.GetDatabase("DatabaseName");

// Container and autoscale throughput settings
ContainerProperties autoscaleContainerProperties = new ContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
container = await database.CreateContainerAsync(autoscaleContainerProperties, autoscaleThroughputProperties);

Lire le débit actuel (RU/s)

// Get a reference to the resource
Container container = cosmosClient.GetDatabase("DatabaseName").GetContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = await container.ReadThroughputAsync(requestOptions: null); 

// The autoscale max throughput (RU/s) of the resource
int? autoscaleMaxThroughput = autoscaleContainerThroughput.AutoscaleMaxThroughput;

// The throughput (RU/s) the resource is currently scaled to
int? currentThroughput = autoscaleContainerThroughput.Throughput;

Modifier le débit maximal avec mise à l’échelle automatique (RU/s)

// Change the autoscale max throughput (RU/s)
await container.ReplaceThroughputAsync(ThroughputProperties.CreateAutoscaleThroughput(newAutoscaleMaxThroughput));

Kit de développement logiciel (SDK) Java Azure Cosmos DB V4

Vous pouvez utiliser la version 4.0 ou ultérieure du Kit de développement logiciel (SDK) Java Azure Cosmos DB pour API pour NoSQL pour gérer les ressources avec mise à l’échelle automatique.

Important

Vous pouvez utiliser le Kit de développement logiciel (SDK) Java pour créer des ressources avec mise à l’échelle automatique. Le Kit de développement logiciel (SDK) ne prend pas en charge la migration entre le débit en mode de mise à l’échelle automatique et le débit standard (manuel). Actuellement, le scénario de migration est pris en charge uniquement dans le portail Azure, l’interface CLI et PowerShell.

Créer une base de données avec débit partagé

// Create instance of CosmosClient
CosmosAsyncClient client = new CosmosClientBuilder()
    .setEndpoint(HOST)
    .setKey(PRIMARYKEY)
    .setConnectionPolicy(CONNECTIONPOLICY)
    .buildAsyncClient();

// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
CosmosAsyncDatabase database = client.createDatabase(databaseName, autoscaleThroughputProperties).block().getDatabase();

Créer un conteneur avec débit dédié

// Get reference to database that container will be created in
CosmosAsyncDatabase database = client.createDatabase("DatabaseName").block().getDatabase();

// Container and autoscale throughput settings
CosmosContainerProperties autoscaleContainerProperties = new CosmosContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
CosmosAsyncContainer container = database.createContainer(autoscaleContainerProperties, autoscaleThroughputProperties, new CosmosContainerRequestOptions())
                                .block()
                                .getContainer();

Lire le débit actuel (RU/s)

// Get a reference to the resource
CosmosAsyncContainer container = client.getDatabase("DatabaseName").getContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = container.readThroughput().block().getProperties();

// The autoscale max throughput (RU/s) of the resource
int autoscaleMaxThroughput = autoscaleContainerThroughput.getAutoscaleMaxThroughput();

// The throughput (RU/s) the resource is currently scaled to
int currentThroughput = autoscaleContainerThroughput.Throughput;

Modifier le débit maximal avec mise à l’échelle automatique (RU/s)

// Change the autoscale max throughput (RU/s)
container.replaceThroughput(ThroughputProperties.createAutoscaledThroughput(newAutoscaleMaxThroughput)).block();

Azure Resource Manager

Les modèles Azure Resource Manager peuvent être utilisés pour provisionner le débit avec mise à l’échelle automatique sur une nouvelle ressource de base de données ou au niveau du conteneur pour toutes les API Azure Cosmos DB. Consultez Modèles Azure Resource Manager pour Azure Cosmos DB afin de voir des exemples. Par défaut, les modèles Azure Resource Manager ne peuvent pas être utilisés pour effectuer une migration entre le débit provisionné et le débit avec mise à l’échelle automatique sur une ressource existante.

Azure CLI

L’interface Azure CLI peut être utilisée pour provisionner le débit avec mise à l’échelle automatique sur une nouvelle ressource de base de données ou au niveau du conteneur pour toutes les API Azure Cosmos DB ou activer la mise à l’échelle automatique sur une ressource existante. Pour voir des exemples, consultez Exemples Azure CLI pour Azure Cosmos DB.

Azure PowerShell

Azure PowerShell peut être utilisé pour provisionner le débit avec mise à l’échelle automatique sur une nouvelle ressource de base de données ou au niveau du conteneur pour toutes les API Azure Cosmos DB ou activer la mise à l’échelle automatique sur une ressource existante. Pour obtenir des exemples, consultez Exemples Azure PowerShell pour Azure Cosmos DB.

Étapes suivantes