Vad är Azure Cosmos DB för NoSQL

Slutförd

Låt oss börja med några definitioner och en snabb rundtur via Azure Cosmos DB för NoSQL. Den här översikten hjälper dig att se om Azure Cosmos DB kan passa bra för ditt arbete.

Vad är en NoSQL-databas?

Utvecklare behöver nya typer av databaser som kan hantera de unika utmaningarna med moderna appar. NoSQL-databaser har utformats för att tillgodose behov, till exempel:

  • Stora mängder data.
  • Data med många olika källor och formulär.
  • Dynamiska datascheman som lagrar olika typer av data.
  • Använda data med hög hastighet och/eller realtid.

Du definierar NoSQL-databaser med de gemensamma egenskaper som de delar i stället för en specifik formell definition. Dessa egenskaper omfattar:

  • Ett icke-relationellt datalager.
  • Utformas för att skala ut.
  • Framtvingar inte ett specifikt schema.

I allmänhet tillämpar NoSQL-databaser inte relationsbegränsningar eller låser data, vilket gör skrivningar snabba. Dessutom är de ofta utformade för horisontell skalning via horisontell partitionering eller partitionering, vilket gör att de kan upprätthålla höga prestanda oavsett storlek.

Det finns många NoSQL-datamodeller, men fyra breda datamodellfamiljer används ofta vid modellering av data i en NoSQL-databas:

Diagram som visar olika NoSQL-modeller, inklusive; ett nyckelvärde, dokument, diagram och kolumnfamiljearkiv.

Framöver fokuserar vi på den datamodell som stöds av Azure Cosmos DB for NoSQL: Dokumentdatamodellen.

Varför ska du använda en NoSQL-databas med dokumentdatamodellen?

Dokumentdatamodellen delar upp data i enskilda dokumententiteter . Ett dokument kan vara vilken strukturerad datatyp som helst, men JSON används ofta som dataformat. Azure Cosmos DB for NoSQL stöder JSON internt.

Bild av en hierarkisk dokumentdatamodell som innehåller överordnade entiteter, underordnade entiteter och rader som ansluter dem.

Ett dokument är en atomisk entitet och kan ha ett eget dataformulär, oavsett vad som lagras i andra dokument i samma databas. På grund av den här flexibiliteten finns det inget behov av ett fördefinierat schema som gör det enklare att snabbt skapa nya program. Dessutom möjliggör den här flexibiliteten scenarier där olika typer av data kan lagras tillsammans och där modeller kan utvecklas under programmets livslängd.

Vad är ett JSON-dokument?

JavaScript Object Notation, eller JSON, är ett enkelt dataformat. JSON skapades för att vara mycket kompatibelt med literal notationen för ett objekt på JavaScript-språket. Många ramverk, webbläsare och till och med databaser har stöd för JavaScript, vilket gör JSON till ett populärt format för överföring och lagring av data.

Här är ett exempel på ett JSON-dokument:

{
  "device": {
    "type": "mobile"
  },
  "sentTime": "2019-11-12T13:08:42",
  "spoolRefs": [
    "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
    "79e78fe2-93aa-4688-89db-a7278b034aa6"
  ]
}

Som du ser är JSON ett relativt läsbart dataformat som tydligt exponerar innehållet. JSON är också relativt enkelt att parsa och använda i JavaScript-program.

Vad är Azure Cosmos DB för NoSQL?

Azure Cosmos DB for NoSQL är en snabb NoSQL- och vektordatabastjänst som erbjuder omfattande frågor om olika data och stöder en ny generation generativa AI-program. Det hjälper till att leverera konfigurerbara och tillförlitliga prestanda, distribueras globalt och möjliggör snabb utveckling.

Bild av en världskarta med fyra globalt distribuerade noder som är anslutna via linjer.

NoSQL-API:et är kärnan eller det interna API:et för att arbeta med dokument. NoSQL-API:et stöder snabb och flexibel utveckling med JSON-dokument, ett frågespråk med en välbekant syntax och klientbibliotek för populära programmeringsspråk. Azure Cosmos DB innehåller också unika funktioner som vektorindexering och sökning, så att användarna kan skapa en ny typ av Generative AI-program över användarnas data som snabbt kan skalas effektivt.

Azure Cosmos DB för NoSQL har några fördelar, till exempel:

  • Branschledande vektordatabas med vektorindexering och sökning utformad för att hantera högdimensionella vektorer, vilket möjliggör effektiv och korrekt vektorsökning i valfri skala.
  • Garanterad hastighet i valfri skala även genom bursts – med omedelbar, obegränsad elasticitet, snabba läsningar och skrivningar med flera original, var som helst i världen.
  • Snabb, flexibel apputveckling med SDK:er för populära språk och ramverk som .NET, Java, Python, JavaScript och GO samt analys utan ETL (extrahera, transformera, läsa in).
  • Redo för verksamhetskritiska program med garanterad affärskontinuitet, 99,999 procent tillgänglighet och säkerhet i företagsklass.
  • Fullständigt hanterad och kostnadseffektiv med ett fullständigt serverlöst erbjudande samt omedelbar, automatisk och dynamisk skalning som svarar på programbehoven.

De här funktionerna gör Azure Cosmos DB idealiskt för modern programutveckling. Azure Cosmos DB för NoSQL passar särskilt bra för program som:

  • Upplev oförutsägbara toppar och dalar i trafiken
  • Generera massor av data
  • Behöver leverera användarupplevelser i realtid
  • Är beroende av för affärskontinuitet

Azure Cosmos DB for NoSQL kan lagra interna JSON-dokument med flexibelt schema. Data indexeras automatiskt och är tillgängligt för frågor med hjälp av en smak av SQL-frågespråket som är utformat för JSON-data. NoSQL-API:et kan nås med hjälp av SDK:er för populära ramverk som .NET, Python, Java, Node.js och GO