Megosztás a következőn keresztül:


Az Azure Cosmos DB kérelemegységei

A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal

Az Azure Cosmos DB számos API-t támogat, például sql, MongoDB, Cassandra, Gremlin és Table. Minden API saját adatbázisműveletekkel rendelkezik. Ezek a műveletek az egyszerű pontolvasástól és írástó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 Azure Cosmos DB normalizálja az összes adatbázis-művelet költségét a kérelemegységek (röviden kérelemegységek) használatával, és az átviteli sebesség alapján méri a költségeket (kérelemegységek másodpercenként, RU/s).

A kérelemegység olyan teljesítmény-pénznem, amely az Azure Cosmos DB által támogatott adatbázis-műveletek végrehajtásához szükséges rendszererőforrásokat, például a CPU-t, az IOPS-t és a memóriát absztrakciós pénznemként használja. Függetlenül attól, hogy az adatbázis-művelet írás, pontolvasás vagy lekérdezés, a műveletek mindig kérelemegységekben vannak mérve. Egy 1 KB-os elem pontolvasása (egy elem beolvasása az azonosító és a partíciókulcs értéke alapján) például egy kérelemegység (vagy egy RU), függetlenül attól, hogy melyik API-t használja az Azure Cosmos DB-tárolóval való interakcióhoz. Az átviteli sebesség költségeit az Azure Cosmos DB kapacitáskalkulátorával modellezheti.

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

Az adatbázis-műveletek kérelemegységeket használnak fel

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. A válaszfejlécet megvizsgálva nyomon követheti az adatbázis-műveletek által felhasznált kérelemegységek számát. Ha tisztában van azzal, hogy milyen tényezők befolyásolják az RU-k díjait és hogy az alkalmazásának milyen átviteli sebességre van szüksége, az alkalmazást költséghatékonyan futtathatja.

A használt Azure Cosmos DB-fiók típusa határozza meg a felhasznált RU-k díjazásának módját. Három mód van, amelyekben létrehozhat egy fiókot:

  1. Kiosztott átviteli mód: Ebben a módban az alkalmazás kérelemegységeinek számát másodpercenként 100 kérelemegység/másodperces növekményben rendeli hozzá. Ha skálázni szeretné az alkalmazáshoz kiosztott átviteli sebességet, bármikor növelheti vagy csökkentheti az RU-k számát 100 RU értékű lépésekben. A módosításokat elvégezheti programozással vagy az Azure Portal használatával is. A számlázás óránként történik az Ön által kiosztott RU-k másodpercenkénti számának megfelelően. További információkért tekintse meg a Kiosztott átviteli sebességről szóló bejegyzést.

    Kétféle finomsággal oszthatja ki az átviteli sebességet:

  2. Kiszolgáló nélküli mód: Ebben a módban nem kell átviteli sebességet hozzárendelnie az Erőforrások létrehozásakor az Azure Cosmos DB-fiókban. A számlázási időszak végén az adatbázis-műveletek által felhasznált kérelemegységek mennyisége után kell fizetni. További információért tekintse meg a Kiszolgáló nélküli átviteli sebességről szóló bejegyzést.

  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) a használat alapján. Ez a skálázási művelet nem befolyásolja a számítási feladat rendelkezésre állását, késését, átviteli sebességét vagy teljesítményét. Ez a mód jól használható 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 skálázott SLA-kat igényelnek. További információkért tekintse meg az Automatikus méretezési átviteli sebességről szóló bejegyzést.

A kérelemegységekkel kapcsolatos megfontolások

Miközben megbecsüli a számítási feladat által felhasznált kérelemegységek számát, vegye figyelembe a következő tényezőket:

  • Elemméret: Az elem méretének növekedésével az elem olvasásához vagy írásához felhasznált kérelemegységek száma is nő.

  • Elemindexelés: Alapértelmezés szerint minden elem automatikusan indexel. 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ágon történik, az elem írásához felhasznált kérelemegységek száma növekszik az elemtulajdonságok számának növekedésével.

  • Indexelt tulajdonságok: Az egyes tárolók indexelési szabályzata határozza meg, hogy mely tulajdonságok legyenek alapértelmezés szerint 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 elavultsági konzisztenciaszintek körülbelül kétszer több kérelemegységet használnak fel, miközben olvasási műveleteket hajtanak végre a többi nyugodt konzisztenciaszinthez képest.

  • Olvasási típus: A pontolvasások kevesebb kérelemegységbe kerülnek, mint a lekérdezések.

  • Lekérdezési minták: A lekérdezések összetettsége befolyásolja, hogy egy művelet hány kérelemegységet használ fel. 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

    Ugyanazon adatok ugyanazon lekérdezése 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 az eseményindítók is a végrehajtott műveletek összetettsége alapján használják fel 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 rendel egy Azure Cosmos DB-tárolóhoz (vagy adatbázishoz), az Azure Cosmos DB biztosítja, hogy az "R" kérelemegységek elérhetők legyenek az Azure Cosmos DB-fiókhoz társított minden régióban. A kérelemegységeket nem lehet szelektíven hozzárendelni egy adott régióhoz. Az Azure Cosmos DB-tárolón (vagy adatbázisban) kiépített kérelemegységek az Azure Cosmos DB-fiókhoz társított összes régióban ki vannak építve.

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

A konzisztenciamodell kiválasztása az átviteli sebességet is befolyásolja. A nyugodtabb konzisztenciaszintek (munkamenet, konzisztens előtag és végleges konzisztencia) körülbelül 2-szeres olvasási átviteli sebességét érheti el az erősebb konzisztenciaszintekhez képest (korlátozott elavultság vagy erős konzisztencia).

Következő lépések