Veelgebruikte Azure Cosmos DB-gebruiksgevallen

VAN TOEPASSING OP: SQL API Cassandra API Gremlin API Table API Azure Cosmos DB API voor MongoDB

In dit artikel vindt u een overzicht van verschillende veelgebruikte gevallen voor Azure Cosmos DB. De aanbevelingen in dit artikel dienen als uitgangspunt bij het ontwikkelen van uw toepassing met Cosmos DB.

Nadat u dit artikel hebt gelezen, kunt u de volgende vragen beantwoorden:

  • Wat zijn de veelgebruikte gevallen 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 gegevensopslag 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 snelle NoSQL-database van Microsoft met open API's voor elke schaal. De service is ontworpen om klanten in staat te stellen de doorvoer en opslag in een bepaald aantal geografische regio's soepel (en onafhankelijk) te schalen. Azure Cosmos DB is de eerste wereldwijd gedistribueerde databaseservice op de markt die uitgebreide serviceovereenkomsten biedt met doorvoer, latentie, beschikbaarheid en consistentie.

Azure Cosmos DB is een globale gedistribueerde database met meerdere modellen die wordt gebruikt in een groot aantal toepassingen en gebruiksgevallen. Het is een goede keuze voor elke serverloze toepassing die lage responstijden van milliseconden nodig heeft en die snel en globaal moet worden geschaald. Het ondersteunt meerdere gegevensmodellen (sleutelwaarde, documenten, grafieken en kolomar) en veel API's voor gegevenstoegang, waaronder de API van Azure Cosmos DB voor MongoDB,SQL API,Gremlin APIen Tables API inheems en op een extensible manier.

Hieronder volgen enkele kenmerken van Azure Cosmos DB, die het zeer geschikt maken voor krachtige toepassingen met globale ambitie.

  • Azure Cosmos DB partities in uw gegevens voor hoge beschikbaarheid en schaalbaarheid. Azure Cosmos DB biedt 99,99% garanties voor beschikbaarheid, doorvoer, lage latentie en consistentie op alle accounts met één regio en alle accounts met meerdere regio's met een ontspannen consistentie en 99,999% leesbeschikbaarheid op alle databaseaccounts met meerdere regio's.
  • Azure Cosmos DB heeft ssd-back-opslag met lage latentieorder-of-milliseconde antwoordtijden.
  • De ondersteuning van Azure Cosmos DB voor consistentieniveaus, zoals uiteindelijk, consistent voorvoegsel, sessie en bounded-staleness, zorgt voor volledige flexibiliteit en lage kosten-prestatieverhouding. Geen enkele databaseservice biedt zoveel flexibiliteit als Azure Cosmos DB in niveausconsistentie.
  • Azure Cosmos DB heeft een flexibel, gegevensvriendelijk prijsmodel dat onafhankelijk van elkaar opslag en doorvoermeters biedt.
  • Met het gereserveerde doorvoermodel van Azure Cosmos DB kunt u denken in termen van het aantal gelezen/schrijft in plaats van CPU/geheugen/IOPs van de onderliggende hardware.
  • Met het ontwerp van Azure Cosmos DB kunt u in de volgorde van triljoenen aanvragen per dag op grote schaal aanvragen.

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

IoT en telematische auto's

IoT-gebruiksgevallen delen vaak bepaalde patronen in de manier waarop ze gegevens opnemen, verwerken en opslaan. In de eerste plaats moeten deze systemen een grote hoeveelheden gegevens opnemen van apparaat sensoren van verschillende locaties. Vervolgens verwerken en analyseren deze systemen streaminggegevens om realtime inzichten te verkrijgen. De gegevens worden vervolgens gearchiveerd naar koude opslag voor batchanalyse. Microsoft Azure biedt uitgebreide services die kunnen worden toegepast voor IoT-gebruiksgevallen, zoals Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight en Power BI.

Azure Cosmos DB IoT reference architecture

