Condividi tramite


Procedure consigliate per Python SDK in Azure Cosmos DB per 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 qui consentono di migliorare la latenza, migliorare la disponibilità e migliorare le prestazioni complessive per le soluzioni.

Configurazione dell'account

Parametri di configurazione dell'account

Parametro Predefinito o vincolo Quando utilizzare
Coubicazione dell'area Uguale all'area dell'app Ridurre la latenza
Replica in più aree Disattivato per impostazione predefinita Abilitare 2+ regioni per la disponibilità
Failover gestito dal servizio Opzionale Abilitare per i carichi di lavoro di produzione
from azure.cosmos import CosmosClient
client = CosmosClient(url, credential)
print(client.client_connection._global_endpoint_manager.write_endpoint)
# Expected: write endpoint resolves to configured write region

Per altre informazioni su come aggiungere più aree usando Python SDK, vedere l'esercitazione sulla distribuzione globale.

Uso dell'SDK

Parametri di utilizzo dell'SDK

Parametro Vincolo o predefinito Quando utilizzare
Versione dell'SDK Ultima versione disponibile Sempre per ottenere prestazioni ottimali
Istanza di CosmosClient Uno per app Riutilizzare per tutta la durata dell'app
ubicazioni_preferite None Ottimizzare le letture e il failover
client = CosmosClient(
    url,
    credential,
    preferred_locations=["East US", "West US"]
)
print(client.client_connection._preferred_locations)
# Expected: ['East US', 'West US']

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 informazioni dettagliate sugli errori da riprovare, vedere indicazioni sulle applicazioni resilienti.

Usare la registrazione dell'SDK per acquisire informazioni di diagnostica e risolvere i problemi di latenza.

Progettazione dei dati

Parametri di progettazione dei dati

Parametro Predefinito o vincolo Quando utilizzare
Dimensioni del documento N/A Mantenere piccole dimensioni per ridurre i costi delle UR
Caratteri di identificazione Nessun carattere speciale Evitare comportamenti imprevisti
Percorsi di indicizzazione Tutti i percorsi indicizzati Escludere percorsi inutilizzati per scritture più veloci
container_properties = {
    "id": "items",
    "indexingPolicy": {
        "excludedPaths": [{"path": "/*"}]
    }
}
print(container_properties["indexingPolicy"])
# Expected: excludedPaths configured

Per altre informazioni, vedere Creazione di indici con l'esempio SDK.

Caratteristiche dell'host

Parametri delle caratteristiche dell'host

Parametro Predefinito o vincolo Quando utilizzare
utilizzo della CPU <70% consigliato Aumentare o ridurre le risorse se la domanda è elevata
Rete accelerata Disabled Abilitare sulle macchine virtuali per un traffico elevato
Dimensione della pagina di query 100 elementi / 4 MB Aumentare per ridurre i round trip
items = container.query_items(
    query="SELECT * FROM c",
    max_item_count=500
)
print("Page size set to 500")
# Expected: fewer round trips

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