Share via


Gebruikelijke Azure Cosmos DB use cases

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel

Dit artikel bevat een overzicht van verschillende veelvoorkomende use cases voor Azure Cosmos DB. De aanbevelingen in dit artikel fungeren 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 algemene 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 een gegevensarchief voor IoT-systemen (Internet of Things) ?
  • Wat zijn de voordelen van het gebruik van Azure Cosmos DB voor web- en mobiele toepassingen?

Inleiding

Azure Cosmos DB is de Azure-oplossing voor een snelle NoSQL-database, met open API's voor elke schaal. De service is zo ontworpen dat klanten doorvoer en opslag elastisch (en onafhankelijk) kunnen schalen in een willekeurig aantal geografische regio's. Azure Cosmos DB is de eerste wereldwijd gedistribueerde databaseservice in de markt om uitgebreide serviceovereenkomsten te bieden die betrekking hebben op 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 lage reactietijden van milliseconden nodig heeft en snel en wereldwijd moet worden geschaald. Het biedt ondersteuning voor 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 tabel , en op een uitbreidbare manier.

Hier volgen enkele kenmerken van Azure Cosmos DB die het 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 een soepele consistentie en 99,999% leesbeschikbaarheid voor alle databaseaccounts met meerdere regio's.
  • Azure Cosmos DB heeft opslag met SSD-ondersteuning met reactietijden met lage latentievolgorde van milliseconden.
  • De ondersteuning van Azure Cosmos DB voor consistentieniveaus, zoals uiteindelijk, consistent voorvoegsel, sessie en gebonden veroudering, biedt volledige flexibiliteit en lage kosten-tot-prestatieverhouding. Er is geen databaseservice die zoveel flexibiliteit biedt als Azure Cosmos DB in consistentieniveaus.
  • Azure Cosmos DB heeft een flexibel gegevensvriendelijk prijsmodel dat de opslag en doorvoer onafhankelijk van elkaar meet.
  • Met het gereserveerde doorvoermodel van Azure Cosmos DB kunt u nadenken over 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 grote aanvraagvolumes in de volgorde van biljoenen 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 hoe ze gegevens opnemen, verwerken en opslaan. Ten eerste moeten deze systemen bursts van gegevens opnemen van apparaatsensoren van verschillende landinstellingen. 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 op IoT-gebruiksvoorbeelden, 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 lage latentie biedt. 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 ad-hocquery's. Zodra de gegevens in Azure Cosmos DB zijn geladen, kunnen de gegevens worden opgevraagd. Daarnaast kunnen nieuwe gegevens en wijzigingen in bestaande gegevens worden gelezen in de wijzigingenfeed. Wijzigingenfeed is een permanent logboek, waarbij alleen logboeken worden toegevoegd 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 geladen in Azure Cosmos DB voor rapportage.

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

Zie 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, productcatalogussen, IoT-apparaatregisters en materiaalsystemen. 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 autoonderdelen. Elk onderdeel heeft mogelijk zijn eigen kenmerken, naast de algemene kenmerken die alle onderdelen delen. Bovendien kunnen kenmerken voor een specifiek onderdeel het volgende jaar wijzigen 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 retailcatalogus 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 invoegen en updates (bijvoorbeeld ordergebeurtenissen) betrouwbaar en incrementeel te lezen in een Azure Cosmos DB. Deze functionaliteit kan worden gebruikt om een permanent gebeurtenisarchief te bieden als berichtbroker voor status veranderende gebeurtenissen en de werkstroom voor het verwerken van orders tussen veel microservices (die kunnen worden geïmplementeerd als serverloze Azure Functions).

Referentiearchitectuur voor volgordepijplijnen in Azure Cosmos DB

Daarnaast kunnen gegevens die zijn opgeslagen in Azure Cosmos DB worden geïntegreerd met HDInsight voor big data-analyses 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 latenties van één milliseconde 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 de volgende voordelen voor gameontwikkelaars:

  • Met Azure Cosmos DB kunnen prestaties elastisch omhoog of omlaag worden geschaald. Hierdoor kunnen games het bijwerken van profiel en statistieken verwerken van tientallen tot miljoenen gelijktijdige gamers door één API-aanroep te maken.
  • Azure Cosmos DB biedt ondersteuning voor lees- en schrijfbewerkingen in milliseconden om vertragingen tijdens het spelen van games te voorkomen.
  • Met automatische indexering van Azure Cosmos DB kunt u in realtime filteren op meerdere verschillende eigenschappen, bijvoorbeeld spelers zoeken op hun interne speler-id's of hun GameCenter, Facebook, Google-id's of query's uitvoeren op basis van lidmaatschap van een speler in een gilde. Dit is mogelijk zonder complexe indexerings- of shardinginfrastructuur te bouwen.
  • Sociale functies, waaronder chatberichten in de game, speler gildelidmaatschappen, voltooide uitdagingen, hoog scorebord en sociale grafieken zijn eenvoudiger te implementeren met een flexibel schema.
  • Voor Azure Cosmos DB als een beheerd PaaS (Platform-as-a-Service) is minimale installatie- en beheerwerkzaamheden vereist om snelle iteratie mogelijk te maken en tijd tot de markt te beperken.

Referentiearchitectuur voor Gaming in Azure Cosmos DB

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 uitgebreide iOS- en Android-toepassingen te bouwen met behulp van het populaire Xamarin-framework.

Sociale toepassingen

Een veelvoorkomende use case voor Azure Cosmos DB is het opslaan en opvragen van door de gebruiker 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 media-toepassingen een combinatie van vrije vorm tekst, eigenschappen, tags en relaties die niet zijn gebonden door starre structuur. Inhoud zoals chats, opmerkingen en berichten kunnen worden opgeslagen in Azure Cosmos DB zonder dat transformaties of complex object naar relationele toewijzingslagen nodig zijn. Gegevenseigenschappen kunnen eenvoudig worden toegevoegd of gewijzigd om aan de vereisten te voldoen, omdat ontwikkelaars de toepassingscode herhalen, waardoor snelle ontwikkeling wordt bevorderd.

Toepassingen die kunnen worden geïntegreerd met sociale netwerken van derden, moeten reageren op veranderende schema's van deze netwerken. Omdat gegevens 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 te voldoen aan de vraag naar gebruik. 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 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. Dit zijn doorgaans dynamisch, geschikt voor gebruikersvoorkeuren of stemmingen en huisstijlbehoeften. Daarom moeten toepassingen persoonlijke instellingen effectief kunnen ophalen om gebruikersinterface-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 is, maar ook eenvoudig kan worden geïnterpreteerd door JavaScript. Azure Cosmos DB biedt niet-consistente consistentieniveaus waarmee snelle leesbewerkingen met schrijfbewerkingen met lage latentie mogelijk zijn. 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 draad te halen.

Referentiearchitectuur voor Azure Cosmos DB-web-apps

Volgende stappen

  • Als u aan de slag wilt gaan met Azure Cosmos DB, volgt u onze quickstarts, waarmee u een account maakt en aan de slag gaat met Azure Cosmos DB.

  • Als u meer wilt lezen over klanten die Azure Cosmos DB gebruiken, raadpleegt u de pagina met casestudy's van klanten.