Azure Cosmos DB: Een NoSQL-clouddatabase op wereldschaal
Ontdek hoe Microsofts volledig beheerde, multimodeldatabase prestaties met lage latentie, elastische schaalbaarheid en real-time mogelijkheden levert voor AI, IoT, e-commerce en meer.
Naarmate apps wereldwijd opschalen, schieten traditionele databases vaak tekort. Azure Cosmos DB, Microsofts wereldwijd gedistribueerde, multimodeldatabase, biedt toegang met lage latentie, meerdere consistentiemodellen en naadloze schaalvergroting over regio’s.
Deze gids behandelt kernconcepten zoals containers, items en SQL-API’s—essentieel voor elke cloudengineer die wil beginnen met (en werken in) Azure en Cosmos DB. Je krijgt een praktische blik op de architectuur en waarom dit een favoriete keuze is voor cloud-native, bedrijfskritische apps.
Wat is Azure Cosmos DB?
Azure Cosmos DB is een volledig beheerde NoSQL-database op Microsoft Azure, gebouwd voor hoge beschikbaarheid, lage latentie en wereldwijde schaalbaarheid. Het ondersteunt meerdere datamodellen, waaronder document-, key-value-, graf- en column-family-modellen, wat het flexibel maakt voor uiteenlopende toepassingen.
De grootste kracht is wereldwijde distributie: met een paar klikken kun je data repliceren over Azure-regio’s voor snelle, lokale toegang.
Ontwikkelaars kunnen ook kiezen uit verschillende consistentiemodellen om prestaties en nauwkeurigheid in balans te brengen. Als je nieuw bent in de Azure-wereld, raad ik je sterk aan de volgende beginnersgids voor Azure te lezen.
Waarom Azure Cosmos DB gebruiken?
Azure Cosmos DB biedt een krachtige set functies voor het bouwen van schaalbare, high-performance applicaties:
Afbeelding door auteur. Waarom Cosmos DB gebruiken
Wereldwijde distributie met lage latentie: Repliceert automatisch data over Azure-regio’s en zorgt voor snelle, lokale toegang voor gebruikers wereldwijd.
Meerdere consistentieniveaus: Kies uit vijf modellen—Strong, Bounded Staleness, Session, Consistent Prefix en Eventual—om consistentie, beschikbaarheid en prestaties te balanceren.
Multimodelondersteuning: Werk met document (JSON), key-value-, graf- en column-family-datamodellen—geschikt voor uiteenlopende workloads.
Hoge beschikbaarheid met SLA’s: Gedekt door SLA’s voor lees- en schrijfbewerkingen, ideaal voor bedrijfskritische systemen.
Elastische schaalbaarheid: Schaal de throughput automatisch op basis van vraag, zonder downtime, en behoud responsiviteit bij wisselende belasting.
Samen vormen deze mogelijkheden een sterk fundament voor wereldwijd gedistribueerde, cloud-native applicaties die real-time prestaties en veerkracht vereisen.
Use-cases voor Azure Cosmos DB
Azure Cosmos DB is een veelzijdige keuze voor real-time, schaalbare applicaties in veel sectoren. De architectuur met lage latentie en wereldwijde distributie maakt het ideaal voor scenario’s die hoge beschikbaarheid en snelle data-toegang vereisen. Enkele belangrijke use-cases:
AI & machine learning: Integreert met real-time AI-pijplijnen en ondersteunt vector search, voor slimme applicaties zoals aanbevelingssystemen en semantisch zoeken.
E-commerce & retail: Levert gepersonaliseerde winkelervaringen door gebruikersgedrag vast te leggen en direct aanbevelingen te tonen. Wereldwijde distributie zorgt voor nauwkeurige, snelle toegang tot voorraadgegevens in alle regio’s.
Gaming & sociale media: Verwerkt real-time spelersstatistieken, chat en leaderboards met snelle lees-/schrijfprestaties. Consistentie op sessieniveau zorgt voor soepele ervaringen voor gebruikers wereldwijd.
IoT en tijdreeksdata: Neemt efficiënt grote hoeveelheden sensor- en telemetriedata op en verwerkt deze. Ideaal voor voorspellend onderhoud, anomaliedetectie en real-time monitoring.
Van het aandrijven van webshops tot het mogelijk maken van intelligente, AI-gedreven apps: Cosmos DB levert de snelheid, schaal en flexibiliteit die moderne cloud-native oplossingen nodig hebben. Wil je beter begrijpen wat je met Cosmos DB en Azure kunt doen? Bekijk dan deze gids voor Microsofts cloudaanbod.
Cosmos DB-functies en mogelijkheden
In deze sectie verkennen we de kernmogelijkheden waarmee ontwikkelaars snelle, veerkrachtige en slimme applicaties kunnen bouwen, inclusief strategieën voor datamodellering.
Datamodellering en indexering
Azure Cosmos DB laat containers JSON-documenten opslaan zonder vooraf gedefinieerd schema, waardoor je datamodel eenvoudig kunt aanpassen en laten evolueren.
Indexering in Cosmos DB is standaard automatisch: elk veld wordt geïndexeerd voor snelle queries out-of-the-box. Dit kan echter leiden tot een hoger Request Unit (RU)-verbruik, vooral bij write-zware workloads. Om te optimaliseren kunnen ontwikkelaars aangepaste indexeringspolicy’s definiëren. Daarmee kun je automatische indexering uitschakelen waar die niet nodig is, paden opnemen voor velden die je wél wilt indexeren en velden uitsluiten die niet relevant zijn.
Cosmos DB bevat ook een Change Feed-functie, die inserts en updates in real time vastlegt—ideaal voor event-driven systemen, het triggeren van workflows of het downstream streamen van data. Een andere nuttige functie is Time-to-Live (TTL), waarmee documenten automatisch worden verwijderd na een opgegeven periode.
Partitionering en prestatieoptimalisatie
Voor write-zware workloads moeten partitiesleutels een hoge cardinaliteit en een uniforme verdeling hebben, zoals gebruikers-ID’s, tijdstempels of geografische regio’s, om hot partitions en throttling te voorkomen. In read-zware scenario’s is het vaak effectiever om gerelateerde data te groeperen met partitiesleutels zoals klant-ID’s, zodat bereik- of puntqueries efficiënt kunnen worden uitgevoerd. Slechte partitionering kan leiden tot ongelijke dataverdeling en prestatieverlies. Aangezien elke logische partitie beperkt is tot 20 GB, is het belangrijk een partitiestrategie te ontwerpen die voorkomt dat één sleutel overbelast raakt.
Queryprestaties kun je verder verbeteren door toegangspatronen te ontwerpen die één partitie targeten; die zijn sneller en zuiniger. Cross-partition-queries worden ondersteund, maar leiden doorgaans tot hogere latentie en meer RU-verbruik omdat meerdere partities worden gescand. Om querykosten te verlagen, moeten ontwikkelaars indexeringsstrategieën benutten (ik denk aan samengestelde indexen) en caching overwegen voor vaak geraadpleegde data.
Qua throughput kun je in Cosmos DB Request Units configureren op container- of databaseniveau. Dit instelbare throughputmodel helpt ervoor te zorgen dat je app prestaties behoudt, zelfs wanneer je met een piekbelasting te maken hebt.
Consistencymodellen en dataduurzaamheid
Azure Cosmos DB biedt vijf instelbare consistentieniveaus. Dat gaat verder dan de gebruikelijke eventual of strong consistency in de meeste niet-relationele databases.
Op het zwakste niveau biedt eventual consistency de snelste en meest beschikbare optie, maar kan verouderde of niet-op-volgorde staande data teruggeven terwijl replica’s geleidelijk synchroniseren. Iets sterker is consistent prefix, dat garandeert dat reads de volgorde van writes weerspiegelen, maar niet per se de meest recente, wat geschikt is wanneer de volgorde belangrijker is dan versheid.
De standaard- en in veel applicaties meest praktische instelling is session consistency, die garandeert dat een client binnen een sessie zijn eigen writes kan lezen. Bounded staleness gaat een stap verder door een gecontroleerde vertraging tussen writes en reads toe te staan, gedefinieerd door een tijdsinterval (T) of een aantal versies (K). In een enkele regio kan de vertraging bijvoorbeeld worden begrensd op 5 seconden of 10 versies, terwijl dit in een multiregio-opzet kan oplopen tot 5 minuten of 100.000 versies.
Aan het sterkste uiteinde staat strong consistency, die garandeert dat alle reads de laatst gecommitte write over alle replica’s weerspiegelen. Dit niveau biedt de strengste garanties, voorkomt verouderde, vuile of fantoom-reads en lijkt sterk op het gedrag van traditionele ACID-conforme systemen.
Schrijven in meerdere regio’s en wereldwijde beschikbaarheid
Een van de opvallendste functies van Azure Cosmos DB is ondersteuning voor writes in meerdere regio’s via actieve-actieve (multi-master) replicatie. Hierdoor kunnen applicaties tegelijkertijd schrijfbewerkingen uitvoeren in meerdere regio’s, wat de latentie voor wereldwijde gebruikers aanzienlijk verlaagt.
Cosmos DB bevat ook automatische wereldwijde replicatie, zodat data wordt gesynchroniseerd over Azure-regio’s. Bij een regionale storing triggert het systeem automatische failover naar de eerstvolgende beschikbare regio.
Hoewel Cosmos DB de mechaniek van sharding en datadistributie automatisch afhandelt, moeten ontwikkelaars nog steeds een geschikte partitiesleutel kiezen voor een gelijkmatige verdeling en effectieve horizontale schaalvergroting. Deze keuze is extra belangrijk voor grote datasets die de grens van 20 GB per logische partitie kunnen overschrijden. Vroegtijdig plannen van partitionering helpt knelpunten en prestatieproblemen te voorkomen naarmate de applicatie groeit.
Cosmos DB-prijzen en kostenbeheer
De prijsstelling van Azure Cosmos DB is gebaseerd op Request Units (RU’s), die de middelen weerspiegelen die worden gebruikt voor reads, writes en queries. Een eenvoudige point read kost doorgaans 1 RU.
Prijsmodellen
Gereserveerde throughput: Reserveer RU’s voor voorspelbare workloads, afgerekend per throughput en opslag.
Serverless: Pay-per-use-model, ideaal voor sporadische of laag-verkeer workloads.
Kostenoptimalisatie
Gebruik de Cosmos DB Profiler om query-efficiëntie te monitoren en te optimaliseren.
Stem indexering en partitionering af om RU-verbruik te verlagen.
Volg uitgaven met Azure Cost Management en stel gebruiksalerts in.
Kies het juiste model; het optimaliseren van je ontwerp kan de kosten aanzienlijk verlagen.
Aan de slag met Azure Cosmos DB
Voordat je met Azure Cosmos DB werkt, maak je een account aan, kies je je configuratie en maak je je eerste database en container. Deze stapsgewijze gids loodst je door het proces met de Azure Portal.
Stap 1: Meld je aan voor een Azure-account en open Cosmos DB via de Azure Portal
Begin met inloggen op de Azure Portal. Typ in de wereldwijde zoekse alboven “Azure Cosmos DB” en selecteer het resultaat. Klik in het Cosmos DB-blade op “Create” om je nieuwe instantie te configureren.
Screenshot van de Azure-hoofdpagina
Screenshot van de Azure Cosmos DB-hoofdpagina
Stap 2: Kies je API en configureer de basis
Selecteer Azure Cosmos DB for NoSQL als je API-model (Core SQL API).
Screenshot van Azure Cosmos DB. Een instantie maken
Vul vervolgens in het tabblad Basics je configuratiegegevens in, waaronder je Azure-abonnement, een resourcegroep (nieuw of bestaand), een wereldwijd unieke accountnaam en een favoriete Azure-regio. Availability Zones kun je uitgeschakeld laten. Cosmos DB biedt twee throughput-modi—provisioned throughput voor voorspelbare workloads en serverless voor variabele of laag-verkeer scenario’s. Kies tijdens de setup de modus die het best bij je toepassing past. Deze opties kun je later aanpassen naarmate je workload evolueert.
Screenshot van Azure Cosmos DB. De details invullen
Klik na voltooiing op Review + Create en bevestig met Create om de deployment te starten.
Screenshot van Azure Cosmos DB. Onze instantie valideren
Wanneer de deployment is voltooid, klik je op Go to resource om je nieuwe Cosmos DB-account te openen.
Screenshot van Azure Cosmos DB. Informatie over de zojuist gemaakte resource
Stap 3: Maak een database en container
Navigeer naar Data Explorer vanuit het menu van het Cosmos DB-account.
Screenshot van Azure Cosmos DB. Onze data verkennen
Klik op NewContainer om het configuratievenster te openen.
Screenshot van Azure Cosmos DB. Een nieuwe container maken
Definieer een nieuwe databasenaam en een containernaam en specificeer vooral een partitiesleutel om een gelijkmatige dataverdeling en optimale prestaties te garanderen. Klik op OK om de database en container te maken.
Screenshot van Azure Cosmos DB. De kenmerken van onze container invullen.
Na het aanmaken zie je beide in de hiërarchie van Data Explorer.
Screenshot van Azure Cosmos DB. De datahiërarchie controleren.
Stap 4: Gebruik Data Explorer voor query’s en beheer van databaseobjecten
Vouw binnen de nieuw gemaakte container (employees) de boomstructuur uit en selecteer Items.
Screenshot van Azure Cosmos DB. De container controleren
Klik op New Item.
Screenshot van Azure Cosmos DB. Een nieuw item maken
Voeg de volgende voorbeeld-JSON in en klik vervolgens op Save:
{"id":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb","name":{"first":"Josep","last":"Ferrer"},"email":"<[email protected]>","department":{"name":"Data Science"}}Mogelijk gemaakt door
Om een query te testen, selecteer je New SQL Query in het menu en voer je de volgende NoSQL-query in, die hoofdletterongevoelig zoekt naar medewerkers in de afdeling Logistics.
Screenshot van Azure Cosmos DB. De container controleren.
SELECTVALUE {
"name": CONCAT(e.name.last," ", e.name.first),"department": e.department.name,"emailAddresses": [
e.email
]
}
FROM
employees e
WHERE
STRINGEQUALS(e.department.name,"logistics",true)Mogelijk gemaakt door
Klik nu om de query uit te voeren. Deze geeft gestructureerde output terug:
Hoge beschikbaarheid: Ingebouwde replicatie over meerdere regio’s zorgt voor wereldwijde betrouwbaarheid en uptime.
Schemaflexibiliteit: Ondersteunt schemaloze JSON met automatische indexering voor snelle queries.
AI-integratie: Native ondersteuning voor vector search en real-time AI-scenario’s.
Uitgebreide API-ondersteuning: Compatibel met SQL-, MongoDB-, Cassandra-, Gremlin- en Table-API’s.
Volledig beheerde service: Regelt schalen, patchen en infrastructuur en verlaagt zo de operationele overhead.
Nadelen
Beperkte SQL-functies: Mist volledige JOIN- en GROUP BY-mogelijkheden zoals in relationele databases.
Kosten op schaal: Kan duur worden bij workloads met hoge throughput als er niet wordt geoptimaliseerd.
Conclusie
Azure Cosmos DB is een robuuste, wereldwijd gedistribueerde NoSQL-database voor moderne, cloud-native applicaties. Met multimodelondersteuning, actieve-actieve replicatie en instelbare consistentieniveaus blinkt het uit in scenario’s die hoge beschikbaarheid, real-time responsiviteit en elastische schaalbaarheid vereisen, zoals AI-systemen, e-commerceplatforms en IoT-oplossingen.
De volledig beheerde infrastructuur, flexibele datamodellering en rijke API-ecosysteem maken het een sterke keuze voor ontwikkelaars en architecten. Teams moeten wel rekening houden met mogelijke beperkingen, zoals hiaten in SQL-functies en kosten op schaal, bij het plannen van productie-workloads.
Als je je skills verder wilt verbeteren, zijn dit nog een paar goede bronnen:
Josep is een freelance Data Scientist die zich richt op Europese projecten, met expertise in dataopslag, -verwerking, geavanceerde analyses en impactvolle data storytelling.
Als docent geeft hij Big Data in de masteropleiding aan de Universiteit van Navarra en deelt hij inzichten via artikelen op platforms als Medium, KDNuggets en DataCamp. Josep schrijft ook over Data en Tech in zijn nieuwsbrief Databites (databites.tech).
Hij heeft een bachelor in Engineering Physics van de Polytechnische Universiteit van Catalonië en een master in Intelligent Interactive Systems van de Pompeu Fabra-universiteit.
Veelgestelde vragen
Wat is Azure Cosmos DB?⌄
Azure Cosmos DB is een volledig beheerde, wereldwijd gedistribueerde NoSQL-databaseservice van Microsoft die meerdere datamodellen ondersteunt en is geoptimaliseerd voor applicaties met lage latentie en hoge beschikbaarheid.
Waarom zouden ontwikkelaars Cosmos DB gebruiken?⌄
Ontwikkelaars kiezen voor Cosmos DB vanwege multi-regioreplicatie, elastische schaalbaarheid, vijf instelbare consistentiemodellen en ondersteuning voor meerdere API’s en datamodellen—ideaal voor moderne, cloud-native applicaties.
Wat zijn gangbare use-cases voor Cosmos DB?⌄
Cosmos DB wordt gebruikt in AI en machine learning (bijv. vector search), e-commerce en retail (real-time personalisatie), gaming en sociale media (interacties met lage latentie) en IoT (real-time telemetrie en analytics).
Hoe gaat Cosmos DB om met schaalbaarheid en prestaties?⌄
Cosmos DB gebruikt gepartitioneerde containers, instelbare throughput via Request Units (RU’s) en intelligente datadistributie om horizontaal te schalen en high-performance query’s te ondersteunen.
Wat zijn de belangrijkste nadelen van Cosmos DB?⌄
Hoewel krachtig, kan Cosmos DB duur worden bij hoge throughput als er niet wordt geoptimaliseerd, en het mist volledige SQL-ondersteuning voor complexe query’s zoals multitable-joins of geavanceerde GROUP BY-operaties.
Wat gebeurt er met mijn data in Azure Cosmos DB tijdens een regionale storing?⌄
Bij een regionale storing wordt de Recovery Point Objective (RPO) van Azure Cosmos DB—oftewel hoeveel data mogelijk verloren gaat—bepaald door je consistentiemodel en je deploymentconfiguratie:
Strong consistency garandeert geen dataverlies (RPO = 0).
Andere consistentiemodellen (zoals session, bounded staleness of eventual) kunnen minimale vertraging of versieverschillen toelaten.
Dit scala aan opties stelt je in staat het gedrag van Cosmos DB af te stemmen op de behoeften van je app—of je nu nauwkeurigheid, snelheid of een balans van beide belangrijker vindt.
Hoe modelleer ik hiërarchische data in Azure Cosmos DB?⌄
Voor het modelleren van hiërarchische data zoals mapstructuren of categoriebomen raadt Cosmos DB aan om de documentstructuur te flattenen. Gebruik velden zoals parentId om relaties weer te geven in plaats van geneste documenten of complexe joins.
Dit ontwerp verbetert de query-efficiëntie en schaalbaarheid, waardoor het beheren en ophalen van gerelateerde data in gedistribueerde omgevingen eenvoudiger wordt.
Welk consistentiemodel moet ik gebruiken in een multiregio Cosmos DB-setup?⌄
Azure Cosmos DB ondersteunt alle vijf consistentiemodellen in deployments met meerdere regio’s, wat flexibiliteit biedt om prestaties en datanauwkeurigheid in balans te brengen.
Session consistency is vaak ideaal—het biedt read-your-own-write-garanties, lage latentie en minimale overhead.
Voor strengere of soepelere garanties kun je kiezen voor strong, bounded staleness, consistent prefix of eventual consistency.
Deze veelzijdigheid maakt het eenvoudiger om Cosmos DB af te stemmen op de unieke behoeften van je wereldwijd gedistribueerde applicaties.
Naarmate apps wereldwijd opschalen, schieten traditionele databases vaak tekort. Azure Cosmos DB, Microsofts wereldwijd gedistribueerde, multimodeldatabase, biedt toegang met lage latentie, meerdere consistentiemodellen en naadloze schaalvergroting over regio’s.
Deze gids behandelt kernconcepten zoals containers, items en SQL-API’s—essentieel voor elke cloudengineer die wil beginnen met (en werken in) Azure en Cosmos DB. Je krijgt een praktische blik op de architectuur en waarom dit een favoriete keuze is voor cloud-native, bedrijfskritische apps.
Wat is Azure Cosmos DB?
Azure Cosmos DB is een volledig beheerde NoSQL-database op Microsoft Azure, gebouwd voor hoge beschikbaarheid, lage latentie en wereldwijde schaalbaarheid. Het ondersteunt meerdere datamodellen, waaronder document-, key-value-, graf- en column-family-modellen, wat het flexibel maakt voor uiteenlopende toepassingen.
De grootste kracht is wereldwijde distributie: met een paar klikken kun je data repliceren over Azure-regio’s voor snelle, lokale toegang.
Ontwikkelaars kunnen ook kiezen uit verschillende consistentiemodellen om prestaties en nauwkeurigheid in balans te brengen. Als je nieuw bent in de Azure-wereld, raad ik je sterk aan de volgende beginnersgids voor Azure te lezen.
Waarom Azure Cosmos DB gebruiken?
Azure Cosmos DB biedt een krachtige set functies voor het bouwen van schaalbare, high-performance applicaties:
Afbeelding door auteur. Waarom Cosmos DB gebruiken
Samen vormen deze mogelijkheden een sterk fundament voor wereldwijd gedistribueerde, cloud-native applicaties die real-time prestaties en veerkracht vereisen.
Use-cases voor Azure Cosmos DB
Azure Cosmos DB is een veelzijdige keuze voor real-time, schaalbare applicaties in veel sectoren. De architectuur met lage latentie en wereldwijde distributie maakt het ideaal voor scenario’s die hoge beschikbaarheid en snelle data-toegang vereisen. Enkele belangrijke use-cases:
Van het aandrijven van webshops tot het mogelijk maken van intelligente, AI-gedreven apps: Cosmos DB levert de snelheid, schaal en flexibiliteit die moderne cloud-native oplossingen nodig hebben. Wil je beter begrijpen wat je met Cosmos DB en Azure kunt doen? Bekijk dan deze gids voor Microsofts cloudaanbod.
Cosmos DB-functies en mogelijkheden
In deze sectie verkennen we de kernmogelijkheden waarmee ontwikkelaars snelle, veerkrachtige en slimme applicaties kunnen bouwen, inclusief strategieën voor datamodellering.
Datamodellering en indexering
Azure Cosmos DB laat containers JSON-documenten opslaan zonder vooraf gedefinieerd schema, waardoor je datamodel eenvoudig kunt aanpassen en laten evolueren.
Indexering in Cosmos DB is standaard automatisch: elk veld wordt geïndexeerd voor snelle queries out-of-the-box. Dit kan echter leiden tot een hoger Request Unit (RU)-verbruik, vooral bij write-zware workloads. Om te optimaliseren kunnen ontwikkelaars aangepaste indexeringspolicy’s definiëren. Daarmee kun je automatische indexering uitschakelen waar die niet nodig is, paden opnemen voor velden die je wél wilt indexeren en velden uitsluiten die niet relevant zijn.
Cosmos DB bevat ook een Change Feed-functie, die inserts en updates in real time vastlegt—ideaal voor event-driven systemen, het triggeren van workflows of het downstream streamen van data. Een andere nuttige functie is Time-to-Live (TTL), waarmee documenten automatisch worden verwijderd na een opgegeven periode.
Partitionering en prestatieoptimalisatie
Voor write-zware workloads moeten partitiesleutels een hoge cardinaliteit en een uniforme verdeling hebben, zoals gebruikers-ID’s, tijdstempels of geografische regio’s, om hot partitions en throttling te voorkomen. In read-zware scenario’s is het vaak effectiever om gerelateerde data te groeperen met partitiesleutels zoals klant-ID’s, zodat bereik- of puntqueries efficiënt kunnen worden uitgevoerd. Slechte partitionering kan leiden tot ongelijke dataverdeling en prestatieverlies. Aangezien elke logische partitie beperkt is tot 20 GB, is het belangrijk een partitiestrategie te ontwerpen die voorkomt dat één sleutel overbelast raakt.
Queryprestaties kun je verder verbeteren door toegangspatronen te ontwerpen die één partitie targeten; die zijn sneller en zuiniger. Cross-partition-queries worden ondersteund, maar leiden doorgaans tot hogere latentie en meer RU-verbruik omdat meerdere partities worden gescand. Om querykosten te verlagen, moeten ontwikkelaars indexeringsstrategieën benutten (ik denk aan samengestelde indexen) en caching overwegen voor vaak geraadpleegde data.
Qua throughput kun je in Cosmos DB Request Units configureren op container- of databaseniveau. Dit instelbare throughputmodel helpt ervoor te zorgen dat je app prestaties behoudt, zelfs wanneer je met een piekbelasting te maken hebt.
Consistencymodellen en dataduurzaamheid
Azure Cosmos DB biedt vijf instelbare consistentieniveaus. Dat gaat verder dan de gebruikelijke eventual of strong consistency in de meeste niet-relationele databases.
Op het zwakste niveau biedt eventual consistency de snelste en meest beschikbare optie, maar kan verouderde of niet-op-volgorde staande data teruggeven terwijl replica’s geleidelijk synchroniseren. Iets sterker is consistent prefix, dat garandeert dat reads de volgorde van writes weerspiegelen, maar niet per se de meest recente, wat geschikt is wanneer de volgorde belangrijker is dan versheid.
De standaard- en in veel applicaties meest praktische instelling is session consistency, die garandeert dat een client binnen een sessie zijn eigen writes kan lezen. Bounded staleness gaat een stap verder door een gecontroleerde vertraging tussen writes en reads toe te staan, gedefinieerd door een tijdsinterval (T) of een aantal versies (K). In een enkele regio kan de vertraging bijvoorbeeld worden begrensd op 5 seconden of 10 versies, terwijl dit in een multiregio-opzet kan oplopen tot 5 minuten of 100.000 versies.
Aan het sterkste uiteinde staat strong consistency, die garandeert dat alle reads de laatst gecommitte write over alle replica’s weerspiegelen. Dit niveau biedt de strengste garanties, voorkomt verouderde, vuile of fantoom-reads en lijkt sterk op het gedrag van traditionele ACID-conforme systemen.
Schrijven in meerdere regio’s en wereldwijde beschikbaarheid
Een van de opvallendste functies van Azure Cosmos DB is ondersteuning voor writes in meerdere regio’s via actieve-actieve (multi-master) replicatie. Hierdoor kunnen applicaties tegelijkertijd schrijfbewerkingen uitvoeren in meerdere regio’s, wat de latentie voor wereldwijde gebruikers aanzienlijk verlaagt.
Cosmos DB bevat ook automatische wereldwijde replicatie, zodat data wordt gesynchroniseerd over Azure-regio’s. Bij een regionale storing triggert het systeem automatische failover naar de eerstvolgende beschikbare regio.
Hoewel Cosmos DB de mechaniek van sharding en datadistributie automatisch afhandelt, moeten ontwikkelaars nog steeds een geschikte partitiesleutel kiezen voor een gelijkmatige verdeling en effectieve horizontale schaalvergroting. Deze keuze is extra belangrijk voor grote datasets die de grens van 20 GB per logische partitie kunnen overschrijden. Vroegtijdig plannen van partitionering helpt knelpunten en prestatieproblemen te voorkomen naarmate de applicatie groeit.
Cosmos DB-prijzen en kostenbeheer
De prijsstelling van Azure Cosmos DB is gebaseerd op Request Units (RU’s), die de middelen weerspiegelen die worden gebruikt voor reads, writes en queries. Een eenvoudige point read kost doorgaans 1 RU.
Prijsmodellen
Kostenoptimalisatie
Aan de slag met Azure Cosmos DB
Voordat je met Azure Cosmos DB werkt, maak je een account aan, kies je je configuratie en maak je je eerste database en container. Deze stapsgewijze gids loodst je door het proces met de Azure Portal.
Stap 1: Meld je aan voor een Azure-account en open Cosmos DB via de Azure Portal
Begin met inloggen op de Azure Portal. Typ in de wereldwijde zoekse alboven “Azure Cosmos DB” en selecteer het resultaat. Klik in het Cosmos DB-blade op “Create” om je nieuwe instantie te configureren.
Screenshot van de Azure-hoofdpagina
Screenshot van de Azure Cosmos DB-hoofdpagina
Stap 2: Kies je API en configureer de basis
Selecteer Azure Cosmos DB for NoSQL als je API-model (Core SQL API).
Screenshot van Azure Cosmos DB. Een instantie maken
Vul vervolgens in het tabblad Basics je configuratiegegevens in, waaronder je Azure-abonnement, een resourcegroep (nieuw of bestaand), een wereldwijd unieke accountnaam en een favoriete Azure-regio. Availability Zones kun je uitgeschakeld laten. Cosmos DB biedt twee throughput-modi—provisioned throughput voor voorspelbare workloads en serverless voor variabele of laag-verkeer scenario’s. Kies tijdens de setup de modus die het best bij je toepassing past. Deze opties kun je later aanpassen naarmate je workload evolueert.
Screenshot van Azure Cosmos DB. De details invullen
Klik na voltooiing op Review + Create en bevestig met Create om de deployment te starten.
Screenshot van Azure Cosmos DB. Onze instantie valideren
Wanneer de deployment is voltooid, klik je op Go to resource om je nieuwe Cosmos DB-account te openen.
Screenshot van Azure Cosmos DB. Informatie over de zojuist gemaakte resource
Stap 3: Maak een database en container
Navigeer naar Data Explorer vanuit het menu van het Cosmos DB-account.
Screenshot van Azure Cosmos DB. Onze data verkennen
Klik op New Container om het configuratievenster te openen.
Screenshot van Azure Cosmos DB. Een nieuwe container maken
Definieer een nieuwe databasenaam en een containernaam en specificeer vooral een partitiesleutel om een gelijkmatige dataverdeling en optimale prestaties te garanderen. Klik op OK om de database en container te maken.
Screenshot van Azure Cosmos DB. De kenmerken van onze container invullen.
Na het aanmaken zie je beide in de hiërarchie van Data Explorer.
Screenshot van Azure Cosmos DB. De datahiërarchie controleren.
Stap 4: Gebruik Data Explorer voor query’s en beheer van databaseobjecten
Vouw binnen de nieuw gemaakte container (employees) de boomstructuur uit en selecteer Items.
Screenshot van Azure Cosmos DB. De container controleren
Klik op New Item.
Screenshot van Azure Cosmos DB. Een nieuw item maken
Voeg de volgende voorbeeld-JSON in en klik vervolgens op Save:
Om een query te testen, selecteer je New SQL Query in het menu en voer je de volgende NoSQL-query in, die hoofdletterongevoelig zoekt naar medewerkers in de afdeling
Logistics.Screenshot van Azure Cosmos DB. De container controleren.
Klik nu om de query uit te voeren. Deze geeft gestructureerde output terug:
En dat is alles!
Voordelen en nadelen van Cosmos DB
Voordelen
Nadelen
Conclusie
Azure Cosmos DB is een robuuste, wereldwijd gedistribueerde NoSQL-database voor moderne, cloud-native applicaties. Met multimodelondersteuning, actieve-actieve replicatie en instelbare consistentieniveaus blinkt het uit in scenario’s die hoge beschikbaarheid, real-time responsiviteit en elastische schaalbaarheid vereisen, zoals AI-systemen, e-commerceplatforms en IoT-oplossingen.
De volledig beheerde infrastructuur, flexibele datamodellering en rijke API-ecosysteem maken het een sterke keuze voor ontwikkelaars en architecten. Teams moeten wel rekening houden met mogelijke beperkingen, zoals hiaten in SQL-functies en kosten op schaal, bij het plannen van productie-workloads.
Als je je skills verder wilt verbeteren, zijn dit nog een paar goede bronnen: