Gebruikelijke Azure Cosmos DB use cases

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Dit artikel bevat een overzicht van verschillende veelvoorkomende gebruiksvoorbeelden voor Azure Cosmos DB. De aanbevelingen in dit artikel dienen als uitgangspunt bij het ontwikkelen van uw toepassing met Azure Cosmos DB.

Na het lezen van dit artikel kunt u de volgende vragen beantwoorden:

  • Wat zijn de veelvoorkomende use cases voor Azure Cosmos DB?
  • Wat zijn de voordelen van het gebruik van Azure Cosmos DB voor retailtoepassingen?
  • Wat zijn de voordelen van het gebruik van Azure Cosmos DB als gegevensarchief voor IoT-systemen (Internet of Things) ?
  • Wat zijn de voordelen van het gebruik van Azure Cosmos DB voor web- en mobiele toepassingen?

Introductie

Azure Cosmos DB is de Azure-oplossing voor een snelle NoSQL-database, met open API's voor elke schaal. De service is ontworpen om klanten in staat te stellen om doorvoer en opslag elastisch (en onafhankelijk) te schalen in een willekeurig aantal geografische regio's. Azure Cosmos DB is de eerste wereldwijd gedistribueerde databaseservice op de markt die uitgebreide serviceovereenkomsten biedt voor doorvoer, latentie, beschikbaarheid en consistentie.

Azure Cosmos DB is een wereldwijd gedistribueerde database met meerdere modellen die wordt gebruikt in een breed scala aan toepassingen en gebruiksvoorbeelden. Het is een goede keuze voor elke serverloze toepassing die een lage reactietijd van milliseconden nodig heeft en snel en wereldwijd moet worden geschaald. Het ondersteunt meerdere gegevensmodellen (sleutelwaarde, documenten, grafieken en kolommen) en veel Azure Cosmos DB API's voor gegevenstoegang, waaronder API voor MongoDB, API voor NoSQL, API voor Gremlin en API voor Table systeemeigen en op een uitbreidbare manier.

Hier volgen enkele kenmerken van Azure Cosmos DB die het zeer geschikt maken voor hoogwaardige toepassingen met wereldwijde ambitie.

  • Azure Cosmos DB partitioneert uw gegevens systeemeigen voor hoge beschikbaarheid en schaalbaarheid. Azure Cosmos DB biedt 99,99% garanties voor beschikbaarheid, doorvoer, lage latentie en consistentie voor alle accounts met één regio en alle accounts voor meerdere regio's met soepele consistentie en 99,999% leesbeschikbaarheid voor alle databaseaccounts voor meerdere regio's.
  • Azure Cosmos DB heeft opslag met SSD-ondersteuning met reactietijden in de orde van milliseconden met lage latentie.
  • De ondersteuning van Azure Cosmos DB voor consistentieniveaus zoals uiteindelijk, consistent voorvoegsel, sessie en gebonden veroudering biedt volledige flexibiliteit en lage kosten-tot-prestatieverhouding. Geen enkele databaseservice biedt zoveel flexibiliteit als Azure Cosmos DB in consistentieniveaus.
  • Azure Cosmos DB heeft een flexibel, gegevensvriendelijk prijsmodel dat opslag en doorvoer onafhankelijk van elkaar meet.
  • Met het gereserveerde doorvoermodel van Azure Cosmos DB kunt u denken in termen van het aantal lees-/schrijfbewerkingen in plaats van CPU/geheugen/IOPS van de onderliggende hardware.
  • Met het ontwerp van Azure Cosmos DB kunt u schalen naar enorme aanvraagvolumes in de orde van triljoenen aanvragen per dag.

Deze kenmerken zijn nuttig in web-, mobiele, gaming- en IoT-toepassingen die lage reactietijden nodig hebben en enorme hoeveelheden lees- en schrijfbewerkingen moeten verwerken.

IoT en telematica

IoT-gebruiksvoorbeelden delen vaak enkele patronen in de wijze waarop ze gegevens opnemen, verwerken en opslaan. Ten eerste moeten deze systemen bursts van gegevens van apparaatsensoren van verschillende landinstellingen opnemen. Vervolgens verwerken en analyseren deze systemen streaminggegevens om realtime inzichten af te leiden. De gegevens worden vervolgens gearchiveerd in koude opslag voor batchanalyses. Microsoft Azure biedt uitgebreide services die kunnen worden toegepast voor IoT-use cases, waaronder Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight en Power BI.

Azure Cosmos DB IoT-referentiearchitectuur

