Megosztás:


Ajánlott eljárások a Python SDK-hoz az Azure Cosmos DB for NoSQL-ben

Ez az útmutató az Azure Cosmos DB for NoSQL-hez készült Python SDK legújabb verziójával készült megoldások ajánlott eljárásait tartalmazza. Az itt található ajánlott eljárások segítenek a késés javításában, a rendelkezésre állás javításában és a megoldások általános teljesítményének növelésében.

Fiókkonfiguráció

  • A késés csökkentése érdekében mindenképpen ugyanabban az Azure-régióban futtassa az alkalmazást, mint az Azure Cosmos DB-fiókját. A lehető legjobb rendelkezésre állás érdekében engedélyezze a replikációt a fiókok 2+ régiójában. Üzemi terhelések esetén engedélyezze a szolgáltatás által felügyelt feladatátvételt. Ennek a konfigurációnak a hiányában a fiók az írási régió leállásának teljes időtartama alatt az írási rendelkezésre állás elvesztését tapasztalja, mivel a manuális feladatátvétel nem sikerül a régiókapcsolat hiánya miatt. További információ arról, hogyan adhat hozzá több régiót a Python SDK használatával, tekintse meg a globális terjesztési oktatóanyagot.

SDK-használat

  • Mindig az optimális teljesítmény érdekében elérhető Azure Cosmos DB SDK legújabb verzióját használja.
  • Használjon egyetlen példányt CosmosClient az alkalmazás teljes élettartama alatt a jobb teljesítmény érdekében.
  • Állítsa be a konfigurációt preferred_locations a Cosmos-ügyfélen. A feladatátvételek során az írási műveleteket a rendszer az aktuális írási régióba küldi, és az összes olvasást az elsődleges helyek listájában lévő első régióba küldi. A regionális feladatátvételi mechanikával kapcsolatos további információkért lásd a rendelkezésre állás hibaelhárítását.
  • Az átmeneti hiba olyan hiba, amelynek kiváltó oka hamarosan megoldódik. Az adatbázishoz csatlakozó alkalmazásokat úgy kell létrehozni, hogy ezekre az átmeneti hibákra számítson. A kezelésükhöz valósítson meg újrapróbálás logikát a kódban, ahelyett, hogy alkalmazáshibákként jeleníti meg őket a felhasználóknak. Az SDK beépített logikával rendelkezik az újrapróbálkozási kérések, például olvasási vagy lekérdezési műveletek átmeneti hibáinak kezelésére. Az SDK nem tudja újrapróbálkozni az írásokat átmeneti hibák esetén, mivel az írások nem idempotensek. Az SDK lehetővé teszi, hogy a felhasználók visszakapcsolási logikát konfiguráljanak a terhelési korlátozásokhoz. Az újrapróbálkozandó hibákról részleteket itt talál.
  • Az SDK-naplózással rögzítheti a diagnosztikai információkat , és elháríthatja a késési problémákat.

Adattervezés

  • Egy adott művelet kérelemdíja közvetlenül a dokumentum méretével függ össze. Javasoljuk, hogy csökkentse a dokumentumok méretét, mivel a nagyméretű dokumentumokon végzett műveletek többe kerülnek, mint a kisebb dokumentumokon végzett műveletek.
  • Egyes karakterek korlátozottak, és egyes azonosítókban nem használhatók: '/', '\', '?', '#'. Az általános javaslat az, hogy a váratlan viselkedés elkerülése érdekében ne használjon speciális karaktereket az azonosítókban, például az adatbázis neve, a gyűjtemény neve, az elemazonosító vagy a partíciókulcs.
  • Az Azure Cosmos DB indexelési szabályzata azt is lehetővé teszi, hogy indexelési útvonalak használatával megadhatja, hogy mely dokumentum elérési útjait vegye fel vagy zárja ki az indexelésből. A gyorsabb írás érdekében zárja ki a nem használt útvonalakat az indexelésből. További információ: Indexek létrehozása az SDK-mintával.

Gazdagép jellemzői

  • Kapcsolódási/rendelkezésre állási problémákat tapasztalhat az ügyfélszámítógép erőforrásainak hiánya miatt. Ellenőrizze a CPU-kihasználtságot az Azure Cosmos DB-ügyfelet futtató csomópontokon, és növelje a kapacitást vagy bővítse a szervereket, ha a használat magas.
  • Ha virtuális gépet használ az alkalmazás futtatásához, engedélyezze a gyorsított hálózatkezelést a virtuális gépen, hogy segítsen a nagy forgalom miatti szűk keresztmetszetek elhárításában, és csökkentse a késést vagy a cpu-jittert. Érdemes lehet megfontolni egy magasabb szintű virtuális gép használatát is, ahol a maximális processzorhasználat 70% alatt van.
  • Alapértelmezés szerint a lekérdezési eredmények 100 elemből vagy 4 MB-ból álló adattömbökben jelennek meg, attól függően, hogy melyik korlátot éri el először a rendszer. Ha egy lekérdezés több mint 100 elemet ad vissza, növelje az oldalméretet a szükséges ciklikus utak számának csökkentése érdekében. A memóriahasználat az oldalméret növekedésével nő.

Következő lépések

A Python SDK teljesítménytippjeiről további információt az Azure Cosmos DB Python SDK teljesítménytippjeiben talál.

Ha többet szeretne megtudni az alkalmazás méretezéshez és nagy teljesítményhez való tervezéséről, tekintse meg a particionálást és a skálázást az Azure Cosmos DB-ben.

Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz? A kapacitástervezéshez használhatja a meglévő adatbázisfürt adatait.