Azure Event Hubs kan een groot aantal gegevens inslikken, omdat deze een hoge doorvoer van gegevens met een lage latentie biedt. Gegevens die moeten worden verwerkt voor realtime inzicht, kunnen worden doorgesluisd naar Azure Stream Analytics voor realtimeanalyse. Gegevens kunnen worden geladen in Azure Cosmos DB voor adhoc-query's. Wanneer de gegevens zijn geladen in Azure Cosmos DB, kunnen de gegevens worden opgevraagd. Daarnaast kunnen nieuwe gegevens en wijzigingen in bestaande gegevens worden gelezen in de feed wijzigen. Feed wijzigen is een permanente, alleen-aaneenmeldlogboek waarin wijzigingen in Kosmos-containers in opeenvolgende volgorde worden opgeslagen. Vervolgens kunnen alle gegevens of alleen wijzigingen in gegevens in Azure Cosmos DB worden gebruikt als verwijzingsgegevens als onderdeel van realtimeanalyse. Daarnaast kunnen gegevens verder worden verfijnd en verwerkt door Azure Cosmos DB-gegevens te verbinden met HDInsight voor Biggen, Bijenkorf of Taken in kaart brengen/verkleinen. Verfijnde gegevens worden vervolgens weer geladen in Azure Cosmos DB voor rapportage.

Zie de hdinsight-storm-examples repositoryop GitHub voor een voorbeeld-IoT-oplossing met Azure Cosmos DB, EventHubs en Storm.

Zie Internet van uwdingen maken voor meer informatie over Azure-aanbiedingen voor IoT.

Detailhandel en marketing

Azure Cosmos DB wordt veel gebruikt in de eigen e-commerceplatformen van Microsoft, die de Windows Store en XBox Live uitvoeren. Het wordt ook gebruikt in de detailhandel voor het opslaan van catalogusgegevens en voor het verzamelen van gebeurtenissen in orderverwerkingspijplijnen.

Scenario's voor gegevensgebruik in catalogus omvatten het opslaan en query's van een set kenmerken voor entiteiten zoals personen, locaties en producten. Enkele voorbeelden van catalogusgegevens zijn gebruikersaccounts, productcatalogi, IoT-apparaatregistries en materiaalsystemen. Kenmerken voor deze gegevens kunnen variëren en kunnen in de tijd worden aangepast aan de toepassingsvereisten.

Overweeg een voorbeeld van een productcatalogus voor een leverancier van autoonderdelen. 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 wijzigen wanneer een nieuw model wordt uitgebracht. Azure Cosmos DB ondersteunt flexibele schema's en hiërarchische gegevens en is dus zeer geschikt voor het opslaan van productcatalogusgegevens.

Azure Cosmos DB retail catalog reference architecture

Azure Cosmos DB wordt vaak gebruikt voor event sourcing om op gebeurtenissen gebaseerde architecturen van stroom te maken met behulp van de feedfunctionaliteit wijzigen. De wijzigingsfeed biedt downstream microservices de mogelijkheid om inserts en updates (bijvoorbeeld ordergebeurtenissen) die zijn gemaakt in een Azure Cosmos DB betrouwbaar en stapsgewijs te lezen. Deze functionaliteit kan worden gebruikt om een permanente gebeurtenisopslag te bieden als berichtenmakelaar voor gebeurtenissen die veranderen in de staat en om de orderverwerkingswerkstroom tussen veel microservices te verbeteren (die kunnen worden geïmplementeerd als serverloze Azure-functies).

Azure Cosmos DB ordering pipeline reference architecture

Bovendien kunnen gegevens die zijn opgeslagen in Azure Cosmos DB, worden geïntegreerd met HDInsight voor analyse van grote gegevens via Apache Spark-taken. Zie Een Spark-taak uitvoeren met Cosmos DB en HDInsightvoor meer informatie over de Spark Connector voor Azure Cosmos DB.

Gamen

De databaselaag is een belangrijk onderdeel van gamingtoepassingen. Moderne games voeren grafische verwerking uit op mobiele/console-clients, maar vertrouwen op de cloud om aangepaste en gepersonaliseerde inhoud te leveren, zoals in-game stats, integratie van sociale media en leaderboards met hoge score. Games vereisen vaak latencies van één milliseconde voor het lezen en schrijven om een boeiende ervaring in de game te bieden. Een gamedatabase moet snel zijn en enorme pieken in aanvraagtarieven kunnen verwerken tijdens nieuwe gamelanceringen en functie-updates.

