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

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

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 s využitím 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 Internetu věcí (IoT)?
  • 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 libovolné š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 první globálně distribuovaná databázová služba na trhu, která nabízí komplexní smlouvy o úrovni služeb zahrnující propustnost, latenci, dostupnost a konzistenci.

Azure Cosmos DB je globální distribuovaná databáze pro více modelů, která se používá v široké škále aplikací a případů použití. Je to dobrá volba pro každou bezserverovou aplikaci, která potřebuje nízkou dobu odezvy v řádu milisekund a potřebuje rychle a globálně škálovat. Podporuje několik datových modelů (klíč-hodnota, dokumenty, grafy a sloupcové) a mnoho rozhraní API služby Azure Cosmos DB pro přístup k datům, včetně rozhraní API pro MongoDB, ROZHRANÍ API pro NoSQL, ROZHRANÍ API pro Gremlin a rozhraní API pro tabulku nativně a rozšiřitelném způsobem.

Následuje několik atributů služby Azure Cosmos DB, díky kterým se dobře hodí pro vysoce výkonné aplikace s globálními ambicemi.

  • Azure Cosmos DB nativně rozděluje vaše data do oddílů, aby byla dostupná a škálovatelnost. Azure Cosmos DB nabízí 99,99% záruku dostupnosti, propustnosti, nízké latence a konzistence pro všechny účty v jedné oblasti a všechny účty ve více oblastech s mírnější konzistencí a 99,999% dostupnost čtení u všech účtů databáze ve více oblastech.
  • Azure Cosmos DB má úložiště ssd 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 omezená neschválnost, umožňuje plnou flexibilitu a nízký poměr nákladů k výkonu. Žádná databázová služba nenabízí takovou flexibilitu jako Azure Cosmos DB, pokud jde o konzistenci úrovní.
  • Azure Cosmos DB má flexibilní cenový model vhodný pro data, který nezávisle na sobě 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ů namísto procesoru, paměti nebo vstupně-výstupních operací za sekundu základního hardwaru.
  • Návrh služby Azure Cosmos DB umožňuje škálovat na obrovské objemy požadavků v řádu biliónů požadavků za den.

Tyto atributy jsou užitečné ve webových, mobilních, herních a IoT aplikacích, které potřebují nízkou dobu odezvy a potřebují zpracovávat obrovské objemy čtení a zápisu.

IoT a telematika

Případy použití IoT často sdílejí některé vzory v tom, jak ingestují, zpracovávají a ukládají data. Tyto systémy musí nejprve 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, aby odvozily přehledy v reálném čase. Data se pak archivují do studeného úložiště pro dávkovou analýzu. Microsoft Azure nabízí bohaté služby, které je možné použít v případech 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

Shluk dat může ingestovat Azure Event Hubs, protože nabízí příjem dat s vysokou propustností s nízkou latencí. Ingestovaná data, která je potřeba zpracovat za účelem získání přehledů v reálném čase, je možné převést 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í. Jakmile se data načtou do služby Azure Cosmos DB, jsou 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ý a připojuje pouze protokol, který ukládá změny kontejnerů Azure Cosmos DB v postupném pořadí. Všechna data nebo jen změny dat ve službě Azure Cosmos DB je pak možné použít jako referenční data v rámci analýzy v reálném čase. Kromě toho je možné data dále upřesňovat a zpracovávat připojením dat služby Azure Cosmos DB ke službě HDInsight pro úlohy Pig, Hive nebo Mapování/Redukce. 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žeb Azure Cosmos DB, Event Hubs a Apache Storm 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 vašich věcí.

Maloobchod a marketing

Azure Cosmos DB se ve velké míře používá na vlastních platformách elektronického obchodování Microsoftu, na kterých běží Windows Store a XBox Live. Používá se také v maloobchodě k ukládání dat katalogu a k získávání 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ů entit, 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 kusovníků. Atributy pro tato data se mohou lišit a mohou se v průběhu času měnit, aby vyhovovaly požadavkům aplikace.

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

Referenční architektura maloobchodního katalogu Azure Cosmos DB

