Bevezetés a kiépített átviteli sebességbe az Azure Cosmos DB-ben

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Cassandra Gremlin Táblázat

Az Azure Cosmos DB lehetővé teszi a kiosztott átviteli sebesség beállítását az adatbázisokon és a tárolókon. A kiosztott átviteli sebességnek két típusa van: standard (manuális) vagy automatikus skálázás. Ez a cikk áttekintést nyújt a kiosztott átviteli sebesség működéséről.

Az Azure Cosmos DB-adatbázisok egy tárolókészlet felügyeleti egységei. Az adatbázisok sémafüggetlen tárolókból állnak. Az Azure Cosmos DB-tároló az átviteli sebesség és a tárolás méretezhetőségének egysége. A tárolók horizontálisan particionálva lesznek egy Azure-régióban lévő gépeken, és az Azure Cosmos DB-fiókhoz társított összes Azure-régióban elosztják.

Az Azure Cosmos DB-vel két részletességgel építheti ki az átviteli sebességet:

  • Azure Cosmos DB-tárolók
  • Azure Cosmos DB-adatbázisok

Átviteli sebesség beállítása tárolón

Az Azure Cosmos DB-tárolón kiosztott átviteli sebesség kizárólag az adott tárolóhoz van fenntartva. A tároló mindig megkapja a kiosztott átviteli sebességet. A tárolón kiosztott átviteli sebességet az SLA-k pénzügyileg is alátámasztják. A szabványos (manuális) átviteli sebesség tárolókon való konfigurálásáról az Azure Cosmos DB-tárolók átviteli sebességének kiosztása című témakörben olvashat. Az automatikus skálázási átviteli sebesség tárolón való konfigurálásáról az automatikus skálázási átviteli sebesség kiépítése című témakörben olvashat.

A tárolón a kiosztott átviteli sebesség beállítása a leggyakrabban használt beállítás. A tárolók átviteli sebességét rugalmasan skálázhatja úgy, hogy bármilyen mennyiségű átviteli sebességet kiépítheti a kérelemegységek (kérelemegységek) használatával.

A tárolóhoz kiosztott átviteli sebesség egyenletesen oszlik el a fizikai partíciók között, és feltételezve, hogy egy jó partíciókulcs egyenletesen osztja el a logikai partíciókat a fizikai partíciók között, az átviteli sebesség egyenletesen oszlik el a tároló összes logikai partíciója között. A logikai partíciók átviteli sebességét nem lehet szelektíven megadni. Mivel egy tároló egy vagy több logikai partícióját egy fizikai partíció üzemelteti, a fizikai partíciók kizárólag a tárolóhoz tartoznak, és támogatják a tárolón kiosztott átviteli sebességet.

Ha a logikai partíción futó számítási feladat a mögöttes fizikai partícióhoz lefoglalt átviteli sebességnél többet használ fel, lehetséges, hogy a műveletek sebességkorlátozottak lesznek. A gyakori elérésű partíciók akkor fordulnak elő, ha egy logikai partíciónak aránytalanul több kérése van, mint a többi partíciókulcs-értéknek.

Sebességkorlátozás esetén növelheti a teljes tároló kiosztott átviteli sebességét, vagy újrapróbálhatja a műveleteket. Azt is biztosítania kell, hogy olyan partíciókulcsot válasszon, amely egyenletesen osztja el a tárterületet, és kötetet kér. További információ a particionálásról: Particionálás és horizontális skálázás az Azure Cosmos DB-ben.

Javasoljuk, hogy konfigurálja az átviteli sebességet a tároló részletességében, ha kiszámítható teljesítményt szeretne a tárolóhoz.

Az alábbi képen látható, hogy egy fizikai partíció hogyan üzemelteti egy tároló egy vagy több logikai partícióját:

Physical partition that hosts one or more logical partitions of a container

Átviteli sebesség beállítása adatbázisokban