Azure Cosmos DB wordt gebruikt door games zoals The Walking Dead: No Man's Land by Next Gamesen Halo 5: Guardians. 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 van tientallen tot miljoenen gelijktijdige gamers verwerken door één API-oproep te doen.
  • Azure Cosmos DB ondersteunt milliseconden leest en schrijft om vertragingen tijdens het gamen te voorkomen.
  • Met automatische indexering van Azure Cosmos DB kunt u filteren op meerdere verschillende eigenschappen in realtime, bijvoorbeeld door spelers te zoeken op basis van hun interne speler-ID's of hun GameCenter, Facebook, Google-ed's of query's op basis van het lidmaatschap van een speler in een gilde. Dit is mogelijk zonder complexe indexerings- of sharding-infrastructuur te maken.
  • Sociale functies, zoals chatberichten in de game, lidmaatschappen van spelersgildes, voltooide uitdagingen, scoreborden met hoge score en sociale grafieken, zijn gemakkelijker te implementeren met een flexibel schema.
  • Azure Cosmos DB als een beheerd platform-as-a-service (PaaS) vereiste minimale installatie- en beheerwerkzaamheden om snelle iteratie mogelijk te maken en de time-to-market te verminderen.

Azure Cosmos DB gaming reference architecture

Web- en mobiele toepassingen

Azure Cosmos DB wordt vaak gebruikt in web- en mobiele toepassingen en is zeer geschikt voor het modelleren van sociale interacties, het integreren met services van derden en voor het opbouwen van uitgebreide persoonlijke ervaringen. De Db SDK's van De Kosmos kunnen worden gebruikt voor uitgebreide iOS- en Android-toepassingen met behulp van het populaire Xamarin-framework.

Sociale toepassingen

Een veelgebruikt geval 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 mediatoepassingen een combinatie van vrije formuliertekst, eigenschappen, tags en relaties die niet worden begrensd door een strakke structuur. Inhoud zoals chats, opmerkingen en berichten kan worden opgeslagen in Cosmos DB zonder dat er transformaties of complexe objecten nodig zijn voor relationele toewijzingslagen. Gegevenseigenschappen kunnen eenvoudig worden toegevoegd of gewijzigd om aan de vereisten te voldoen terwijl ontwikkelaars de toepassingscode overnemen, waardoor snelle ontwikkeling wordt gepromoot.

Toepassingen die zijn geïntegreerd met sociale netwerken van derden, moeten reageren op veranderende schema's van deze netwerken. Aangezien gegevens standaard automatisch worden geïndexeerd in Cosmos DB, kunnen gegevens op elk 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 globale schaal uitgevoerd en kunnen onvoorspelbare gebruikspatronen vertonen. Flexibiliteit bij het schalen van het gegevensopslag is essentieel omdat de toepassingslaagschalen overeenkomen met de gebruiksvraag. U kunt opschalen door extra gegevenspartities toe te voegen onder een Cosmos DB-account. Daarnaast kunt u ook extra Cosmos DB-accounts maken in meerdere regio's. Zie Azure Regions voor de beschikbaarheid van de Cosmos DB-serviceregio.

Diagram that shows the Azure Cosmos DB web app reference architecture.

Persoonlijke voorkeur

Moderne toepassingen hebben tegenwoordig complexe weergaven en ervaringen. Deze zijn meestal dynamisch en voldoen aan gebruikersvoorkeuren of stemmingen en huisstijlbehoeften. Daarom moeten toepassingen gepersonaliseerde instellingen effectief kunnen ophalen om elementen en ervaringen van de gebruikersinterface snel weer te geven.

JSON, een indeling die wordt ondersteund door Cosmos DB, is een effectieve indeling voor het weergeven van ui-indelingsgegevens, omdat deze niet alleen licht van gewicht is, maar ook gemakkelijk kan worden geïnterpreteerd door JavaScript. De Cosmos DB biedt onvindbare consistentieniveaus waarmee snelle leeswaarden met een lage latentie kunnen worden gelezen. Daarom is het opslaan van ui-indelingsgegevens, inclusief persoonlijke instellingen als JSON-documenten in Cosmos DB, een effectief middel om deze gegevens over de draad te krijgen.

Azure Cosmos DB web app reference architecture

Volgende stappen

  • Als u aan de slag wilt met Azure Cosmos DB, volgt u onze snelle start,waarin u een account maakt en aan de slag gaat met Cosmos DB.

  • Zie de pagina Klantcasestudies als u meer wilt weten over klanten die Azure Cosmos DB gebruiken.