Kérelemegységek az Azure Cosmos DB-ben

A KÖVETKEZŐKRE VONATKOZIK: SQL API Cassandra API Gremlin API Table API A MongoDB-hez készült Azure Cosmos DB API

Az Azure Cosmos DB számos API-t támogat, ilyen például az SQL, a MongoDB, a Cassandra, a Gremlin és a Table. Minden API saját adatbázis-műveletekkel rendelkezik. Ezek a műveletek az egyszerű pontok olvasásától és írásától az összetett lekérdezésekig terjednek. Minden adatbázis-művelet a művelet összetettsége alapján használja fel a rendszererőforrásokat.

Az összes adatbázis-művelet költségét az Azure Cosmos DB normalizálja, és ezek kérelemegységben (röviden RU) vannak kifejezve. A kérelemegység a teljesítmény pénzneme, amely absztrakciója a rendszer erőforrásainak, például a CPU-nak, az IOPS-nak és a memóriának, amelyek az Azure Cosmos DB által támogatott adatbázis-műveletek végrehajtásához szükségesek.

Az 1 KB-os elem pontolvasásának költsége (egyetlen elem beolvasása az azonosító és a partíciókulcs értéke alapján) 1 kérelemegység (vagy 1 RU). Ugyanígy az összes többi adatbázis-művelethez is rendelve van egy költség kérelemegységben megadva. A rendszer mindig kérelemegységben számítja a költségeket attól függetlenül, hogy melyik API segítségével kommunikál az Azure Cosmos-tárolóval. Függetlenül attól, hogy az adatbázis-művelet írási, pontolvasási vagy lekérdezési művelet-e, a költségeket mindig kérelemegységekben méri a rendszer.

A következő képen a kérelemegységek áttekintése látható:

Database operations consume Request Units

A kapacitás kezelése és tervezése érdekében az Azure Cosmos DB biztosítja, hogy egy adott adatbázis-művelethez a kérelemegységek száma egy adott adatkészletre determinisztikus legyen. Megvizsgálhatja a válasz fejlécét bármely adatbázis-művelet által felhasznált kérelemegységek számának nyomon követéséhez. Ha tisztában van a kérelemegységek díjait és az alkalmazás átviteli sebességére vonatkozó követelményeket befolyásoló tényezőkkel, költséghatékonyan futtathatja az alkalmazást.

A használt Azure Cosmos-fiók típusa határozza meg a felhasznált kérelemegységek díjának felszámításának módját. Háromféleképpen hozhat létre fiókot:

  1. Kiosztott átviteli mód: Ebben a módban másodpercenként 100 kérelemegység-növekményben kioszthatja az alkalmazás kérelemegységeinek számát. Az alkalmazáshoz kiosztott átviteli sebesség skálázásához bármikor növelheti vagy csökkentheti a kérelemegységek számát 100 kérelemegység-növekményes vagy csökkenő értékben. A módosításokat elvégezheti programozással vagy az Azure Portal használatával is. A kiosztott kérelemegységek száma óránként történik. További tudnivalókért tekintse meg a kiosztott átviteli sebességről szóló cikket.

    Kétféle részletességgel oszthatja ki az átviteli sebességet:

  2. Kiszolgáló nélküli mód: Ebben a módban nem kell átviteli sebességet kiosztani, amikor erőforrásokat hoz létre az Azure Cosmos-fiókban. A számlázási időszak végén kiszámlázzuk az adatbázis-műveletek által felhasznált kérelemegységek számát. További információt a kiszolgáló nélküli átviteli sebességről szóló cikkben talál.

  3. Automatikus skálázási mód: Ebben a módban automatikusan és azonnal skálázhatja az adatbázis vagy tároló átviteli sebességét (RU/s) annak használata alapján anélkül, hogy ez hatással lenne a számítási feladat rendelkezésre állására, késésére, átviteli sebességére vagy teljesítményére. Ez a mód kiválóan alkalmas olyan kritikus fontosságú számítási feladatokhoz, amelyek változó vagy kiszámíthatatlan forgalmi mintákkal rendelkeznek, és nagy teljesítményű és nagy léptékű SLA-kat igényelnek. További információt az automatikus skálázás átviteli sebességét ismertető cikkben talál.

