Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'esecuzione basata su priorità consente agli utenti di specificare la priorità delle richieste inviate ad Azure Cosmos DB. Nei casi in cui il numero di richieste superi la capacità che può essere elaborata all'interno delle unità di richiesta al secondo (RU/s) configurate, Azure Cosmos DB limita le richieste a bassa priorità per assegnare la priorità all'esecuzione delle richieste con priorità elevata.
Questa funzionalità consente agli utenti di eseguire attività critiche ritardando le attività meno importanti quando il consumo totale di contenitori supera prima le UR/s configurate in scenari di carico elevato implementando misure di limitazione per le richieste con priorità bassa. Qualsiasi applicazione client che usa l'SDK riprova le richieste con priorità bassa in base ai criteri di ripetizione configurati.
Note
La funzionalità di esecuzione basata su priorità non garantisce sempre la limitazione delle richieste con priorità bassa a favore di quelle con priorità alta. Questo funziona su base ottimale e non esistono contratti di servizio collegati alle prestazioni della funzionalità.
Casi d'uso
È possibile usare l'esecuzione basata su priorità quando l'applicazione ha priorità diverse per i carichi di lavoro in esecuzione nello stesso contenitore. Ad esempio,
- Assegnazione delle priorità alle operazioni di lettura, scrittura o query.
- Assegnazione delle priorità alle azioni utente rispetto alle operazioni in background, ad esempio
- Stored procedure
- Inserimento/migrazione dei dati
Introduzione
Per iniziare a usare l'esecuzione basata su priorità, passare alla pagina Funzionalità nell'account Azure Cosmos DB. Selezionare e abilitare la funzionalità di esecuzione basata su priorità .
Requisiti dell'SDK
- .NET v3: v3.38.0 o versione successiva
- Java v4: v4.45.0 o versione successiva
- Spark 3.2: v4.19.0 o versione successiva
- JavaScript v4: v4.0.0 o versione successiva
- Python: v4.5.2b2 o versione successiva. Disponibile solo in versione di anteprima.
Esempi di codice
using Microsoft.Azure.Cosmos;
//update products catalog with low priority
RequestOptions catalogRequestOptions = new ItemRequestOptions{PriorityLevel = PriorityLevel.Low};
PartitionKey pk = new PartitionKey(“productId1”);
ItemResponse<Product> catalogResponse = await this.container.CreateItemAsync<Product>(product1, pk, requestOptions);
//Display product information to user with high priority
RequestOptions getProductRequestOptions = new ItemRequestOptions{PriorityLevel = PriorityLevel.High};
string id = “productId2”;
PartitionKey pk = new PartitionKey(id);
ItemResponse<Product> productResponse = await this.container.ReadItemAsync< Product>(id, pk, getProductRequestOptions);
Monitorare l'esecuzione basata su priorità
È possibile monitorare il comportamento delle richieste con priorità bassa e alta usando le metriche di Monitoraggio di Azure nel portale di Azure. Per altre informazioni sulle metriche, vedere Metriche di Monitoraggio di Azure.
Modificare il livello di priorità predefinito di un account Cosmos DB
Se l'esecuzione basata su priorità è abilitata e il livello di priorità non viene specificato per una richiesta dall'utente, tutte queste richieste vengono eseguite con priorità alta. È possibile modificare il livello di priorità predefinito delle richieste in un account Cosmos DB usando l'interfaccia della riga di comando di Azure.
Interfaccia della riga di comando di Azure
Installare la CLI di Azure versione 2.81.0 o successiva
# set subscription context
az account set -s $SubscriptionId
# Enable priority-based execution
az cosmosdb update `
-g <resource-group> `
-n <account-name> `
--enable-priority-based-execution true
# change default priority level
az cosmosdb update `
-g <resource-group> `
-n <account-name> `
--default-priority-level low
Azure PowerShell
# Install module Az.CosmosDB 1.19.0 or later
Install-Module -Name Az.CosmosDB -Force
# Login and Set Subscription
Connect-AzAccount
Set-AzContext -Subscription <subscription-id>
# Enable Priority Based Execution
Update-AzCosmosDBAccount `
-ResourceGroupName "<resource-group>" `
-Name "<account-name>" `
-EnablePriorityBasedExecution $true
# Set Default Priority Level
Update-AzCosmosDBAccount `
-ResourceGroupName "<resource-group>" `
-Name "<account-name>" `
-DefaultPriorityLevel "Low"
Priorità di Esplora dati
Quando l'esecuzione basata su priorità è abilitata per un account Cosmos DB, tutte le richieste in Esplora dati del portale di Azure vengono eseguite con priorità bassa. È possibile modificare questa impostazione modificando l'impostazione di priorità nel menu Impostazioni di Esplora dati.
Note
Questa configurazione lato client è specifica solo per la visualizzazione di Esplora dati dell'utente interessato e non influisce sul livello di priorità di Esplora dati di altri utenti o sul livello di priorità predefinito dell'account Cosmos DB.
Limitazioni
- L'esecuzione basata su priorità non è attualmente supportata per gli account di database serverless.
- Il comportamento della funzionalità di esecuzione basata su priorità non è deterministico per i contenitori di database con velocità effettiva condivisa.
- Per quanto riguarda i livelli di coerenza con obsolescenza forte e vincolata, la definizione delle priorità delle richieste di lettura potrebbe non funzionare in modo efficace, consentendo l'esecuzione di richieste di scrittura con priorità bassa a prescindere dal traffico di lettura con priorità elevata.
Passaggi successivi
- Vedere le domande frequenti sull'esecuzione basata su priorità
- Altre informazioni sulla capacità burst