Effettuare il provisioning della velocità effettiva per la scalabilità automatica a livello di database o contenitore in Azure Cosmos DB - API per NoSQL

SI APPLICA A: NoSQL

Questo articolo illustra come effettuare il provisioning della velocità effettiva per la scalabilità automatica su un database o un contenitore (raccolta, grafo o tabella) in Azure Cosmos DB for NoSQL. È possibile abilitare la scalabilità automatica per un singolo contenitore oppure effettuare il provisioning della velocità effettiva per la scalabilità automatica a livello di database e condividerla tra tutti i contenitori nel database.

Se si usa un'API diversa, vedere gli articoli API per MongoDB, API per Cassandra e API per Gremlin per effettuare il provisioning della velocità effettiva.

Azure portal

Creare un nuovo database o contenitore con scalabilità automatica

  1. Accedere al portale di Azure o a Azure Cosmos DB Explorer.

  2. Passare all'account Azure Cosmos DB e aprire la scheda Esplora dati.

  3. Selezionare Nuovo contenitore. Immettere un nome per il database, il contenitore e una chiave di partizione. Nella sezione della velocità effettiva del database o del container, selezionare l'opzione Scalabilità automatica e impostare la velocità effettiva massima (UR/s) per il dimensionamento del database o del contenitore.

    Creating a container and configuring autoscale provisioned throughput

  4. Seleziona OK.

Per effettuare il provisioning della scalabilità automatica per il database con velocità effettiva condivisa, selezionare l'opzione Provision database throughput (Effettua il provisioning della velocità effettiva del database) durante la creazione di un nuovo database.

Abilitare la scalabilità automatica per un database o un contenitore esistente

  1. Accedere al portale di Azure o a Azure Cosmos DB Explorer.

  2. Passare all'account Azure Cosmos DB e aprire la scheda Esplora dati.

  3. Selezionare Scalabilità e impostazioni per il contenitore oppure Dimensiona per il database.

  4. In Dimensiona selezionare l'opzione Scalabilità automatica e fare clic su Salva.

    Enabling autoscale on an existing container

Nota

Quando si abilita la scalabilità automatica per un database o un contenitore esistente, il valore iniziale per il numero massimo di UR/s è determinato dal sistema, in base alle impostazioni correnti del provisioning della velocità effettiva manuale e allo spazio di archiviazione. Al termine dell'operazione, se necessario, è possibile modificare il numero massimo di UR/s. Altre informazioni.

Azure Cosmos DB .NET V3 SDK

Usare la versione 3.9 o successiva di Azure Cosmos DB .NET SDK per API per NoSQL per gestire le risorse con scalabilità automatica.

Importante

È possibile usare .NET SDK per creare nuove risorse con scalabilità automatica. L'SDK non supporta la migrazione tra scalabilità automatica e velocità effettiva standard (manuale). Lo scenario di migrazione è attualmente supportato solo nel portale di Azure, nell'interfaccia della riga di comando di Azure e in PowerShell.

Creare il database con velocità effettiva condivisa

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

Creare il contenitore con velocità effettiva dedicata

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

Leggere la velocità effettiva corrente (UR/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;

Modificare la velocità effettiva massima per la scalabilità automatica (UR/s)

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

Azure Cosmos DB Java V4 SDK

È possibile usare la versione 4.0 o successiva di Azure Cosmos DB Java SDK per API per NoSQL per gestire le risorse con scalabilità automatica.

Importante

È possibile usare Java SDK per creare nuove risorse con scalabilità automatica. L'SDK non supporta la migrazione tra scalabilità automatica e velocità effettiva standard (manuale). Lo scenario di migrazione è attualmente supportato solo nel portale di Azure, nell'interfaccia della riga di comando di Azure e in PowerShell.

Creare il database con velocità effettiva condivisa

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

Creare il contenitore con velocità effettiva dedicata

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

Leggere la velocità effettiva corrente (UR/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;

Modificare la velocità effettiva massima per la scalabilità automatica (UR/s)

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

Azure Resource Manager

I modelli di Azure Resource Manager possono essere usati per effettuare il provisioning della velocità effettiva di scalabilità automatica in una nuova risorsa a livello di database o contenitore per tutte le API di Azure Cosmos DB. Per ottenere alcuni esempi, vedere Modelli di Azure Resource Manager per Azure Cosmos DB. Per impostazione predefinita, i modelli di Azure Resource Manager non possono essere usati per eseguire la migrazione tra velocità effettiva con provisioning e velocità effettiva con scalabilità automatica in una risorsa esistente.

Interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Azure può essere usata per effettuare il provisioning della velocità effettiva con scalabilità automatica in una nuova risorsa a livello di database o contenitore per tutte le API di Azure Cosmos DB, nonché per abilitare la scalabilità automatica in una risorsa esistente. Per ottenere alcuni esempi vedere Esempi dell'interfaccia della riga di comando di Azure per Azure Cosmos DB.

Azure PowerShell

Azure PowerShell può essere usato per effettuare il provisioning della velocità effettiva con scalabilità automatica in una nuova risorsa a livello di database o contenitore per tutte le API di Azure Cosmos DB, nonché per abilitare la scalabilità automatica in una risorsa esistente. Per ottenere alcuni esempi vedere Esempi di Azure PowerShell per Azure Cosmos DB.

Passaggi successivi