A kérelemegységekkel kapcsolatos megfontolások

A számítási feladat által felhasznált kérelemegységek számának becslése során vegye figyelembe a következő tényezőket:

  • Elem mérete: Az elem méretének növekedésével az elem olvasásához vagy írásához szükséges kérelemegységek száma is növekszik.

  • Elem indexelése: Alapértelmezés szerint minden elem automatikusan indexelve lesz. Kevesebb kérelemegység lesz felhasználva, ha egy tárolóban egyes elemeket nem indexel.

  • Elemtulajdonságok száma: Feltéve, hogy az alapértelmezett indexelés az összes tulajdonságra van állítva, az elem írásához szükséges kérelemegységek száma az elemtulajdonságok számának növekedésével együtt növekszik.

  • Indexelt tulajdonságok: Az indexelési szabályzat az egyes tárolókra azt határozza meg, hogy alapértelmezés szerint mely tulajdonságok lesznek indexelve. Ha csökkenteni szeretné az írási műveletek fogyasztását, korlátozza az indexelt tulajdonságok számát.

  • Adatkonzisztencia: Az erős és korlátozott frissességi konzisztenciaszintek körülbelül kétszer több kérelemegységet fogyasztanak, miközben olvasási műveleteket hajtanak végre a többi alacsonyabb konzisztenciaszinthez képest.

  • Olvasások típusa: A pontolvasások jelentősen kevesebb kérelemegységet igényelnek, mint a lekérdezések.

  • Lekérdezési mintázatok: A lekérdezés összetettsége hatással van arra, hogy egy művelethez hány kérelemegység szükséges. A lekérdezési műveletek költségét befolyásoló tényezők többek között:

    • A lekérdezési eredmények száma
    • A predikátumok száma
    • A predikátumok természete
    • Felhasználó által definiált függvények száma
    • A forrásadat mérete
    • Az eredményhalmaz mérete
    • Leképezések

    Ugyanaz a lekérdezés ugyanazon adatokon mindig ugyanannyi kérelemegységbe kerül ismétlődő végrehajtás esetén.

  • Szkripthasználat: A lekérdezésekhez hasonlóan a tárolt eljárások és eseményindítók is a végrehajtott műveletek összetettsége alapján használják a kérelemegységeket. Az alkalmazás fejlesztése során vizsgálja meg a kérelemdíj fejlécet, hogy pontosabb képet kapjon arról, hány kérelemegységet fogyasztanak az egyes műveletek.

Kérelemegységek és több régió

Ha "R" kérelemegységeket épít ki egy Cosmos-tárolón (vagy adatbázison), a Cosmos DB biztosítja, hogy az "R" kérelemegységek elérhetők legyenek a Cosmos-fiókhoz társított minden régióban. A kérelemegységek nem rendelhetők hozzá szelektíven egy adott régióhoz. A Cosmos-tárolón (vagy -adatbázisban) kiépített kérelemegységek a Cosmos-fiókhoz társított összes régióban ki vannak építve.

Feltéve, hogy a Cosmos-tároló " R" kérelemegységekkel van konfigurálva, és a Cosmos-fiókhoz "N" régió van társítva, a tárolón globálisan elérhető összes kérelemegység = R x N.

A konzisztenciamodell megválasztása az átviteli sebességet is befolyásolja. Az erősebb konzisztenciaszintekhez (korlátozott frissesség vagy erős konzisztencia) képest a nyugodtabb konzisztenciaszintekhez (munkamenethez, konzisztens előtaghoz és végleges konzisztenciához) képest körülbelül 2-szeres olvasási átviteli sebességet kaphat.

Következő lépések