Bursts van gegevens kunnen worden opgenomen door Azure Event Hubs omdat deze gegevensopname met een hoge doorvoer met een lage latentie biedt. Opgenomen gegevens die moeten worden verwerkt voor realtime inzicht, kunnen worden gesluisd naar Azure Stream Analytics voor realtime analyses. Gegevens kunnen worden geladen in Azure Cosmos DB voor het uitvoeren van query's. Zodra de gegevens zijn geladen in Azure Cosmos DB, zijn de gegevens klaar om te worden opgevraagd. Daarnaast kunnen nieuwe gegevens en wijzigingen in bestaande gegevens worden gelezen op wijzigingenfeed. Wijzigingenfeed is een permanent, alleen toevoeglogboek waarin wijzigingen in Azure Cosmos DB-containers in opeenvolgende volgorde worden opgeslagen. Vervolgens kunnen alle gegevens of alleen wijzigingen in gegevens in Azure Cosmos DB worden gebruikt als referentiegegevens als onderdeel van realtime analyses. Daarnaast kunnen gegevens verder worden verfijnd en verwerkt door Azure Cosmos DB-gegevens te verbinden met HDInsight voor Pig-, Hive- of Map/Reduce-taken. Verfijnde gegevens worden vervolgens weer naar Azure Cosmos DB geladen voor rapportage.

Zie de opslagplaats hdinsight-storm-examples op GitHub voor een IoT-voorbeeldoplossing met Azure Cosmos DB, Event Hubs en Apache Storm.

Zie Het Internet of Your Things maken voor meer informatie over Azure-aanbiedingen voor IoT.

Detailhandel en marketing

Azure Cosmos DB wordt uitgebreid gebruikt in de eigen e-commerceplatforms van Microsoft, waarop de Windows Store en XBox Live worden uitgevoerd. Het wordt ook gebruikt in de detailhandel voor het opslaan van catalogusgegevens en voor gebeurtenisbronnen in pijplijnen voor orderverwerking.

Scenario's voor catalogusgegevensgebruik omvatten het opslaan en opvragen van een set kenmerken voor entiteiten zoals personen, plaatsen en producten. Enkele voorbeelden van catalogusgegevens zijn gebruikersaccounts, productcatalogi, IoT-apparaatregisters en materiaallijstsystemen. Kenmerken voor deze gegevens kunnen variëren en kunnen in de loop van de tijd veranderen om aan de toepassingsvereisten te voldoen.

Bekijk een voorbeeld van een productcatalogus voor een leverancier van auto-onderdelen. Elk onderdeel kan zijn eigen kenmerken hebben, naast de algemene kenmerken die alle onderdelen delen. Bovendien kunnen kenmerken voor een specifiek onderdeel het volgende jaar veranderen wanneer een nieuw model wordt uitgebracht. Azure Cosmos DB biedt ondersteuning voor flexibele schema's en hiërarchische gegevens en is daarom geschikt voor het opslaan van productcatalogusgegevens.

Referentiearchitectuur voor de detailhandelcatalogus van Azure Cosmos DB

Azure Cosmos DB wordt vaak gebruikt voor gebeurtenisbronnen om gebeurtenisgestuurde architecturen mogelijk te maken met behulp van de functionaliteit van de wijzigingenfeed . De wijzigingenfeed biedt downstream-microservices de mogelijkheid om invoegingen en updates (bijvoorbeeld order gebeurtenissen) die zijn gemaakt naar een Azure Cosmos DB betrouwbaar en incrementeel te lezen. Deze functionaliteit kan worden gebruikt om een permanent gebeurtenisarchief te bieden als een berichtenbroker voor gebeurtenissen die de status wijzigen en de werkstroom voor orderverwerking tussen veel microservices (die kunnen worden geïmplementeerd als serverloze Azure Functions).

Referentiearchitectuur voor Azure Cosmos DB-volgordepijplijnen

Daarnaast kunnen gegevens die zijn opgeslagen in Azure Cosmos DB worden geïntegreerd met HDInsight voor big data-analyse via Apache Spark-taken. Zie Een Spark-taak uitvoeren met Azure Cosmos DB en HDInsight voor meer informatie over de Spark-connector voor Azure Cosmos DB.

Gaming

De databaselaag is een cruciaal onderdeel van gamingtoepassingen. Moderne games voeren grafische verwerking uit op mobiele/consoleclients, maar zijn afhankelijk van de cloud om aangepaste en gepersonaliseerde inhoud te leveren, zoals in-gamestatistieken, integratie van sociale media en klassementen voor hoogste scores. Games vereisen vaak latentie van één milliseconden voor lees- en schrijfbewerkingen om een aantrekkelijke ervaring in de game te bieden. Een gamedatabase moet snel zijn en in staat zijn om grote pieken in het aantal aanvragen te verwerken tijdens het starten van een nieuwe game en functie-updates.

