Provisionar taxa de transferência de dimensionamento automático no banco de dados ou contêiner no Azure Cosmos DB – API para NoSQL

APLICA-SE A: NoSQL

Este artigo explica como provisionar taxa de transferência de dimensionamento automático em um banco de dados ou contêiner (coleção, grafo ou tabela) no Azure Cosmos DB for NoSQL. Você pode habilitar o dimensionamento automático em um único contêiner ou provisionar taxa de transferência de dimensionamento automático em um banco de dados e compartilhá-la entre todos os contêineres no banco de dados.

Se você estiver usando uma API diferente, confira os artigos API do MongoDB, API do Cassandra e API do Gremlin para provisionar a taxa de transferência.

Portal do Azure

Criar novo banco de dados ou contêiner com dimensionamento automático

  1. Entre no Portal do Azure ou no Azure Cosmos DB Explorer.

  2. Vá até sua conta do Azure Cosmos DB e abra a guia Data Explorer.

  3. Selecione Novo contêiner. Insira um nome para seu banco de dados, contêiner e uma chave de partição. Em taxa de transferência de contêiner ou banco de dados, selecione a opção dimensionamento automático e defina a taxa de transferência máxima (RU/s) para a qual você deseja que o banco de dados ou contêiner seja dimensionado.

    Criando um contêiner e configurando a taxa de transferência provisionada de dimensionamento automático

  4. Selecione OK.

Para provisionar o dimensionamento automático no banco de dados de taxa de transferência compartilhada, selecione a opção Provisionar taxa de transferência do banco de dados ao criar um novo banco de dados.

Habilitar dimensionamento automático no banco de dados ou contêiner existente

  1. Entre no Portal do Azure ou no Azure Cosmos DB Explorer.

  2. Vá até sua conta do Azure Cosmos DB e abra a guia Data Explorer.

  3. Selecione Escala e configurações para seu contêiner ou Escala para seu banco de dados.

  4. Em Escala, selecione a opção Dimensionamento automático e Salvar.

    Habilitando o dimensionamento automático em um contêiner existente

Observação

Quando você habilita o dimensionamento automático em um banco de dados ou contêiner existente, o valor inicial para o máximo de RU/s é determinado pelo sistema com base nas suas configurações e armazenamento de taxa de transferência provisionada manual atual. Após a operação ser concluída, você poderá alterar o máximo de RU/s, se necessário. Saiba mais.

Azure Cosmos DB .NET V3 SDK

Use a versão 3.9 ou superior do SDK do .NET do Azure Cosmos DB para a API para NoSQL para gerenciar recursos de dimensionamento automático.

Importante

É possível usar o SDK do .NET para criar novos recursos de dimensionamento automático. O SDK não suporta a migração entre o dimensionamento automático e a taxa de transferência padrão (manual). No momento, o cenário de migração é suportado apenas no portal do Azure, CLI e PowerShell.

Criar banco de dados com taxa de transferência compartilhada

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

Criar contêiner com taxa de transferência dedicada

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

Ler a taxa de transferência atual (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;

Alterar a taxa de transferência máxima do dimensionamento automático (RU/s)

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

Azure Cosmos DB Java V4 SDK

Você pode usar a versão 4.0 ou superior do SDK do Java do Azure Cosmos DB para a API para NoSQL para gerenciar recursos de dimensionamento automático.

Importante

Você pode usar o SDK do Java para criar novos recursos de dimensionamento automático. O SDK não suporta a migração entre o dimensionamento automático e a taxa de transferência padrão (manual). No momento, o cenário de migração é suportado apenas no portal do Azure, CLI e PowerShell.

Criar banco de dados com taxa de transferência compartilhada

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

Criar contêiner com taxa de transferência dedicada

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

Ler a taxa de transferência atual (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;

Alterar a taxa de transferência máxima do dimensionamento automático (RU/s)

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

Azure Resource Manager

Modelos do Azure Resource Manager podem ser usados para provisionar a taxa de transferência de dimensionamento automático em um novo recurso no nível do banco de dados ou do contêiner para todas as APIs do Azure Cosmos DB. Confira Modelos do Azure Resource Manager para o Azure Cosmos DB para exemplos. Por natureza, modelos do Azure Resource Manager não podem ser usados para migrar entre a taxa de transferência provisionada e de dimensionamento automático em um recurso existente.

CLI do Azure

O CLI do Azure pode ser usado para provisionar a taxa de transferência de dimensionamento automático em um novo recurso no nível do banco de dados ou do contêiner para todas as APIs do Azure Cosmos DB, ou permitir dimensionamento automático em um recurso existente. Para exemplos, confira Exemplos da CLI do Azure para Azure Cosmos DB.

Azure PowerShell

O Azure PowerShell pode ser usado para provisionar a taxa de transferência de dimensionamento automático em um novo recurso no nível do banco de dados ou do contêiner para todas as APIs do Azure Cosmos DB, ou permitir dimensionamento automático em um recurso existente. Para exemplos, confira Exemplos do Azure PowerShell para o Azure Cosmos DB.

Próximas etapas