Condividi tramite


Procedure consigliate per Python SDK in Azure Cosmos DB per NoSQL

SI APPLICA A: NoSQL

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 in questo articolo consentono di migliorare la latenza, la disponibilità e le prestazioni complessive per le soluzioni.

Configurazione dell'account

  • Assicurarsi di eseguire l'applicazione nella stessa area di Azure dell'account Azure Cosmos DB, laddove possibile, per ridurre la latenza. 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 riscontra perdite di disponibilità in scrittura per tutta la durata dell'interruzione dell'area di scrittura, perché non è possibile eseguire il failover manuale a causa della mancanza di connettività nell'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 CosmosClient per la durata dell'applicazione per ottenere prestazioni migliori.
  • Impostare la preferred_locations configurazione nel 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 l'articolo sulla 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 include una logica predefinita per gestire questi errori temporanei nelle richieste ripetibili, come le operazioni di lettura o query. L'SDK non effettua nuovi tentativi di scrittura per gli 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 informazioni dettagliate sugli errori per cui ripetere i tentativi, 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.
  • L'uso dei caratteri seguenti è limitato e non è consentito 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. Per velocizzare le operazioni di scrittura, assicurarsi di escludere i percorsi inutilizzati dall'indicizzazione. Per altre informazioni, vedere l'articolo sulla creazione di indici con l'esempio dell'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 o il numero di istanze 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 per primo. 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 le dimensioni della pagina aumentano.

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