Popis služby Azure Cosmos DB

Dokončeno

Váš vývojový tým má zkušenosti s prací s nerelačními úložišti dat. Toto prostředí chcete použít k rozšíření funkcí cloudového nativního řešení tak, aby zahrnovalo zpracování a ukládání telemetrických dat IoT vygenerovaných inteligentními zařízeními. Po prozkoumání nabídek NoSQL spravovaných v Azure jste se rozhodli používat službu Azure Cosmos DB. Následující informace vám můžou pomoct potvrdit jeho vhodnost jako trvalé úložiště dat pro telemetrická data.

Co je Cosmos DB?

Azure Cosmos DB je plně spravovaná cloudová nativní databáze NoSQL. Je to jedna ze základních služeb Azure, což znamená, že je dostupná v každé oblasti Azure.

Azure Cosmos DB jako spravovaná služba eliminuje většinu tradičních úloh správy databází, jako jsou aktualizace nebo opravy základního databázového stroje. Nabízí automatickou a okamžitou škálovatelnost se zárukou smlouvy o úrovni služeb (SLA) pro její výkon a rychlost odezvy. Poskytuje také sadu funkcí odolnosti, které ji odlišují od relačních databází. Mezi tyto funkce patří globálně distribuované repliky s zápisy do více oblastí a schopnost implementovat pět různých modelů konzistence, od silného až po konečné.

Další jedinečnou charakteristikou služby Azure Cosmos DB je podpora více databázových rozhraní API. Při zřizování služby Azure Cosmos DB si můžete zvolit upřednostňovanou vývojovou platformu z nativního rozhraní API Core (NoSQL), rozhraní API pro MongoDB, rozhraní API Cassandra, rozhraní Gremlin API a rozhraní API pro tabulky. S rozhraním API služby Azure Cosmos DB for NoSQL máte flexibilitu výběru preferované vývojové platformy, jako je sada .NET SDK, Sada Java SDK, Node.js nebo Python.

Jaké jsou výhody cosmos DB oproti relačním databázím?

Jednou z běžných charakteristik systémů relačních databází je použití uzamčení, které zaručuje jejich transakční chování. Tyto záruky pomáhají zajistit silnou konzistenci dat v rámci každé databáze. I když je taková konzistence požadovaná v mnoha scénářích, má negativní vliv na souběžnost, latenci a dostupnost. Tyto negativní důsledky je možné zmírnit rozdělením databáze do několika horizontálních oddílů, ale tento přístup je složitý pro implementaci a údržbu.

Azure Cosmos DB tyto nevýhody řeší kombinací své podpory pro různé modely konzistence, integrovanou replikaci a zápisy do více oblastí s konfigurovatelným mechanismem řešení konfliktů. Tato podpora poskytuje významné výhody výkonu a odolnosti ve scénářích, kdy silná konzistence není požadavkem. Cosmos DB současně podporuje také transakce na straně serveru, pokud je taková konzistence nezbytná.

Co je model prostředků Cosmos DB?

Pokud chcete implementovat službu Azure Cosmos DB, musíte nejprve ve svém předplatném Azure vytvořit účet služby Azure Cosmos DB. Účet slouží jako jednotka distribuce a vysoké dostupnosti. Máte možnost nakonfigurovat účet, který se má replikovat do více oblastí, a nastavit, aby každá z těchto replik byla zapisovatelná. Můžete také nakonfigurovat výchozí úroveň konzistence pro účet.

Pokud používáte rozhraní SQL API, rozhraní API pro MongoDB nebo rozhraní Gremlin API, může účet obsahovat jednu nebo více databází, přičemž každý z nich hostuje jeden nebo více kontejnerů. Kontejner je jednotka škálovatelnosti, která umožňuje určit výpočetní prostředky a prostředky úložiště pro zpracování obsahu. Tento obsah, pokud existuje rozhraní SQL API nebo rozhraní API pro MongoDB, přebírá formát dokumentů ve formátu JSON, označovaných jako položky bez jakýchkoli konkrétních omezení definovaných schématem. Azure Cosmos DB ve výchozím nastavení automaticky indexuje všechny položky v kontejneru bez nutnosti explicitní správy indexů nebo schémat, ale umožňuje přizpůsobit chování indexování.

