Běžné případy použití Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

Tento článek obsahuje přehled několika běžných případů použití služby Azure Cosmos DB. Doporučení v tomto článku slouží jako výchozí bod při vývoji aplikace pomocí služby Azure Cosmos DB.

Po přečtení tohoto článku budete moct odpovědět na následující otázky:

  • Jaké jsou běžné případy použití služby Azure Cosmos DB?
  • Jaké jsou výhody používání služby Azure Cosmos DB pro maloobchodní aplikace?
  • Jaké jsou výhody používání služby Azure Cosmos DB jako úložiště dat pro systémy IoT (Internet of Things)?
  • Jaké jsou výhody používání služby Azure Cosmos DB pro webové a mobilní aplikace?

Úvod

Azure Cosmos DB je řešení Azure pro rychlou databázi NoSQL s otevřenými rozhraními API pro jakékoli škálování. Služba je navržená tak, aby zákazníkům umožňovala elasticky (a nezávisle) škálovat propustnost a úložiště napříč libovolným počtem geografických oblastí. Azure Cosmos DB je dnes na trhu první globálně distribuovaná databázová služba, která nabízí komplexní smlouvy o úrovni služeb zahrnující propustnost, latenci, dostupnost a konzistenci.

Azure Cosmos DB je globální distribuovaná vícemodelová databáze, která se používá v široké škále aplikací a případů použití. Je to dobrá volba pro všechny bezserverové aplikace, které potřebují nízkou dobu odezvy v řádu milisekund a potřebují rychle a globálně škálovat. Podporuje více datových modelů (klíč-hodnota, dokumenty, grafy a sloupce) a mnoho rozhraní API služby Azure Cosmos DB pro přístup k datům, včetně rozhraní API pro MongoDB, API for NoSQL, API pro Gremlin a rozhraní API pro tabulky nativně a rozšiřitelného způsobu.

Následuje několik atributů služby Azure Cosmos DB, díky kterým je vhodná pro vysoce výkonné aplikace s globálními cíli.

  • Azure Cosmos DB nativně rozděluje vaše data pro zajištění vysoké dostupnosti a škálovatelnosti. Azure Cosmos DB nabízí 99,99 % záruky dostupnosti, propustnosti, nízké latence a konzistence pro všechny účty v jedné oblasti a všechny účty s uvolněnou konzistencí a 99,999% dostupnost čtení u všech účtů databáze s více oblastmi.
  • Azure Cosmos DB má úložiště ssd s dobou odezvy s nízkou latencí v řádu milisekund.
  • Podpora úrovní konzistence ve službě Azure Cosmos DB, jako je konečná, konzistentní předpona, relace a ohraničená neakutnost, umožňuje plnou flexibilitu a nízký poměr nákladů na výkon. Žádná databázová služba nenabízí tolik flexibility jako Azure Cosmos DB v konzistenci úrovní.
  • Azure Cosmos DB má flexibilní cenový model vhodný pro data, který nezávisle monitoruje úložiště a propustnost.
  • Model rezervované propustnosti služby Azure Cosmos DB umožňuje uvažovat o počtu čtení a zápisů místo procesoru, paměti a vstupně-výstupních operací základního hardwaru.
  • Návrh služby Azure Cosmos DB umožňuje škálovat na obrovské objemy požadavků v pořadí biliónů požadavků za den.

Tyto atributy jsou užitečné pro webové, mobilní aplikace, hry a aplikace IoT, které potřebují nízkou dobu odezvy a potřebují zpracovávat obrovské množství čtení a zápisů.

IoT a telematika

Případy použití IoT často sdílejí některé vzory v tom, jak ingestují, zpracovávají a ukládají data. Za prvé, tyto systémy potřebují ingestovat shluky dat ze senzorů zařízení různých národních prostředí. Dále tyto systémy zpracovávají a analyzují streamovaná data a odvozují přehledy v reálném čase. Data se pak archivují do studeného úložiště pro dávkové analýzy. Microsoft Azure nabízí bohaté služby, které je možné použít pro případy použití IoT, včetně Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight a Power BI.

Referenční architektura IoT služby Azure Cosmos DB

