Dela via


Metodtips för Python SDK i Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL

Den här guiden innehåller metodtips för lösningar som skapats med den senaste versionen av Python SDK för Azure Cosmos DB för NoSQL. De bästa metoderna som ingår här hjälper till att förbättra svarstiden, förbättra tillgängligheten och öka den övergripande prestandan för dina lösningar.

Kontokonfiguration

  • Se till att köra ditt program i samma Azure-region som ditt Azure Cosmos DB-konto när det är möjligt för att minska svarstiden. Aktivera replikering i över 2 regioner i dina konton för bästa tillgänglighet. Aktivera tjänsthanterad redundans för produktionsarbetsbelastningar. I avsaknad av den här konfigurationen upplever kontot förlust av skrivtillgänglighet under hela avbrottstiden för skrivregionen, eftersom manuell redundans inte kan lyckas på grund av bristande regionanslutning. Mer information om hur du lägger till flera regioner med hjälp av Python SDK finns i självstudien om global distribution.

SDK-användning

  • Använd alltid den senaste versionen av Azure Cosmos DB SDK som är tillgänglig för optimala prestanda.
  • Använd en enda instans av CosmosClient under programmets livslängd för bättre prestanda.
  • Ange konfigurationen preferred_locations på Cosmos-klienten. Under redundansväxlingar skickas skrivåtgärder till den aktuella skrivregionen och alla läsningar skickas till den första regionen i listan över önskade platser. Mer information om regional redundansmekanik finns i tillgänglighetsfelsökning.
  • Ett tillfälligt fel är ett fel som har en underliggande orsak som snart löser sig själv. Program som ansluts till databasen bör anpassas för att klara av dessa tillfälliga fel. För att hantera dem implementerar du logik för återförsök i koden i stället för att visa dem för användare som programfel. SDK:n har inbyggd logik för att hantera dessa tillfälliga fel vid återförsöksbara begäranden som läs- eller frågeåtgärder. SDK:t kan inte försöka igen vid skrivningar för tillfälliga fel eftersom skrivningar inte är idempotenter. SDK tillåter användare att konfigurera omförsökslogik för begränsningar. Mer information om vilka fel som ska försöka igen finns här.
  • Använd SDK-loggning för att samla in diagnostikinformation och felsöka problem med svarstid.

Datadesign

  • Begärandeavgiften för en angiven åtgärd korrelerar direkt med dokumentets storlek. Vi rekommenderar att du minskar storleken på dina dokument eftersom åtgärder på stora dokument kostar mer än åtgärder på mindre dokument.
  • Vissa tecken är begränsade och kan inte användas i vissa identifierare: '/', '\', '?', '#'. Den allmänna rekommendationen är att inte använda några specialtecken i identifierare som databasnamn, samlingsnamn, objekt-ID eller partitionsnyckel för att undvika oväntade beteenden.
  • Med Azure Cosmos DB-indexeringsprincipen kan du också ange vilka dokumentsökvägar som ska inkluderas eller undantas från indexering med hjälp av indexeringssökvägar. Se till att du undantar oanvända sökvägar från indexering för snabbare skrivningar. Mer information finns i skapa index med SDK-exemplet.

Värdens egenskaper

  • Du kan stöta på problem med anslutning/tillgänglighet på grund av brist på resurser på klientdatorn. Övervaka cpu-användningen på noder som kör Azure Cosmos DB-klienten och skala upp/ut om användningen är hög.
  • Om du använder en virtuell dator för att köra programmet aktiverar du Accelererat nätverk på den virtuella datorn för att hjälpa till med flaskhalsar på grund av hög trafik och minska svarstiden eller CPU-jitter. Du kanske också vill överväga att använda en virtuell dator med högre slutpunkt där den maximala CPU-användningen är under 70 %.
  • Som standard returneras frågeresultat i segment på 100 objekt eller 4 MB, beroende på vilken gräns som uppnås först. Om en fråga returnerar fler än 100 objekt ökar du sidstorleken för att minska antalet tur- och returresor som krävs. Minnesförbrukningen ökar när sidstorleken ökar.

Nästa steg

Mer information om prestandatips för Python SDK finns i Prestandatips för Azure Cosmos DB Python SDK.

Mer information om hur du utformar ditt program för skalning och höga prestanda finns i Partitionering och skalning i Azure Cosmos DB.

Försöker du planera kapacitet för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.