Compartilhar via


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 a taxa de transferência de escala automática 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, consulte API para MongoDB, API para Cassandra ou API para Gremlin.

portal do Azure

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

  1. Entre no portal do Azure ou no Explorador do Azure Cosmos DB.

  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.

  4. 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.

    Captura de tela que mostra as configurações para criar um contêiner e configurar o dimensionamento automático para a taxa de transferência provisionada.

  5. 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 Explorador do Azure Cosmos DB.

  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.

    Captura de tela das configurações para habilitar 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 valor máximo de RU/s é determinado pelo sistema com base nas suas configurações atuais de taxa de transferência provisionada manual e armazenamento. Após a operação ser concluída, você poderá alterar o máximo de RU/s, se necessário. Para saber mais, confira perguntas frequentes sobre a escalabilidade automática da taxa de transferência provisionada.

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 os 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 dá suporte à 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 dá suporte à 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 Cosmos DB Go SDK

Você pode usar ThroughputProperties em recursos de banco de dados e contêiner.

Criar um banco de dados com taxa de transferência manual

// manual throughput properties
db_throughput := azcosmos.NewManualThroughputProperties(400)

_, err = client.CreateDatabase(context.Background(), azcosmos.DatabaseProperties{
	ID: "demo_db",
}, &azcosmos.CreateDatabaseOptions{
	ThroughputProperties: &db_throughput,
})

Criar um contêiner com taxa de transferência de escala automática

pkDefinition := azcosmos.PartitionKeyDefinition{
	Paths: []string{"/state"},
	Kind:  azcosmos.PartitionKeyKindHash,
}

// autoscale throughput properties
throughput := azcosmos.NewAutoscaleThroughputProperties(4000)

db.CreateContainer(context.Background(), azcosmos.ContainerProperties{
	ID:                     "demo_container",
	PartitionKeyDefinition: pkDefinition,
}, &azcosmos.CreateContainerOptions{
	ThroughputProperties: &throughput,
})

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. Para obter exemplos, consulte os modelos do Azure Resource Manager para o Azure Cosmos DB.

Por padrão de design, os modelos do Azure Resource Manager não podem ser usados para migrar entre a taxa de transferência provisionada e a taxa de dimensionamento automático em um recurso existente.

CLI do Azure

É possível usar a CLI do Azure para configurar o dimensionamento automático de throughput em um novo banco de dados ou recurso no nível de contêiner para todas as APIs do Azure Cosmos DB, ou para habilitar o dimensionamento automático em um recurso existente.

Azure PowerShell

O Azure PowerShell pode ser usado para provisionar a taxa de transferência de escala automática 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 escala automática em um recurso existente.

Próximas etapas