Amikor átviteli sebességet épít ki egy Azure Cosmos DB-adatbázison, az átviteli sebesség meg van osztva az adatbázis összes tárolóján (az úgynevezett megosztott adatbázis-tárolókon). Ez alól kivételt képeznek az Ön által kiépített átviteli sebességgel rendelkező tárolók. Az adatbázisszintű kiosztott átviteli sebesség megosztása a tárolók között hasonló ahhoz, hogy adatbázist üzemeltetjen egy gépfürtön. Mivel az adatbázis összes tárolója megosztja a számítógépen elérhető erőforrásokat, természetesen nem lesz kiszámítható teljesítmény egyetlen adott tárolón sem. A kiosztott átviteli sebesség adatbázison való konfigurálásáról további információt az Azure Cosmos DB-adatbázis kiosztott átviteli sebességének konfigurálása című témakörben talál. Az automatikus skálázási átviteli sebesség adatbázison való konfigurálásáról az automatikus skálázási átviteli sebesség kiépítése című témakörben olvashat.

Mivel az adatbázis összes tárolója osztozik a kiosztott átviteli sebességen, az Azure Cosmos DB nem biztosít kiszámítható átviteli sebességet az adatbázis egy adott tárolója számára. Az átviteli sebesség egy adott tároló által fogadott része a következőtől függ:

  • A tárolók száma.
  • A partíciókulcsok kiválasztása különböző tárolókhoz.
  • A számítási feladatok elosztása a tárolók különböző logikai partíciói között.

Javasoljuk, hogy konfigurálja az átviteli sebességet egy adatbázisban, ha több tárolón szeretné megosztani az átviteli sebességet, de nem szeretné az átviteli sebességet egyetlen tárolóra sem fordítani.

Az alábbi példák azt mutatják be, hogy hol érdemes az átviteli sebességet adatbázisszinten kiépíteni:

  • Az adatbázis kiosztott átviteli sebességének több-bérlős alkalmazások esetében hasznos lehet a tárolók között való megosztása. Minden felhasználót egy külön Azure Cosmos DB-tároló jelölhet.

  • Ha egy adatbázis kiosztott átviteli sebességét tárolók halmazán osztja meg, akkor hasznos, ha egy NoSQL-adatbázist( például MongoDB-t vagy Cassandrát) migrál egy virtuálisgép-fürtön vagy a helyszíni fizikai kiszolgálókról az Azure Cosmos DB-be. Az Azure Cosmos DB-adatbázisban konfigurált kiosztott átviteli sebességet logikus, de költséghatékonyabb és rugalmasabb teljesítménynek tekintheti a MongoDB- vagy Cassandra-fürt számítási kapacitásával.

A kiosztott átviteli sebességgel rendelkező adatbázisban létrehozott összes tárolót partíciókulcsgal kell létrehozni. Egy adott időpontban az adatbázison belüli tárolóhoz lefoglalt átviteli sebesség el van osztva a tároló összes logikai partícióján. Ha adatbázison konfigurálva van a kiosztott átviteli sebességet megosztó tárolók, az átviteli sebességet nem alkalmazhatja szelektíven egy adott tárolóra vagy logikai partícióra.

Ha egy logikai partíció számítási feladatai nagyobb teljesítményt használnak fel, mint egy adott logikai partícióhoz lefoglalt átviteli sebesség, a műveletek sebessége korlátozott. Sebességkorlátozás esetén növelheti a teljes adatbázis átviteli sebességét, vagy újrapróbálhatja a műveleteket. További információ a particionálásról: Logikai partíciók.

A megosztott átviteli sebességű adatbázisokban lévő tárolók között megoszlik az adott adatbázishoz lefoglalt átviteli sebesség (RU/s). Standard (manuális) kiosztott átviteli sebesség esetén legfeljebb 25 tárolóval rendelkezhet, amelyek legalább 400 RU/s méretűek az adatbázisban. Az automatikus skálázás kiosztott átviteli sebességével legfeljebb 25 tárolóval rendelkezhet egy legalább 1000 RU/s automatikus skálázással rendelkező adatbázisban (skálázás 100–1000 RU/s között).