Služba Azure Event Hubs může ingestovat nárůsty dat, protože nabízí příjem dat s vysokou propustností s nízkou latencí. Ingestovaná data, která je potřeba zpracovat pro přehled v reálném čase, se dají trychtýřovat do Azure Stream Analytics pro analýzu v reálném čase. Data je možné načíst do služby Azure Cosmos DB pro adhocové dotazování. Po načtení dat do služby Azure Cosmos DB jsou data připravená k dotazování. Kromě toho je možné v kanálu změn číst nová data a změny stávajících dat. Kanál změn je trvalý protokol, který ukládá změny kontejnerů Azure Cosmos DB v sekvenčním pořadí. Všechna data nebo jen změny dat ve službě Azure Cosmos DB se pak dají použít jako referenční data jako součást analýzy v reálném čase. Kromě toho je možné data dále upřesnit a zpracovat připojením dat Azure Cosmos DB ke službě HDInsight pro úlohy Pig, Hive nebo Map/Reduce. Zpřesněná data se pak načtou zpět do služby Azure Cosmos DB pro vytváření sestav.

Ukázkové řešení IoT s využitím služby Azure Cosmos DB, Event Hubs a Apache Stormu najdete v úložišti hdinsight-storm-examples na GitHubu.

Další informace o nabídkách Azure pro IoT najdete v tématu Vytvoření internetu věcí.

Maloobchod a marketing

Azure Cosmos DB se používá ve velkém rozsahu na vlastních platformách elektronického obchodování Od Microsoftu, které používají Windows Store a XBox Live. Používá se také v maloobchodě k ukládání dat katalogu a k vytváření zdrojů událostí v kanálech zpracování objednávek.

Scénáře použití dat katalogu zahrnují ukládání a dotazování sady atributů pro entity, jako jsou lidé, místa a produkty. Mezi příklady dat katalogu patří uživatelské účty, katalogy produktů, registry zařízení IoT a systémy materiálů. Atributy pro tato data se mohou lišit a můžou se v průběhu času měnit tak, aby vyhovovaly požadavkům aplikace.

Představte si příklad katalogu produktů pro dodavatele automobilovýchdílůch Každá část může mít kromě společných atributů, které sdílejí všechny části, vlastní atributy. Atributy pro určitou část se navíc můžou po vydání nového modelu změnit v následujícím roce. Azure Cosmos DB podporuje flexibilní schémata a hierarchická data, a proto je vhodná pro ukládání dat katalogu produktů.

Referenční architektura katalogu maloobchodního prodeje služby Azure Cosmos DB

Azure Cosmos DB se často používá pro model event sourcing pro architektury řízené událostmi pomocí funkcí kanálu změn. Kanál změn poskytuje podřízené mikroslužby schopnost spolehlivě a přírůstkově číst vkládání a aktualizace (například události objednávek) provedené ve službě Azure Cosmos DB. Tuto funkci lze využít k zajištění trvalého úložiště událostí jako zprostředkovatele zpráv pro události změny stavu a pracovní postup zpracování pořadí jednotek mezi mnoha mikroslužbami (které je možné implementovat jako bezserverové funkce Azure Functions).

Referenční architektura kanálu řazení ve službě Azure Cosmos DB

Kromě toho je možné data uložená ve službě Azure Cosmos DB integrovat se službou HDInsight pro analýzu velkých objemů dat prostřednictvím úloh Apache Sparku. Podrobnosti o konektoru Spark pro Službu Azure Cosmos DB najdete v tématu Spuštění úlohy Sparku pomocí služby Azure Cosmos DB a HDInsight.

Hry

Databázová úroveň je důležitou součástí herních aplikací. Moderní hry zpracovávají grafiku na mobilních nebo konzolových klientech, ale využívají cloud k doručování přizpůsobeného a individuálního obsahu, jako jsou herní statistiky, integrace se sociálními sítěmi a žebříčky nejvyšších skóre. Hry často vyžadují latence čtení a zápisu v milisekundách, aby poskytovaly poutavé herní prostředí. Během uvedení nové hry na trh a aktualizace funkcí musí být databáze hry rychlá a schopná zvládnout obrovský nárůst poptávky.

