Delen via


Aanbevolen procedures voor Python SDK in Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Deze handleiding bevat aanbevolen procedures voor oplossingen die zijn gebouwd met behulp van de nieuwste versie van de Python SDK voor Azure Cosmos DB voor NoSQL. De aanbevolen procedures die hier worden beschreven, helpen latentie te verbeteren, de beschikbaarheid te verbeteren en de algehele prestaties voor uw oplossingen te verbeteren.

Accountconfiguratie

SDK-gebruik

  • Gebruik altijd de nieuwste versie van de Azure Cosmos DB SDK die beschikbaar is voor optimale prestaties.
  • Gebruik één exemplaar van CosmosClient de levensduur van uw toepassing voor betere prestaties.
  • Stel de preferred_locations configuratie in op de cosmos-client. Tijdens failovers worden schrijfbewerkingen verzonden naar de huidige schrijfregio en worden alle leesbewerkingen verzonden naar de eerste regio binnen de lijst met locaties van uw voorkeur. Zie problemen met beschikbaarheid oplossen voor meer informatie over regionale failovermechanica.
  • Een tijdelijke fout is een fout met een onderliggende oorzaak die zich snel oplost. Toepassingen die verbinding maken met uw database, moeten zo worden gebouwd dat ze deze tijdelijke fouten verwachten. Als u ze wilt afhandelen, implementeert u logica voor opnieuw proberen in uw code in plaats van ze als toepassingsfouten weer te geven aan gebruikers. De SDK heeft ingebouwde logica voor het afhandelen van deze tijdelijke fouten bij opnieuw te proberen aanvragen, zoals lees- of querybewerkingen. De SDK kan schrijfbewerkingen niet opnieuw proberen voor tijdelijke fouten, omdat schrijfbewerkingen niet idempotent zijn. Met de SDK kunnen gebruikers logica voor opnieuw proberen configureren voor beperkingen. Voor meer informatie over welke fouten u hier opnieuw kunt proberen.
  • Gebruik SDK-logboekregistratie om diagnostische gegevens vast te leggen en latentieproblemen op te lossen.

Gegevensontwerp

  • De aanvraagkosten van een opgegeven bewerking komen rechtstreeks overeen met de grootte van het document. Het is raadzaam om de grootte van uw documenten te verkleinen als bewerkingen voor grote documenten meer kosten dan bewerkingen op kleinere documenten.
  • Sommige tekens zijn beperkt en kunnen niet worden gebruikt in sommige id's: '/', '\', '?', '#'. De algemene aanbeveling is om geen speciale tekens te gebruiken in id's zoals databasenaam, verzamelingsnaam, item-id of partitiesleutel om onverwacht gedrag te voorkomen.
  • Met het indexeringsbeleid van Azure Cosmos DB kunt u ook opgeven welke documentpaden moeten worden opgenomen of uitgesloten van indexering met behulp van indexeringspaden. Zorg ervoor dat u ongebruikte paden uitsluit van indexering voor snellere schrijfbewerkingen. Zie indexen maken met behulp van het SDK-voorbeeld voor meer informatie.

Hostkenmerken

  • Mogelijk ondervindt u problemen met connectiviteit/beschikbaarheid vanwege een gebrek aan resources op uw clientcomputer. Bewaak uw CPU-gebruik op knooppunten met de Azure Cosmos DB-client en schaal omhoog/uit als het gebruik hoog is.
  • Als u een virtuele machine gebruikt om uw toepassing uit te voeren, schakelt u Versneld netwerken op uw VIRTUELE machine in om te helpen bij knelpunten vanwege hoog verkeer en om latentie of CPU-jitter te verminderen. U kunt ook overwegen een hogere virtuele machine te gebruiken waarbij het maximale CPU-gebruik lager is dan 70%.
  • Standaard worden queryresultaten geretourneerd in segmenten van 100 items of 4 MB, afhankelijk van welke limiet het eerst wordt bereikt. Als een query meer dan 100 items retourneert, vergroot u het paginaformaat om het aantal benodigde retouren te verminderen. Het geheugenverbruik neemt toe naarmate het paginaformaat toeneemt.

Volgende stappen

Zie prestatietips voor Azure Cosmos DB Python SDK voor meer informatie over prestatietips voor Python SDK.

Zie Partitioneren en schalen in Azure Cosmos DB voor meer informatie over het ontwerpen van uw toepassing voor schaalaanpassing en hoge prestaties.

Wilt u capaciteitsplanning uitvoeren voor een migratie naar Azure Cosmos DB? U kunt informatie over uw bestaande databasecluster gebruiken voor capaciteitsplanning.