Wat is Azure Cosmos DB voor NoSQL?

Voltooid

Laten we beginnen met een paar definities en een korte rondleiding door Azure Cosmos DB voor NoSQL. In dit overzicht kunt u zien of Azure Cosmos DB geschikt is voor uw werk.

Wat is een NoSQL-database?

Ontwikkelaars hebben nieuwe soorten databases nodig die de unieke uitdagingen van moderne apps kunnen aanpakken. NoSQL-databases zijn ontworpen om tegemoet te komen aan behoeften zoals:

  • Grote hoeveelheden gegevens.
  • Gegevens met veel verschillende bronnen en formulieren.
  • Dynamische gegevensschema's waarmee verschillende typen gegevens worden opgeslagen.
  • Hoge snelheid en/of realtime gegevens gebruiken.

U definieert NoSQL-databases op basis van de algemene kenmerken die ze delen in plaats van door een specifieke formele definitie. Deze kenmerken zijn onder andere:

  • Een niet-relationeel gegevensarchief.
  • Ontworpen om uit te schalen.
  • Het afdwingen van een specifiek schema wordt niet afgedwongen.

Over het algemeen dwingen NoSQL-databases geen relationele beperkingen af of worden vergrendelingen op gegevens geplaatst, waardoor schrijfbewerkingen snel worden gemaakt. Ze zijn ook vaak ontworpen om horizontaal te schalen via sharding of partitionering, waardoor ze hoge prestaties kunnen onderhouden, ongeacht de grootte.

Hoewel er veel NoSQL-gegevensmodellen zijn, worden vier algemene gegevensmodelfamilies vaak gebruikt bij het modelleren van gegevens in een NoSQL-database:

Diagram met verschillende NoSQL-modellen, waaronder; een sleutelwaarde, document, grafiek en kolomfamiliearchief.

Verder richten we ons op het gegevensmodel dat wordt ondersteund door Azure Cosmos DB for NoSQL: het documentgegevensmodel .

Waarom een NoSQL-database gebruiken met het documentgegevensmodel?

In het documentgegevensmodel worden gegevens opgesplitst in afzonderlijke documententiteiten . Een document kan elk gestructureerd gegevenstype zijn, maar JSON wordt vaak gebruikt als de gegevensindeling. Azure Cosmos DB for NoSQL biedt systeemeigen ondersteuning voor JSON.

Afbeelding van een hiërarchisch documentgegevensmodel met bovenliggende entiteiten, onderliggende entiteiten en lijnen die deze verbinden.

Een document is een atomische entiteit en kan een eigen gegevensvorm hebben, ongeacht wat in andere documenten in dezelfde database is opgeslagen. Vanwege deze flexibiliteit is er geen vooraf gedefinieerd schema nodig, waardoor het eenvoudiger is om snel nieuwe toepassingen te bouwen. Bovendien biedt deze flexibiliteit scenario's waarin verschillende typen gegevens samen kunnen worden opgeslagen en waar modellen zich kunnen ontwikkelen gedurende de levensduur van een toepassing.

Wat is een JSON-document?

JavaScript Object Notation of JSON is een lichtgewicht gegevensindeling. JSON is gebouwd om zeer compatibel te zijn met de letterlijke notatie van een object in de JavaScript-taal. Veel frameworks, browsers en zelfs databases bieden ondersteuning voor JavaScript, waardoor JSON een populaire indeling wordt voor het verzenden en opslaan van gegevens.

Hier volgt een voorbeeld van een JSON-document:

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

Zoals u ziet, is JSON een relatief leesbare gegevensindeling waarmee de inhoud duidelijk zichtbaar wordt. JSON is ook relatief eenvoudig te parseren en te gebruiken in JavaScript-toepassingen.

Wat is Azure Cosmos DB voor NoSQL?

Azure Cosmos DB for NoSQL is een snelle NoSQL-databaseservice die uitgebreide query's biedt voor diverse gegevens. Het helpt configureerbare en betrouwbare prestaties te leveren, wordt wereldwijd gedistribueerd en maakt snelle ontwikkeling mogelijk.

Afbeelding van een wereldkaart met vier wereldwijd gedistribueerde knooppunten die zijn verbonden via lijnen.

De NoSQL-API is de kern- of systeemeigen API voor het werken met documenten. De NoSQL-API ondersteunt snelle, flexibele ontwikkeling met behulp van JSON-documenten, een querytaal met een vertrouwde syntaxis en clientbibliotheken voor populaire programmeertalen. Azure Cosmos DB biedt andere API's, zoals Mongo, Gremlin en Cassandra. Deze API's bieden compatibiliteit met elk database-ecosysteem, terwijl ze nog steeds worden toegewezen aan dezelfde onderliggende infrastructuur van de systeemeigen NoSQL-API.

Azure Cosmos DB for NoSQL heeft enkele voordelen, zoals:

  • Gegarandeerde snelheid op elke schaal, zelfs door bursts, met onmiddellijke, onbeperkte elasticiteit, snelle leesbewerkingen en schrijfbewerkingen met meerdere masters, overal ter wereld.
  • Snelle, flexibele app-ontwikkeling met SDK's voor populaire talen, een systeemeigen NoSQL-API, samen met API's voor MongoDB, Cassandra en Gremlin, en no-ETL-analyses (extract, transform, load).
  • Klaar voor bedrijfskritieke toepassingen met gegarandeerde bedrijfscontinuïteit, beschikbaarheid van 99,999 procent en beveiliging op bedrijfsniveau.
  • Volledig beheerde en rendabele serverloze database met direct, automatisch schalen dat reageert op toepassingsbehoeften.

Deze mogelijkheden maken Azure Cosmos DB ideaal geschikt voor moderne toepassingsontwikkeling. Azure Cosmos DB for NoSQL is vooral geschikt voor toepassingen die:

  • Onvoorspelbare pieken en dips in verkeer ervaren
  • Veel gegevens genereren
  • Moet realtime gebruikerservaringen leveren
  • Zijn afhankelijk van bedrijfscontinuïteit

De Azure Cosmos DB for NoSQL kan systeemeigen JSON-documenten willekeurig opslaan met een flexibel schema. Gegevens worden automatisch geïndexeerd en zijn beschikbaar voor query's met behulp van de SQL-querytaal die is ontworpen voor JSON-gegevens. De NoSQL-API kan worden geopend met behulp van SDK's voor populaire frameworks zoals .NET, Python, Java en Node.js.