Azure Cosmos DB používá hry jako The Walking Dead: No Man's Land by Next Games a Halo 5: Guardians by 343 Industries. Azure Cosmos DB poskytuje vývojářům her následující výhody:

  • Azure Cosmos DB umožňuje elasticky vertikálně navýšit nebo snížit výkon. To umožňuje hry zpracovávat aktualizace profilu a statistiky od desítek po miliony souběžných hráčů provedením jednoho volání rozhraní API.
  • Azure Cosmos DB podporuje čtení a zápisy v milisekundách, aby se zabránilo prodlevám během hraní her.
  • Automatické indexování ve službě Azure Cosmos DB umožňuje filtrovat podle několika různých vlastností v reálném čase, například vyhledat hráče podle JEJICH INTERNÍCH ID hráčů nebo jejich GameCenter, Facebooku, Google ID nebo dotazu na základě členství hráče v cechu. To je možné, aniž byste museli vytvářet složitou infrastrukturu indexování nebo horizontálního dělení.
  • Sociální funkce, včetně zpráv v chatu ve hře, členství v cechu hráčů, dokončených výzev, tabulek výsledků s vysokým skóre a sociálních grafů, je snazší implementovat s flexibilním schématem.
  • Azure Cosmos DB jako spravovaná platforma jako služba (PaaS) vyžadovala minimální nastavení a správu, která umožňuje rychlou iteraci a zkrátit dobu uvedení na trh.

Referenční architektura her ve službě Azure Cosmos DB

Webové a mobilní aplikace

Azure Cosmos DB se běžně používá u webových a mobilních aplikací a hodí se k modelování sociálních interakcí, integraci se službami třetích stran a vytváření silně přizpůsobených prostředí. Sady SDK služby Azure Cosmos DB je možné použít k vytváření bohatých aplikací pro iOS a Android pomocí oblíbené architektury Xamarin.

Sociální aplikace

Běžným případem použití služby Azure Cosmos DB je ukládání a dotazování uživatelem generovaného obsahu (UGC) pro webové, mobilní a sociální média aplikace. Mezi příklady UGC patří relace chatu, tweety, blogové příspěvky, hodnocení a komentáře. UGC v aplikacích sociálních médií je často kombinací volného textu, vlastností, značek a vztahů, které nejsou vázány pevnou strukturou. Obsah, jako jsou chaty, komentáře a příspěvky, je možné ukládat ve službě Azure Cosmos DB bez nutnosti transformací nebo složitých objektů na vrstvy relačního mapování. Vlastnosti dat je možné snadno přidat nebo upravit tak, aby odpovídaly požadavkům, protože vývojáři iterují kód aplikace, čímž podporují rychlý vývoj.

Aplikace, které se integrují se sociálními sítěmi třetích stran, musí reagovat na změny schémat z těchto sítí. Vzhledem k tomu, že se data ve službě Azure Cosmos DB ve výchozím nastavení indexují, jsou data připravená k dotazování kdykoli. Proto mají tyto aplikace flexibilitu při načítání projekcí podle příslušných potřeb.

Mnoho sociálních aplikací běží v globálním měřítku a může vykazovat nepředvídatelné vzorce použití. Flexibilita při škálování úložiště dat je nezbytná, protože aplikační vrstva se škáluje tak, aby odpovídala poptávce po využití. Horizontální navýšení kapacity můžete rozšířit přidáním dalších datových oddílů do účtu služby Azure Cosmos DB. Kromě toho můžete také vytvořit další účty Azure Cosmos DB napříč několika oblastmi. Dostupnost oblasti služby Azure Cosmos DB najdete v tématu Oblasti Azure.

Diagram znázorňující referenční architekturu webové aplikace Azure Cosmos DB

Personalizace

Moderní aplikace jsou v současné době součástí složitých zobrazení a prostředí. Obvykle se jedná o dynamickou, uživatelskou předvolbu nebo náladu a potřeby brandingu. Aplikace proto musí být schopny efektivně načíst přizpůsobená nastavení, aby rychle vykreslovaly prvky uživatelského rozhraní a prostředí.

JSON, formát podporovaný službou Azure Cosmos DB, je efektivní formát pro reprezentaci dat rozložení uživatelského rozhraní, protože je nejen jednoduchý, ale také snadno interpretuje JavaScript. Azure Cosmos DB nabízí nastavitelné úrovně konzistence, které umožňují rychlé čtení s nízkou latencí zápisů. Proto ukládání dat rozložení uživatelského rozhraní včetně přizpůsobených nastavení jako dokumentů JSON ve službě Azure Cosmos DB představuje efektivní způsob, jak tato data získat napříč drátem.

Referenční architektura webové aplikace Azure Cosmos DB

Další kroky

  • Pokud chcete začít se službou Azure Cosmos DB, postupujte podle našich rychlých startů, které vás provedou vytvořením účtu a zahájením práce se službou Azure Cosmos DB.

  • Pokud si chcete přečíst další informace o zákaznících používajících službu Azure Cosmos DB, podívejte se na stránku případových studií zákazníků.