Počet prostředků dostupných ke zpracování dat v databázi nebo jejich jednotlivých kolekcích závisí na počtu dostupných jednotek žádostí (RU). Počet RU je založený na vámi zadané konfiguraci databáze nebo kontejneru. Cosmos DB nabízí tři režimy, které určují přidělení RU v závislosti na vašich preferencích.

  • Režim zřízené propustnosti V tomto režimu určíte konkrétní počet RU, které budou odrážet očekávané vzorce použití. Tento přístup nabízí nejpřehlednější informace o výsledném výkonu a nákladech.
  • Režim automatického škálování V tomto režimu předem přidělíte počet RU, které považujete za dostatečné pro řešení požadavků podle směrného plánu, ale umožníte jejich automatické zvýšení, pokud je pro přístup k datům vyšší poptávka. Tento režim je nejvhodnější pro klíčové úlohy s proměnnými nebo nepředvídatelnými vzory použití.
  • Bezserverový režim. V tomto režimu nemusíte předem přidělit jednotky RU. Místo toho spoléháte na možnosti automatického škálování služby Azure Cosmos DB, abyste zvýšili nebo snížili množství prostředků zpracování. Tento režim může být výhodný z hlediska nákladů, pokud vaše úlohy můžou tolerovat dočasnou latenci po obdobích nečinnosti databáze.

Jaké jsou výhody a případy použití služby Cosmos DB ve scénářích Azure IoT?

Azure Cosmos DB nabízí řadu možností, díky kterým je vhodná pro scénáře IoT, mezi které patří:

  • Dělení. Azure Cosmos DB automaticky rozděluje kontejnery pomocí zadaného klíče logického oddílu. Dělení je základní mechanismus za škálovatelností a odolností služby Azure Cosmos DB. Výběrem klíče oddílu můžete přizpůsobit scénáře IoT, které vyžadují ukládání a zpracování velkých objemů dat zařízení a telemetrie.

    Poznámka:

    Logický oddíl nemůže překročit velikost 20 GB.

  • TTL (Time to Live). Pomocí hodnoty TTL může Azure Cosmos DB automaticky odstraňovat položky po zadaném období. Tato automatizace zjednodušuje správu životního cyklu dat a snižuje náklady, protože odstranění založená na TTL se do využití RU nezapočítávají.

  • Kanál změn. Azure Cosmos DB používá kanál změn k automatické aktivaci akce, která následuje po změnách položek kolekce. Tento automatický trigger zjednodušuje implementaci běžného vzoru návrhu IoT, který při aktivaci odpovídající akce spoléhá na změny dat.

  • Smlouvy o úrovni služeb (SLA) pro zajištění výkonu a odolnosti. Ve scénářích IoT, které zahrnují velké objemy streamovaných dat, můžou zákazníci počítat s méně než 10 ms latencí pro 99. percentil čtení a zápisů a 99,999% dostupnost pro zápisy do více oblastí.

  • Databáze bez schématu Azure Cosmos DB umožňuje ukládání různých typů telemetrie vygenerovaných různými modely zařízení ve stejné kolekci tím, že eliminuje omezení založená na schématu.

  • Automatické indexování. Podpora indexování ve službě Azure Cosmos DB přispívá k rychlému a flexibilnímu vyhledávání ve velkých objemech dat obsahujících inventáře registrovaných zařízení a jejich telemetrie.

Azure Cosmos DB se přizpůsobí dvěma primárním případům použití IoT:

  • Ukládá telemetrii zařízení, která usnadňuje rychlý přístup k telemetrickým datům pro vizualizaci, následné zpracování a analýzu.
  • Ukládá katalog zařízení, který se zabývá modelováním zařízení IoT, entit a jejich topologie, přičemž každé zařízení je reprezentované položkou.