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ó:
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:
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:
- Tárolók: További információ: Átviteli sebesség kiosztása egy Azure Cosmos-tárolón.
- Adatbázisok: További információ: Átviteli sebesség kiosztása Azure Cosmos-adatbázison.
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.
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
- További információ az átviteli sebesség Kiosztásáról az Azure Cosmos-tárolókon és -adatbázisokon.
- További információ a kiszolgáló nélküli Azure Cosmos DB-ről.
- További információ a logikai partíciókról.
- Megtudhatja, hogyan építhet ki átviteli sebességet egy Azure Cosmos-tárolón.
- Megtudhatja, hogyan építhet ki átviteli sebességet egy Azure Cosmos-adatbázisban.
- Megtudhatja, hogyan keresheti meg egy művelet kérelemegység-díját.
- Megtudhatja, hogyan optimalizálhatja a kiosztott átviteli sebesség költségeit az Azure Cosmos DB-ben.
- Megtudhatja, hogyan optimalizálhatja az olvasási és írási költségeket az Azure Cosmos DB-ben.
- Megtudhatja, hogyan optimalizálhatja a lekérdezési költségeket az Azure Cosmos DB-ben.
- Ismerje meg, hogyan használhat metrikákat az átviteli sebesség monitorozásához.
- Kapacitástervezést szeretne végezni az Azure Cosmos DB-be történő migráláshoz?
- Ha csak a meglévő adatbázisfürt virtuális magjainak és kiszolgálóinak számát ismeri, olvassa el a kérelemegységek becslését virtuális magok vagy vCPU-k használatával
- Ha ismeri az aktuális adatbázis számítási feladatának tipikus kérési arányait, olvassa el a kérelemegységek becslését az Azure Cosmos DB Capacity Planner használatával