Megjegyzés:

2020 februárjában egy olyan módosítást vezettünk be, amely legfeljebb 25 tárolót engedélyez a megosztott átviteli sebességű adatbázisban, ami lehetővé teszi az átvételi sebesség hatékonyabb elosztását a tárolók között. Az első 25 tároló után csak akkor adhat hozzá további tárolókat az adatbázishoz, ha dedikált átviteli sebességgel vannak kiépítve, amely különbözik az adatbázis megosztott átviteli sebességétől.
Ha az Azure Cosmos DB-fiókja már tartalmaz egy =25 tárolóval rendelkező >megosztott átviteli sebességet tartalmazó adatbázist, a fiók és az ugyanabban az Azure-előfizetésben lévő összes többi fiók mentesül a módosítás alól. Ha visszajelzése vagy kérdése van, forduljon a terméktámogatáshoz .

Ha a számítási feladatok az adatbázis összes gyűjteményének törlését és újbóli létrehozását foglalják magukban, javasoljuk, hogy a gyűjtemény létrehozása előtt dobja el az üres adatbázist, és hozza létre újra az új adatbázist. Az alábbi képen látható, hogy egy fizikai partíció hogyan üzemeltethet egy vagy több logikai partíciót, amelyek egy adatbázis különböző tárolóihoz tartoznak:

Physical partition that hosts one or more logical partitions that belong to different containers

Átviteli sebesség beállítása adatbázison és tárolón

A két modell kombinálható. Az átviteli sebesség kiépítése az adatbázison és a tárolón egyaránt engedélyezett. Az alábbi példa bemutatja, hogyan építhet ki standard (manuális) kiosztott átviteli sebességet egy Azure Cosmos DB-adatbázison és egy tárolón:

  • Létrehozhat egy Z nevű Azure Cosmos DB-adatbázist a "K" kérelemegységek szabványos (manuális) kiosztott átviteli sebességével.

  • Ezután hozzon létre öt A, B, C, D és E nevű tárolót az adatbázisban. A B tároló létrehozásakor engedélyezze a dedikált átviteli sebesség kiépítését ehhez a tárolóbeállításhoz , és explicit módon konfigurálja a kiosztott átviteli sebesség "P" kérelemegységét ezen a tárolón. A megosztott és dedikált átviteli sebességet csak az adatbázis és a tároló létrehozásakor konfigurálhatja.

    Setting the throughput at the container-level

  • A "K" RU/s átviteli sebessége a négy A, C, D és E tároló között van megosztva. Az A, C, D vagy E számára elérhető átviteli sebesség pontos mennyisége változó. Az egyes tárolók átviteli sebességéhez nincsenek SLA-k.

  • A B nevű tároló garantáltan mindig megkapja a "P" RU/s átviteli sebességet. Az SLA-k is alátámasztják.

Megjegyzés:

A kiosztott átviteli sebességgel rendelkező tárolók nem konvertálhatók megosztott adatbázis-tárolóvá. Ezzel szemben a megosztott adatbázis-tárolók nem konvertálhatók dedikált átviteli sebességre. Az adatokat át kell helyeznie egy tárolóba a kívánt átviteli sebesség beállításával. (A NoSQL, a MongoDB és a Cassandra API-k tárolómásolási feladatai segítenek ebben a folyamatban.)

Átviteli sebesség frissítése adatbázison vagy tárolón

Miután létrehozott egy Azure Cosmos DB-tárolót vagy egy adatbázist, frissítheti a kiosztott átviteli sebességet. Az adatbázison vagy a tárolón konfigurálható maximális kiosztott átviteli sebesség nincs korlátozva.

Aktuális kiosztott átviteli sebesség

Lekérheti egy tároló vagy adatbázis kiosztott átviteli sebességét az Azure Portalon vagy az SDK-k használatával:

Ezen módszerek válasza a tároló vagy adatbázis minimális kiosztott átviteli sebességét is tartalmazza:

