A tárterület költségeinek optimalizálása az Azure Cosmos DB-ben

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

Az Azure Cosmos DB korlátlan tárterületet és átviteli sebességet kínál. Az Azure Cosmos DB-tárolókon vagy -adatbázisokon üzembe helyezendő/konfigurált átviteli sebességtől eltérően a tárterület számlázása a felhasználás alapján történik. Csak a felhasznált logikai tárterületért kell fizetnie, és nem kell előre lefoglalnia a tárterületet. A Storage automatikusan fel- és leskálázódik az Azure Cosmos DB-tárolóhoz hozzáadott vagy eltávolított adatok alapján.

Tárolási költség

A tárterület számlázása a GB-k egységével történik. A helyi SSD-háttértárat az adatok és az indexelés használják. A felhasznált teljes tárterület megegyezik az Azure Cosmos DB-t használó összes régióban használt adatok és indexek által igényelt tárterületekkel. Ha globálisan replikál egy Azure Cosmos DB-fiókot három régióban, akkor a teljes tárolási költséget mind a három régióban meg kell fizetnie. A tárolási követelmények becsléséhez tekintse meg a kapacitástervező eszközt. Az Azure Cosmos DB tárhelyköltsége 0,25 GB/hónap. A legújabb frissítések díjszabási oldalán talál további információt. Riasztásokat állíthat be az Azure Cosmos DB-tároló által használt tárolók meghatározásához, a tároló monitorozásához, lásd az Azure Cosmos DB monitorozása című cikket.

Költség optimalizálása elemmérettel

Az Azure Cosmos DB az optimális teljesítmény és költségelőnyök érdekében 2 MB-os vagy annál kisebb elemméretet vár. Ha 2 MB-nál nagyobb adatokat szeretne tárolni, fontolja meg az elemséma újratervezését. Abban a ritka esetben, amikor nem tudja újratervezni a sémát, feloszthatja az elemet alelemekre, és logikailag összekapcsolhatja őket egy közös azonosítóval (azonosítóval). Az Összes Azure Cosmos DB-funkció egységesen működik az adott logikai azonosítóhoz való rögzítéssel.

Költségek optimalizálása indexeléssel

Alapértelmezés szerint az adatok automatikusan indexelve lesznek, ami növelheti a felhasznált tárterületet. Ennek a többletterhelésnek a csökkentése érdekében azonban egyéni indexszabályzatokat alkalmazhat. A szabályzat által nem hangolt automatikus indexelés az elem méretének körülbelül 10–20%-a. Az indexszabályzatok eltávolításával vagy testreszabásával nem kell többletköltséget fizetnie az írásokért, és nem igényel további átviteli kapacitást. Az egyéni indexelési szabályzatok konfigurálásához tekintse meg az Azure Cosmos DB indexelését. Ha korábban már dolgozott relációs adatbázisokkal, azt gondolhatja, hogy az "index mindent" a tárterület megduplázását vagy magasabb szintű használatát jelenti. Az Azure Cosmos DB esetében azonban a medián esetében sokkal alacsonyabb. Az Azure Cosmos DB-ben az index tárolási többletterhelése általában alacsony (10–20%), még automatikus indexelés esetén is, mivel alacsony tárolási terhelésre van tervezve. Az indexelési szabályzat kezelésével pontosabban szabályozhatja az indexek lábnyomának és a lekérdezési teljesítménynek a kompromisszumot.

Költség optimalizálása az élettartammal és a hírcsatorna módosításával

Ha már nincs szüksége az adatokra, akkor az Azure Cosmos DB-fiókból az élettartam, a hírcsatorna módosítása vagy a régi adatok egy másik adattárba, például az Azure Blob Storage-ba vagy az Azure-adattárházba való migrálásával törölhető. Az élettartammal vagy a TTL-vel az Azure Cosmos DB lehetővé teszi az elemek automatikus törlését egy tárolóból egy bizonyos idő elteltével. Alapértelmezés szerint beállíthatja a tároló szintjén való élettartamot, és elemenként felülbírálhatja az értéket. Miután a TTL-t tárolóra vagy elemszintre állította be, az Azure Cosmos DB automatikusan eltávolítja ezeket az elemeket a legutóbbi módosításuk óta eltelt időszak után. A változáscsatorna használatával adatokat migrálhat egy másik Azure Cosmos DB-tárolóba vagy egy külső adattárba. A migrálás nulla időt vesz igénybe, és ha végzett a migrálással, törölheti vagy konfigurálhatja az élettartamot a forrás Azure Cosmos DB-tároló törléséhez.

Költségoptimalizálás multimédiás adattípusokkal

Ha gazdag médiatípusokat( például videókat, képeket stb.) szeretne tárolni, számos lehetősége van az Azure Cosmos DB-ben. Az egyik lehetőség, hogy ezeket a gazdag médiatípusokat Azure Cosmos DB-elemként tárolja. Elemenként 2 MB-os korlát van érvényben, és ezt a korlátot elkerülheti, ha az adatelemet több részhalmazba lánczi. Vagy tárolhatja őket az Azure Blob Storage-ban, és a metaadatok használatával hivatkozhat rájuk az Azure Cosmos DB-elemekből. Ezzel a megközelítéssel számos előnye és hátránya van. Az első megközelítés a legjobb teljesítményt nyújtja a késés, az átviteli sebesség SLA-k és a gazdag médiaadattípusok kulcsrakész globális terjesztési képességei tekintetében a szokásos Azure Cosmos DB-elemek mellett. A támogatás azonban magasabb áron érhető el. Ha adathordozót tárol az Azure Blob Storage-ban, csökkentheti az általános költségeket. Ha a késés kritikus, prémium szintű tárterületet használhat az Azure Cosmos DB-elemekből hivatkozott multimédiás fájlokhoz. Ez natív módon integrálható a CDN-sel, hogy a peremhálózati kiszolgálóról származó képeket alacsonyabb költséggel szolgálja ki a geokorlátozás megkerülése érdekében. Ennek a forgatókönyvnek a hátránya, hogy két szolgáltatással kell foglalkoznia : az Azure Cosmos DB-vel és az Azure Blob Storage-tal, ami növelheti az üzemeltetési költségeket.

A felhasznált tárterület ellenőrzése

Egy Azure Cosmos DB-tároló tárolási felhasználásának ellenőrzéséhez futtathat egy HEAD vagy GET kérést a tárolón, és megvizsgálhatja a fejléceket és a x-ms-request-quotax-ms-request-usage fejléceket. A .NET SDK használatakor a DocumentSizeQuota és a DocumentSizeUsage tulajdonsággal is lekérheti a felhasznált tárterületet.

Az SDK használata

// Measure the item size usage (which includes the index size)
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));   

Console.WriteLine("Item size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);

Következő lépések

A következő cikkekkel további információt tudhat meg a költségoptimalizálásról az Azure Cosmos DB-ben:

  • További információ a fejlesztés és tesztelés optimalizálásáról
  • További információ az Azure Cosmos DB-számla értelmezéséről
  • További információ az átviteli sebesség költségeinek optimalizálásáról
  • További információ az olvasási és írási költségek optimalizálásáról
  • További információ a lekérdezések költségeinek optimalizálásáról
  • További információ a többrégiós Azure Cosmos DB-fiókok költségeinek optimalizálásáról
  • 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.