Azure Cosmos DB se často používá pro model event sourcing, který využívá architekturu založenou na událostech pomocí funkce kanálu změn . Kanál změn poskytuje podřízeným mikroslužbám možnost spolehlivě a přírůstkově číst vložení a aktualizace (například události objednávek) provedené ve službě Azure Cosmos DB. Tuto funkci je možné využít k poskytování trvalého úložiště událostí jako zprostředkovatel zpráv pro události změny stavu a pracovní postup zpracování pořadí jednotek mezi mnoha mikroslužbami (které lze implementovat jako bezserverové Azure Functions).

Referenční architektura kanálu řazení služby 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 Azure Cosmos DB najdete v tématu Spuštění úlohy Spark s využitím 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 sociálních sítí a žebříčky nejvyšších skóre. Hry často vyžadují latenci čtení a zápisu v milisekundách, aby se zajistilo poutavé prostředí ve hře. 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žívají hry jako The Walking Dead: No Man's Land by Next Games a Halo 5: Guardians od 343 Industries. Azure Cosmos DB poskytuje vývojářům her následující výhody:

  • Azure Cosmos DB umožňuje elastické vertikální navýšení nebo snížení výkonu. To umožňuje hrám zpracovávat aktualizaci profilu a statistiky od desítek až po miliony souběžných hráčů provedením jediného volání rozhraní API.
  • Azure Cosmos DB podporuje čtení a zápisy v milisekundách, aby se zabránilo prodlevám při hraní her.
  • Automatické indexování služby Azure Cosmos DB umožňuje filtrování několika různých vlastností v reálném čase, například vyhledání hráčů podle jejich interních ID hráčů nebo jejich GameCenter, Facebook, Google ID nebo dotaz na základě členství hráče v cechu. To je možné bez vytváření složité infrastruktury indexování nebo horizontálního dělení.
  • Díky flexibilnímu schématu se snadněji implementují sociální funkce, včetně zpráv v chatu ve hře, členství v cechu hráčů, dokončených výzev, žebříčků s vysokým skóre a sociálních grafů.
  • Azure Cosmos DB jako spravovaná platforma jako služba (PaaS) vyžadovala minimální nastavení a správu, aby bylo možné rychle iterovat a zkrátit dobu uvedení na trh.

Referenční herní architektura služby 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í mediální aplikace. Mezi příklady uvolňování paměti 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 omezeny 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 transformace nebo složitého objektu na vrstvy relačního mapování. Vlastnosti dat je možné snadno přidávat nebo upravovat tak, aby odpovídaly požadavkům, protože vývojáři iterují kód aplikace a podporují tak rychlý vývoj.

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

Mnoho aplikací sociálních sítí běží v globálním měřítku a může vykazovat nepředvídatelné vzorce používání. Flexibilita při škálování úložiště dat je nezbytná, protože aplikační vrstva se škáluje tak, aby odpovídala požadavkům na využití. Horizontální navýšení kapacity můžete provést přidáním dalších datových oddílů v rámci účtu služby Azure Cosmos DB. Kromě toho můžete také vytvořit další účty služby Azure Cosmos DB napříč několika oblastmi. Informace o dostupnosti oblastí 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ě dodávány se složitými pohledy a prostředími. Obvykle se jedná o dynamické, které vyhovuje uživatelským preferencím nebo náladám a potřebám brandingu. Aplikace proto musí být schopné efektivně načítat přizpůsobená nastavení, aby bylo možné rychle vykreslit prvky a prostředí uživatelského rozhraní.

JSON, formát podporovaný službou Azure Cosmos DB, je efektivní formát, který představuje data rozložení uživatelského rozhraní, protože je nejen jednoduchý, ale dá se také snadno interpretovat pomocí JavaScriptu. Azure Cosmos DB nabízí nastavitelné úrovně konzistence, které umožňují rychlé čtení s nízkou latencí zápisu. 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 mezi různými způsoby.

Referenční architektura webové aplikace Azure Cosmos DB

Další kroky

  • Pokud chcete začít pracovat 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ů .