A tényleges minimális ru/s a fiók konfigurációjától függően változhat. További információkért tekintse meg az automatikus skálázással kapcsolatos gyakori kérdéseket.

A kiosztott átviteli sebesség módosítása

Egy tároló vagy adatbázis kiosztott átviteli sebességét az Azure Portalon vagy az SDK-k használatával skálázhatja:

Ha csökkenti a kiosztott átviteli sebességet, a lehető legkisebbre is képes lesz.

Ha növeli a kiosztott átviteli sebességet, a művelet legtöbbször azonnal megtörténik. Vannak azonban olyan esetek, amikor a művelet hosszabb időt vehet igénybe, mivel a rendszerfeladatok kiépíthetik a szükséges erőforrásokat. Ebben az esetben a kiosztott átviteli sebesség módosításának megkísérlése, amíg ez a művelet folyamatban van, HTTP 423-választ eredményez egy hibaüzenettel, amely azt jelzi, hogy egy másik skálázási művelet folyamatban van.

További információ a kiosztott átviteli sebesség (RU/s) skálázásával kapcsolatos ajánlott eljárásokról.

Megjegyzés:

Ha egy nagyon nagy betöltési számítási feladatot tervez, amely a kiosztott átviteli sebesség jelentős növelését igényli, vegye figyelembe, hogy a skálázási művelet nem rendelkezik SLA-val, és az előző bekezdésben említettek szerint a növekedés hosszú időt vehet igénybe. Érdemes előre megtervezni és elindítani a skálázást a számítási feladat megkezdése előtt, és az alábbi módszerekkel ellenőrizni az előrehaladást.

A skálázás előrehaladását programozott módon ellenőrizheti az aktuális kiosztott átviteli sebesség beolvasásával és a következőkkel:

Az Azure Monitor-metrikák használatával megtekintheti az erőforrás kiosztott átviteli sebességének (RU/s) és tárterületének előzményeit.

Modellek összehasonlítása

Ez a táblázat egy adatbázis és egy tároló kiépítési standard (manuális) átviteli sebességének összehasonlítását mutatja be.

Paraméter Standard (manuális) átviteli sebesség egy adatbázisban Standard (manuális) átviteli sebesség egy tárolón Automatikus skálázási átviteli sebesség egy adatbázisban Tárolók automatikus skálázási átviteli sebessége
Belépési pont (minimális RU/s) 400 RU/s. Tárolónként legfeljebb 25 tároló lehet ru/s nélkül. 400 Automatikus skálázás 100–1000 RU/s között. Tárolónként legfeljebb 25 tároló lehet ru/s nélkül. Automatikus skálázás 100–1000 RU/s között.
Minimális ru/s tárolónként -- 400 -- Automatikus skálázás 100–1000 RU/s között
Maximális kérelemegységek Korlátlan, az adatbázisban. Korlátlan, a tárolón. Korlátlan, az adatbázisban. Korlátlan, a tárolón.
Adott tárolóhoz hozzárendelt vagy elérhető kérelemegységek Nincs garancia. Az adott tárolóhoz rendelt kérelemegységek a tulajdonságoktól függnek. A tulajdonságok lehetnek az átviteli sebességet, a számítási feladat elosztását és a tárolók számát megosztó tárolók partíciókulcsai. A tárolón konfigurált összes kérelemegység kizárólag a tároló számára van fenntartva. Nincs garancia. Az adott tárolóhoz rendelt kérelemegységek a tulajdonságoktól függnek. A tulajdonságok lehetnek az átviteli sebességet, a számítási feladat elosztását és a tárolók számát megosztó tárolók partíciókulcsai. A tárolón konfigurált összes kérelemegység kizárólag a tároló számára van fenntartva.
Tároló maximális tárterülete Korlátlan. Korlátlan Korlátlan Korlátlan
Tároló logikai partíciónkénti átviteli sebességének maximális száma 10K RU/s 10K RU/s 10K RU/s 10K RU/s
Tároló logikai partíciónkénti maximális tárterület (adat+ index) 20 GB 20 GB 20 GB 20 GB

Következő lépések