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.
Questa guida include le procedure consigliate per le soluzioni create usando la versione più recente di Python SDK per Azure Cosmos DB per NoSQL. Le procedure consigliate incluse qui consentono di migliorare la latenza, migliorare la disponibilità e migliorare le prestazioni complessive per le soluzioni.
Configurazione dell'account
- Per ridurre la latenza, assicurarsi di eseguire l'applicazione nella stessa area di Azure dell'account Azure Cosmos DB, laddove possibile. Abilitare la replica in più aree negli account per ottenere la migliore disponibilità. Per i carichi di lavoro di produzione abilitare il failover gestito dal servizio. In assenza di questa configurazione, l'account perde la disponibilità di scrittura per tutta la durata dell'interruzione dell'area di scrittura, perché il failover manuale non riesce a causa della mancanza di connettività dell'area. Per altre informazioni su come aggiungere più aree usando Python SDK, vedere l'esercitazione sulla distribuzione globale.
Uso dell'SDK
- Usare sempre la versione più recente di Azure Cosmos DB SDK disponibile per ottenere prestazioni ottimali.
- Usare una singola istanza di
CosmosClientper la durata dell'applicazione per ottenere prestazioni migliori. - Impostare la
preferred_locationsconfigurazione sul client cosmos. Durante i failover, le operazioni di scrittura vengono inviate all'area di scrittura corrente e tutte le letture vengono inviate alla prima area all'interno dell'elenco di località preferite. Per altre informazioni sui meccanismi di failover a livello di area, vedere Risoluzione dei problemi di disponibilità. - Un errore temporaneo è un errore che ha una causa sottostante che si risolve presto da sola. Le applicazioni che si connettono al database devono essere sviluppate in modo da prevedere tali errori temporanei. Per gestirli, implementare la logica di ripetizione dei tentativi nel codice invece di mostrarli agli utenti come errori dell'applicazione. L'SDK ha una logica predefinita per gestire questi errori temporanei nelle richieste ripetibili, come le operazioni di lettura o query. L'SDK non può riprovare a scrivere per errori temporanei perché le scritture non sono idempotenti. L'SDK consente agli utenti di configurare la logica di ripetizione dei tentativi per le limitazioni. Per dettagli sugli errori da tentare nuovamente, vedere qui.
- Usare la registrazione dell'SDK per acquisire informazioni di diagnostica e risolvere i problemi di latenza.
Progettazione dei dati
- L'addebito per le richieste per un'operazione specifica è correlato direttamente alle dimensioni del documento. È consigliabile ridurre le dimensioni dei documenti, in quanto le operazioni su documenti di grandi dimensioni sono più costose rispetto alle operazioni su documenti di piccole dimensioni.
- Alcuni caratteri sono limitati e non possono essere usati in alcuni identificatori: '/', '\', '?', '#'. È consigliabile non usare caratteri speciali negli identificatori come nome del database, nome della raccolta, ID elemento o chiave di partizione per evitare comportamenti imprevisti.
- I criteri di indicizzazione di Azure Cosmos DB consentono anche di specificare i percorsi dei documenti da includere o escludere dall'indicizzazione usando i percorsi di indicizzazione. Assicurarsi di escludere i percorsi inutilizzati dall'indicizzazione per scritture più veloci. Per altre informazioni, vedere Creazione di indici con l'esempio SDK.
Caratteristiche dell'host
- È possibile che si verifichino problemi di connettività/disponibilità a causa della mancanza di risorse nel computer client. Monitorare l'utilizzo della CPU nei nodi che eseguono il client Azure Cosmos DB e aumentare le prestazioni se l'utilizzo è elevato.
- Se si usa una macchina virtuale per eseguire l'applicazione, abilitare la rete accelerata nella macchina virtuale per evitare i colli di bottiglia dovuti a traffico elevato e ridurre la latenza o l'instabilità della CPU. È anche possibile valutare l'uso di una macchina virtuale di livello superiore in cui l'utilizzo massimo della CPU è inferiore al 70%.
- Per impostazione predefinita, i risultati delle query vengono restituiti in blocchi di 100 elementi o 4 MB, a seconda del limite che viene raggiunto prima. Se una query restituisce più di 100 elementi, aumentare le dimensioni della pagina per ridurre il numero di round trip necessari. L'utilizzo della memoria aumenta man mano che aumentano le dimensioni della pagina.
Passaggi successivi
Per altre informazioni sui suggerimenti sulle prestazioni per Python SDK, vedere Suggerimenti sulle prestazioni per Azure Cosmos DB Python SDK.
Per altre informazioni sulla progettazione dell'applicazione per scalabilità e prestazioni elevate, vedere l'articolo relativo a partizionamento e ridimensionamento in Azure Cosmos DB.
Si sta tentando di pianificare la capacità per una migrazione ad Azure Cosmos DB? È possibile usare le informazioni del cluster di database esistente per la pianificazione della capacità.
- Se si conoscono solo il numero di vCore e i server nel cluster di database esistente, leggere le informazioni sulla stima delle unità richieste con vCore o vCPU
- Se si conosce la frequenza delle richieste tipiche per il carico di lavoro corrente del database, leggere le informazioni sulla stima delle unità richieste con lo strumento di pianificazione della capacità di Azure Cosmos DB