Condividi tramite


Effettuare il provisioning della velocità effettiva per la scalabilità automatica per Azure Cosmos DB for NoSQL

Questo articolo illustra come abilitare la velocità effettiva di scalabilità automatica in un database o in 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 API per MongoDB, API per Cassandra o API per Gremlin.

Azure portal

Creare un nuovo database o contenitore con scalabilità automatica

  1. Accedere al portale di Azure o ad 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.

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

    Screenshot che illustra le impostazioni per creare un contenitore e configurare la produzione fornita con scalabilità automatica.

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

Nota

L'impostazione della velocità effettiva a livello di database è consigliata solo per lo sviluppo/test o quando il carico di lavoro in tutti i contenitori nel database con velocità effettiva condivisa è uniforme. Per ottenere prestazioni ottimali per carichi di lavoro di produzione di grandi dimensioni, è consigliabile impostare velocità effettiva dedicata (scalabilità automatica o manuale) a livello di contenitore e non a livello di database.

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

  1. Accedere al portale di Azure o ad 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.

    Screenshot delle impostazioni per abilitare la scalabilità automatica in un contenitore esistente.

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. Per altre informazioni, vedere Domande frequenti sulla velocità effettiva con provisioning con scalabilità automatica.

SDKs

Usare gli SDK seguenti per gestire le risorse di scalabilità automatica:

Creare un database con scalabilità condivisa

Nota

L'impostazione della velocità effettiva a livello di database è consigliata solo per lo sviluppo/test o quando il carico di lavoro in tutti i contenitori nel database con velocità effettiva condivisa è uniforme. Per ottenere prestazioni ottimali per carichi di lavoro di produzione di grandi dimensioni, è consigliabile impostare velocità effettiva dedicata (scalabilità automatica o manuale) a livello di contenitore e non a livello di database.

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 velocità effettiva di 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.

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. Per altre informazioni, vedere Domande frequenti sulla velocità effettiva con provisioning con scalabilità automatica.

// 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 Resource Manager

I modelli di Azure Resource Manager possono essere utilizzati per effettuare il provisioning del throughput a scalabilità automatica su una nuova risorsa a livello di database o a livello di contenitore per tutte le API di Azure Cosmos DB. Per esempi, vedere Modelli di Azure Resource Manager per Azure Cosmos DB.

Per progetto, i modelli di Azure Resource Manager non possono essere usati per eseguire la migrazione tra throughput provisionato e throughput autoscalato 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 di scalabilità automatica in un nuovo database o in una risorsa a livello di contenitore per tutte le API di Azure Cosmos DB o per abilitare la scalabilità automatica in una risorsa esistente.

Azure PowerShell

Azure PowerShell può essere usato per effettuare il provisioning della velocità effettiva di scalabilità automatica in un nuovo database o in una risorsa a livello di contenitore per tutte le API di Azure Cosmos DB o per abilitare la scalabilità automatica in una risorsa esistente.

Passaggi successivi