Vanliga användningsfall för Azure Cosmos DB
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Den här artikeln innehåller en översikt över flera vanliga användningsfall för Azure Cosmos DB. Rekommendationerna i den här artikeln fungerar som utgångspunkt när du utvecklar ditt program med Azure Cosmos DB.
När du har läst den här artikeln kan du svara på följande frågor:
- Vilka är vanliga användningsfall för Azure Cosmos DB?
- Vilka är fördelarna med att använda Azure Cosmos DB för detaljhandelsprogram?
- Vilka är fördelarna med att använda Azure Cosmos DB som ett datalager för IoT-system (Internet of Things) ?
- Vilka är fördelarna med att använda Azure Cosmos DB för webb- och mobilprogram?
Introduktion
Azure Cosmos DB är Azure-lösningen för en snabb NoSQL-databas med öppna API:er för valfri skala. Tjänsten är utformad för att göra det möjligt för kunder att elastiskt (och oberoende) skala dataflöde och lagring i valfritt antal geografiska regioner. Azure Cosmos DB är den första globalt distribuerade databastjänsten på marknaden idag som erbjuder omfattande serviceavtal som omfattar dataflöde, svarstid, tillgänglighet och konsekvens.
Azure Cosmos DB är en global distribuerad databas med flera modeller som används i en mängd olika program och användningsfall. Det är ett bra val för alla serverlösa program som behöver korta svarstider på millisekunder och som behöver skalas snabbt och globalt. Den stöder flera datamodeller (nyckelvärde, dokument, grafer och kolumndiagram) och många Azure Cosmos DB-API:er för dataåtkomst, inklusive API för MongoDB, API för NoSQL, API för Gremlin och API för tabell internt och på ett utökningsbart sätt.
Följande är några attribut i Azure Cosmos DB som gör det väl lämpat för högpresterande program med global ambition.
- Azure Cosmos DB partitioner dina data internt för hög tillgänglighet och skalbarhet. Azure Cosmos DB erbjuder 99,99 % garantier för tillgänglighet, dataflöde, låg svarstid och konsekvens för alla konton i en region och alla konton i flera regioner med avslappnad konsekvens och 99,999 % lästillgänglighet på alla databaskonton i flera regioner.
- Azure Cosmos DB har SSD-säkerhetskopierad lagring med svarstider med låg svarstid på millisekunder.
- Azure Cosmos DB:s stöd för konsekvensnivåer som slutlig, konsekvent prefix, session och begränsad inaktuellhet möjliggör fullständig flexibilitet och låg kostnad-till-prestanda-förhållande. Ingen databastjänst erbjuder lika mycket flexibilitet som Azure Cosmos DB i nivåkonsekvens.
- Azure Cosmos DB har en flexibel datavänlig prismodell som mäter lagring och dataflöde oberoende av varandra.
- Med Azure Cosmos DB:s modell för reserverat dataflöde kan du tänka efter antalet läsningar/skrivningar i stället för CPU/minne/IOPs för den underliggande maskinvaran.
- Med Azure Cosmos DB:s design kan du skala till enorma begärandevolymer i storleksordningen biljoner begäranden per dag.
Dessa attribut är fördelaktiga i webb-, mobil-, spel- och IoT-program som behöver korta svarstider och behöver hantera enorma mängder läsningar och skrivningar.
IoT och telematik
IoT-användningsfall delar ofta vissa mönster i hur de matar in, bearbetar och lagrar data. För det första måste dessa system mata in mängder data från enhetssensorer på olika språk. Därefter bearbetar och analyserar dessa system strömmande data för att härleda insikter i realtid. Data arkiveras sedan till kall lagring för batchanalys. Microsoft Azure erbjuder omfattande tjänster som kan användas för IoT-användningsfall, inklusive Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Mašinsko učenje, Azure HDInsight och Power BI.
Datatoppar kan matas in av Azure Event Hubs eftersom det erbjuder datainmatning med högt dataflöde med låg svarstid. Data som matas in som behöver bearbetas för realtidsinformation kan skickas till Azure Stream Analytics för realtidsanalys. Data kan läsas in i Azure Cosmos DB för adhoc-frågor. När data har lästs in i Azure Cosmos DB är data redo att efterfrågas. Dessutom kan nya data och ändringar av befintliga data läsas i ändringsflödet. Ändringsflöde är en beständig logg med endast tillägg som lagrar ändringar i Azure Cosmos DB-containrar i sekventiell ordning. Då kan alla data eller bara ändringar av data i Azure Cosmos DB användas som referensdata som en del av realtidsanalys. Dessutom kan data förfinas och bearbetas ytterligare genom att ansluta Azure Cosmos DB-data till HDInsight för Pig-, Hive- eller Map/Reduce-jobb. Förfinade data läses sedan in igen till Azure Cosmos DB för rapportering.
En exempellösning för IoT med Azure Cosmos DB, Event Hubs och Apache Storm finns i lagringsplatsen hdinsight-storm-examples på GitHub.
Mer information om Azure-erbjudanden för IoT finns i Skapa Sakernas Internet.
Detaljhandel och marknadsföring
Azure Cosmos DB används i stor utsträckning på Microsofts egna e-handelsplattformar som kör Windows Store och XBox Live. Det används också i detaljhandeln för att lagra katalogdata och för händelsekällor i orderbearbetningspipelines.
Användningsscenarier för katalogdata omfattar lagring och frågor mot en uppsättning attribut för entiteter som personer, platser och produkter. Några exempel på katalogdata är användarkonton, produktkataloger, IoT-enhetsregister och faktura för materialsystem. Attributen för dessa data kan variera och kan ändras med tiden för att passa programkraven.
Överväg ett exempel på en produktkatalog för en leverantör av fordonsdelar. Varje del kan ha egna attribut utöver de vanliga attribut som alla delar delar. Dessutom kan attribut för en viss del ändras följande år när en ny modell släpps. Azure Cosmos DB stöder flexibla scheman och hierarkiska data och passar därför bra för att lagra produktkatalogdata.
Azure Cosmos DB används ofta för händelsekällor för att driva händelsedrivna arkitekturer med hjälp av dess ändringsflödesfunktioner . Ändringsflödet ger underordnade mikrotjänster möjlighet att på ett tillförlitligt och inkrementellt sätt läsa infogningar och uppdateringar (till exempel orderhändelser) som gjorts i en Azure Cosmos DB. Den här funktionen kan användas för att tillhandahålla ett beständigt händelselager som meddelandekö för tillståndsförändrande händelser och arbetsflöde för bearbetning av enhetsbeställningar mellan många mikrotjänster (som kan implementeras som serverlösa Azure Functions).
Dessutom kan data som lagras i Azure Cosmos DB integreras med HDInsight för stordataanalys via Apache Spark-jobb. Mer information om Spark Connector för Azure Cosmos DB finns i Köra ett Spark-jobb med Azure Cosmos DB och HDInsight.
Spel
Databasnivån är en viktig komponent i spelprogram. Moderna spel utför grafisk bearbetning på mobil-/konsolklienter, men förlitar sig på molnet för att kunna leverera anpassat och personligt innehåll som spelstatistik, integrering med sociala medier och rankningslistor. Spel kräver ofta svarstider på en millisekunder för läsningar och skrivningar för att ge en engagerande upplevelse i spelet. En speldatabas måste vara snabb och kunna hantera enorma toppar i begärandefrekvenser under nya spellanseringar och funktionsuppdateringar.
Azure Cosmos DB används av spel som The Walking Dead: No Man's Land by Next Games och Halo 5: Guardians av 343 Industries. Azure Cosmos DB ger följande fördelar för spelutvecklare:
- Med Azure Cosmos DB kan prestanda skalas upp eller ned elastiskt. Detta gör att spel kan hantera uppdatering av profil och statistik från dussintals till miljontals samtidiga spelare genom att göra ett enda API-anrop.
- Azure Cosmos DB stöder millisekunders läsningar och skrivningar för att undvika fördröjningar under spel.
- Med Azure Cosmos DB:s automatiska indexering kan du filtrera mot flera olika egenskaper i realtid, till exempel hitta spelare efter sina interna spelar-ID:n eller deras GameCenter, Facebook, Google ID eller fråga baserat på spelarmedlemskap i ett guild. Detta är möjligt utan att skapa en komplex indexerings- eller partitioneringsinfrastruktur.
- Sociala funktioner som chattmeddelanden i spelet, medlemskap i spelargrået, slutförda utmaningar, rankningslistor med höga poäng och sociala grafer är lättare att implementera med ett flexibelt schema.
- Azure Cosmos DB som en hanterad plattform som en tjänst (PaaS) krävde minimalt konfigurations- och hanteringsarbete för att möjliggöra snabb iteration och minska tiden till marknaden.
Webb- och mobilappar
Azure Cosmos DB används ofta i webbprogram och mobilappar, och passar utmärkt för att utforma sociala interaktioner, integrera med tjänster från tredje part och för att skapa anpassade upplevelser. Azure Cosmos DB SDK:er kan användas för att skapa omfattande iOS- och Android-program med hjälp av det populära Xamarin-ramverket.
Sociala program
Ett vanligt användningsfall för Azure Cosmos DB är att lagra och fråga användargenererat innehåll (UGC) för webb-, mobil- och sociala medieprogram. Några exempel på UGC är chattsessioner, tweets, blogginlägg, betyg och kommentarer. Ofta är UGC i program för sociala medier en blandning av fri formtext, egenskaper, taggar och relationer som inte begränsas av stel struktur. Innehåll som chattar, kommentarer och inlägg kan lagras i Azure Cosmos DB utan att behöva transformeringar eller komplexa objekt till relationsmappningslager. Dataegenskaper kan enkelt läggas till eller ändras för att matcha kraven när utvecklare itererar över programkoden, vilket främjar snabb utveckling.
Program som integreras med sociala nätverk från tredje part måste svara på ändrade scheman från dessa nätverk. Eftersom data indexeras automatiskt som standard i Azure Cosmos DB är data redo att efterfrågas när som helst. Därför har dessa program flexibiliteten att hämta projektioner enligt deras respektive behov.
Många av de sociala programmen körs i global skala och kan uppvisa oförutsägbara användningsmönster. Flexibilitet vid skalning av datalagret är viktigt eftersom programlagret skalas för att matcha användningsbehovet. Du kan skala ut genom att lägga till ytterligare datapartitioner under ett Azure Cosmos DB-konto. Dessutom kan du också skapa ytterligare Azure Cosmos DB-konton i flera regioner. Information om tillgänglighet för Azure Cosmos DB-tjänstregion finns i Azure-regioner.
Anpassning
I dag har moderna program komplexa vyer och upplevelser. Dessa är vanligtvis dynamiska, som tillgodoser användarpreferenser eller humör och varumärkesbehov. Därför måste program kunna hämta anpassade inställningar effektivt för att kunna återge gränssnittselement och upplevelser snabbt.
JSON, ett format som stöds av Azure Cosmos DB, är ett effektivt format för att representera användargränssnittslayoutdata eftersom det inte bara är enkelt, utan kan också tolkas enkelt av JavaScript. Azure Cosmos DB erbjuder justerbara konsekvensnivåer som tillåter snabba läsningar med skrivningar med låg svarstid. Därför är lagring av användargränssnittslayoutdata inklusive anpassade inställningar som JSON-dokument i Azure Cosmos DB ett effektivt sätt att hämta dessa data över tråden.
Nästa steg
För att komma igång med Azure Cosmos DB följer du våra snabbstarter som vägleder dig genom att skapa ett konto och komma igång med Azure Cosmos DB.
Om du vill läsa mer om kunder som använder Azure Cosmos DB kan du läsa sidan för kundfallsstudier .