Aprovisionamiento del rendimiento de la escalabilidad automática en una base de datos o un contenedor de Azure Cosmos DB: API para NoSQL

SE APLICA A: NoSQL

En este artículo se explica cómo aprovisionar el rendimiento de la escalabilidad automática en una base de datos o un contenedor (colección, grafo o tabla) en Azure Cosmos DB for NoSQL. Puede habilitar la escalabilidad automática en un solo contenedor o aprovisionar el rendimiento de escalabilidad automática en una base de datos y compartirlo entre todos los contenedores de la base de datos.

Si usa una API diferente, consulte los artículos API para MongoDB, API para Cassandra y API para Gremlin para aprovisionar el rendimiento.

Azure portal

Creación de una base de datos o un contenedor con escalabilidad automática

  1. Inicie sesión en Azure Portal o en el explorador de Azure Cosmos DB.

  2. Vaya a la cuenta de Azure Cosmos DB y abra la pestaña Explorador de datos.

  3. Seleccione Nuevo contenedor. Escriba un nombre para la base de datos, el contenedor y una clave de partición. En el rendimiento de la base de datos o del contenedor, seleccione la opción Escalabilidad automática y establezca el rendimiento máximo (RU/s) al que quiere escalar la base de datos o el contenedor.

    Creación de un contenedor y configuración del rendimiento aprovisionado de escalabilidad automática

  4. Seleccione Aceptar.

Para aprovisionar la escalabilidad automática en la base de datos de rendimiento compartido, seleccione la opción Aprovisionar rendimiento de base de datos al crear una nueva base de datos.

Habilitación de la escalabilidad automática en la base de datos o el contenedor existente

  1. Inicie sesión en Azure Portal o en el explorador de Azure Cosmos DB.

  2. Vaya a la cuenta de Azure Cosmos DB y abra la pestaña Explorador de datos.

  3. Seleccione Escala y configuración para su contenedor o Escala para la base de datos.

  4. En Escala, seleccione la opción Escalabilidad automática y Guardar.

    Habilitación de la escalabilidad automática en un contenedor existente

Nota:

Cuando se habilita la escalabilidad automática en una base de datos o un contenedor existente, el sistema determina el valor inicial para el número máximo de RU/s, en función de la configuración de rendimiento y el almacenamiento aprovisionados manualmente. Una vez completada la operación, puede cambiar el número máximo de RU/s si es necesario. Más información.

SDK de Azure Cosmos DB para .NET V3

Use la versión 3.9 o posterior del SDK de Azure Cosmos DB para .NET para la API para NoSQL con el fin de administrar los recursos de escalabilidad automática.

Importante

Puede usar el SDK para .NET para crear nuevos recursos de escalabilidad automática. El SDK no admite la migración entre el rendimiento estándar (manual) y la escalabilidad automática. Actualmente, el escenario de migración solo se admite en Azure Portal, la CLI y PowerShell.

Creación de una base de datos con rendimiento compartido

// 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);

Creación de un contenedor con rendimiento dedicado

// 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);

Lectura del rendimiento actual (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;

Cambio del rendimiento máximo de escalabilidad automática (RU/s)

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

SDK de Azure Cosmos DB para Java V4

Puede usar la versión 4.0 o posterior del SDL de Azure Cosmos DB para Java para la API para NoSQL con el fin de administrar los recursos de escalabilidad automática.

Importante

Puede usar el SDK para Java para crear nuevos recursos de escalabilidad automática. El SDK no admite la migración entre el rendimiento estándar (manual) y la escalabilidad automática. Actualmente, el escenario de migración solo se admite en Azure Portal, la CLI y PowerShell.

Creación de una base de datos con rendimiento compartido

// 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();

Creación de un contenedor con rendimiento dedicado

// 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();

Lectura del rendimiento actual (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;

Cambio del rendimiento máximo de escalabilidad automática (RU/s)

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

Azure Resource Manager

Las plantillas de Azure Resource Manager se pueden usar para aprovisionar el rendimiento de escalabilidad automática en una nueva base de datos o en recursos de nivel de contenedor para todas las API de Azure Cosmos DB. Consulte Plantillas de Azure Resource Manager para Azure Cosmos DB para ejemplos. Por diseño, las plantillas de Azure Resource Manager no se pueden usar para migrar entre el rendimiento aprovisionado y el de escalabilidad automática en un recurso existente.

CLI de Azure

La CLI de Azure se puede usar para aprovisionar el rendimiento de escalabilidad automática en una nueva base de datos o en recursos de nivel de contenedor para todas las API de Azure Cosmos DB, o para habilitar la escalabilidad automática en un recurso existente. Para ejemplos, consulte Ejemplos de la CLI de Azure para Azure Cosmos DB.

Azure PowerShell

Azure PowerShell se puede usar para aprovisionar el rendimiento de escalabilidad automática en una nueva base de datos o en recursos de nivel de contenedor para todas las API de Azure Cosmos DB, o para habilitar la escalabilidad automática en un recurso existente. Para ejemplos, consulte Ejemplos de Azure PowerShell para Azure Cosmos DB.

Pasos siguientes