Azure Cosmos DB wordt gebruikt door games zoals The Walking Dead: No Man's Land by Next Games en Halo 5: Guardians by 343 Industries. Azure Cosmos DB biedt gameontwikkelaars de volgende voordelen:

  • Met Azure Cosmos DB kunnen prestaties elastisch omhoog of omlaag worden geschaald. Hierdoor kunnen games het bijwerken van profiel en statistieken van tientallen tot miljoenen gelijktijdige gamers verwerken door één API-aanroep te doen.
  • Azure Cosmos DB ondersteunt lees- en schrijfbewerkingen in milliseconden om vertragingen tijdens het gamen te voorkomen.
  • Met de automatische indexering van Azure Cosmos DB kunt u in realtime filteren op meerdere verschillende eigenschappen, bijvoorbeeld om spelers te vinden op basis van hun interne speler-id's, of hun GameCenter, Facebook, Google-id's of query's op basis van spelerlidmaatschap in een gilde. Dit is mogelijk zonder complexe indexerings- of shardinginfrastructuur te bouwen.
  • Sociale functies zoals in-game chatberichten, lidmaatschappen van speler guilds, voltooide uitdagingen, scoreborden met hoge scores en sociale grafieken zijn eenvoudiger te implementeren met een flexibel schema.
  • Azure Cosmos DB als beheerd PaaS (Platform-as-a-Service) vereist minimale installatie- en beheerwerkzaamheden om snelle iteratie mogelijk te maken en de time-to-market te verkorten.

Referentiearchitectuur voor Azure Cosmos DB-games

Webtoepassingen en mobiele toepassingen

Azure Cosmos DB wordt doorgaans gebruikt in web- en mobiele toepassingen en is zeer geschikt voor het modelleren van sociale interacties, integratie met services van derden en voor het bouwen van geavanceerde persoonlijke ervaringen. De Azure Cosmos DB SDK's kunnen worden gebruikt om rijke iOS- en Android-toepassingen te bouwen met behulp van het populaire Xamarin-framework.

Sociale toepassingen

Een veelvoorkomend gebruiksvoorbeeld voor Azure Cosmos DB is het opslaan en opvragen van door gebruikers gegenereerde inhoud (UGC) voor web-, mobiele en sociale-mediatoepassingen. Enkele voorbeelden van UGC zijn chatsessies, tweets, blogberichten, beoordelingen en opmerkingen. Vaak is de UGC in sociale mediatoepassingen een mix van vrije tekst, eigenschappen, tags en relaties die niet worden begrensd door een starre structuur. Inhoud zoals chats, opmerkingen en berichten kan worden opgeslagen in Azure Cosmos DB zonder transformaties of complexe objecten naar relationele toewijzingslagen. Gegevenseigenschappen kunnen eenvoudig worden toegevoegd of gewijzigd om aan de vereisten te voldoen wanneer ontwikkelaars de toepassingscode herhalen, waardoor snelle ontwikkeling wordt bevorderd.

Toepassingen die zijn geïntegreerd met sociale netwerken van derden, moeten reageren op veranderende schema's van deze netwerken. Omdat gegevens standaard automatisch worden geïndexeerd in Azure Cosmos DB, kunnen gegevens op elk gewenst moment worden opgevraagd. Daarom hebben deze toepassingen de flexibiliteit om projecties op te halen op basis van hun respectieve behoeften.

Veel van de sociale toepassingen worden op wereldwijde schaal uitgevoerd en kunnen onvoorspelbare gebruikspatronen vertonen. Flexibiliteit bij het schalen van het gegevensarchief is essentieel omdat de toepassingslaag wordt geschaald om aan de gebruiksvraag te voldoen. U kunt uitschalen door extra gegevenspartities toe te voegen onder een Azure Cosmos DB-account. Daarnaast kunt u ook extra Azure Cosmos DB-accounts maken in meerdere regio's. Zie Azure-regio's voor de beschikbaarheid van azure Cosmos DB-serviceregio's.

Diagram met de referentiearchitectuur van de Azure Cosmos DB-web-app.

Persoonlijke instellingen

Moderne toepassingen worden tegenwoordig geleverd met complexe weergaven en ervaringen. Deze zijn doorgaans dynamisch, afgestemd op gebruikersvoorkeuren of stemmingen en huisstijlbehoeften. Daarom moeten toepassingen gepersonaliseerde instellingen effectief kunnen ophalen om ui-elementen en -ervaringen snel weer te geven.

JSON, een indeling die wordt ondersteund door Azure Cosmos DB, is een effectieve indeling voor de indelingsgegevens van de gebruikersinterface, omdat deze niet alleen lichtgewicht zijn, maar ook eenvoudig kunnen worden geïnterpreteerd door JavaScript. Azure Cosmos DB biedt instelbare consistentieniveaus die snelle leesbewerkingen met schrijfbewerkingen met lage latentie mogelijk maken. Daarom is het opslaan van ui-indelingsgegevens, inclusief persoonlijke instellingen als JSON-documenten in Azure Cosmos DB, een effectieve manier om deze gegevens over de kabel te krijgen.

Referentiearchitectuur voor Azure Cosmos DB-web-apps

Volgende stappen

  • Volg onze quickstarts om aan de slag te gaan met Azure Cosmos DB, waarin u stapsgewijs wordt begeleid bij het maken van een account en hoe u aan de slag gaat met Azure Cosmos DB.

  • Als u meer wilt lezen over klanten die Azure Cosmos DB gebruiken, raadpleegt u de pagina klantcasestudies .