Azure Cosmos DB-resourcemodel

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

Azure Cosmos DB is een volledig beheerd Platform as a Service (PaaS). Als u Azure Cosmos DB wilt gebruiken, moet u in eerste instantie een Azure Cosmos-account maken in uw Azure-resourcegroep in het vereiste abonnement, en vervolgens databases, containers en items daar onder. In dit artikel worden de Azure Cosmos DB resourcemodel en verschillende entiteiten in de hiërarchie van het resourcemodel beschreven.

Het Azure Cosmos-account is de fundamentele eenheid van wereldwijde distributie en hoge beschikbaarheid. Uw Azure Cosmos-account bevat een unieke DNS-naam en u kunt een account beheren met behulp van de Azure Portal of de Azure CLI, of met behulp van andere taalspecifieke SDK's. Zie Uw Azure Cosmos-account beheren voor meer informatie. Voor het wereldwijd distribueren van uw gegevens en doorvoer over meerdere Azure-regio's kunt u Op elk moment Azure-regio's aan uw account toevoegen en verwijderen. U kunt uw account configureren voor één regio of meerdere schrijfregio's. Zie Azure-regio's toevoegen aan en verwijderen uit uw account voor meer informatie. U kunt het standaardconsistentieniveau voor een account configureren.

Elementen in een Azure Cosmos-account

Een Azure Cosmos-container is de fundamentele eenheid voor schaalbaarheid. U kunt vrijwel onbeperkte inrichtende doorvoer (RU/s) en opslag in een container hebben. Azure Cosmos DB container transparant partitioneert met behulp van de logische partitiesleutel die u opgeeft om uw inrichtende doorvoer en opslag elastisch te schalen.

Op dit moment kunt u maximaal 50 Azure Cosmos-accounts maken onder een Azure-abonnement (dit is een zachte limiet die kan worden verhoogd via een ondersteuningsaanvraag). Eén Azure Cosmos-account kan vrijwel een onbeperkte hoeveelheid gegevens en inrichtende doorvoer beheren. Als u uw gegevens en inrichtende doorvoer wilt beheren, kunt u een of meer Azure Cosmos-databases maken onder uw account. Binnen die database kunt u een of meer containers maken. In de volgende afbeelding ziet u de hiërarchie van elementen in een Azure Cosmos-account:

Hiërarchie van een Azure Cosmos-account

Nadat u een account hebt gemaakt onder uw Azure-abonnement, kunt u de gegevens in uw account beheren door databases, containers en items te maken.

In de volgende afbeelding ziet u de hiërarchie van verschillende entiteiten in een Azure Cosmos DB account:

Entiteiten van Azure Cosmos-account

Azure Cosmos-databases

U kunt een of meer Azure Cosmos-databases maken onder uw account. Een database is vergelijkbaar met een naamruimte. Een database is de beheereenheid voor een set Azure Cosmos-containers. In de volgende tabel ziet u hoe een database wordt toegevoegd aan verschillende API-specifieke entiteiten:

Azure Cosmos-entiteit SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Azure Cosmos-database Database Keyspace Database Database NA

Notitie

Wanneer Table-API-accounts maakt, wordt er automatisch een standaarddatabase gemaakt in uw Azure Cosmos-account wanneer u uw eerste tabel maakt.

Bewerkingen op een Azure Cosmos-database

U kunt communiceren met een Azure Cosmos-database met Azure Cosmos API's, zoals beschreven in de volgende tabel:

Bewerking Azure CLI SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Alle databases opsnoemen Ja Ja Ja (database is aan een keyspace toegevoegd) Yes NA NA
Database lezen Ja Ja Ja (database is aan een keyspace toegevoegd) Yes NA NA
Nieuwe database maken Ja Ja Ja (database is aan een keyspace toegevoegd) Yes NA NA
Database bijwerken Ja Ja Ja (database is aan een keyspace toegevoegd) Yes NA NA

Azure Cosmos-containers

Een Azure Cosmos-container is de schaalbaarheidseenheid voor zowel inrichtende doorvoer als opslag. Een container wordt horizontaal gepartitiefd en vervolgens gerepliceerd in meerdere regio's. De items die u aan de container toevoegt, worden automatisch gegroepeerd in logische partities, die worden gedistribueerd over fysieke partities, op basis van de partitiesleutel. De doorvoer van een container wordt gelijkmatig verdeeld over de fysieke partities. Zie Partition data (Gegevens partitioneren) voor meer informatie over partitionering en partitiesleutels.

Wanneer u een container maakt, configureert u doorvoer in een van de volgende modi:

  • Toegewezen doorvoermodus: de doorvoer die is ingericht voor een container, is exclusief gereserveerd voor die container en wordt door de SLA's gebruikt. Zie Doorvoer inrichten voor een container voor meer informatie.

  • Modus voor gedeelde inrichtende doorvoer: deze containers delen de inrichtende doorvoer met de andere containers in dezelfde database (met uitzondering van containers die zijn geconfigureerd met toegewezen inrichtende doorvoer). Met andere woorden, de inrichtende doorvoer op de database wordt gedeeld tussen alle gedeelde doorvoercontainers. Zie Doorvoer inrichten voor een database voor meer informatie.

Notitie

U kunt gedeelde en toegewezen doorvoer alleen configureren bij het maken van de database en container. Als u wilt overschakelen van de modus voor toegewezen doorvoer naar de modus voor gedeelde doorvoer (of omgekeerd) nadat de container is gemaakt, moet u een nieuwe container maken en de gegevens naar de nieuwe container migreren. U kunt de gegevens migreren met behulp van Azure Cosmos DB functie voor het wijzigen van de feed.

Een Azure Cosmos-container kan elastisch worden geschaald, of u nu containers maakt met behulp van toegewezen of gedeelde doorvoermodi.

Een container is een schema-agnostische container met items. Items in een container kunnen willekeurige schema's hebben. Een item dat een persoon vertegenwoordigt en een item dat een auto vertegenwoordigt, kan bijvoorbeeld in dezelfde container worden geplaatst. Standaard worden alle items die u aan een container toevoegt automatisch geïndexeerd zonder expliciet index- of schemabeheer. U kunt het indexeringsgedrag aanpassen door het indexeringsbeleid voor een container te configureren.

U kunt een Time to Live (TTL) instellen voor geselecteerde items in een container of voor de hele container om deze items op een goede manier van het systeem te verwijderen. Azure Cosmos DB worden de items automatisch verwijderd wanneer ze verlopen. Het garandeert ook dat een query die wordt uitgevoerd op de container, de verlopen items niet binnen een vaste grens retourneerd. Zie Configure TTL on your container (TTL configureren op uw container) voor meer informatie.

U kunt de wijzigingsfeed gebruiken om u te abonneren op het bewerkingenlogboek dat wordt beheerd voor elke logische partitie van uw container. De wijzigingenfeed bevat het logboek van alle updates die op de container worden uitgevoerd, samen met de voor- en na-afbeeldingen van de items. Zie Reactieve toepassingen bouwen met behulp van de wijzigingsfeed voor meer informatie. U kunt de retentieduur voor de wijzigingsfeed ook configureren met behulp van het beleid voor de wijzigingsfeed in de container.

U kunt opgeslagen procedures, triggers, door de gebruiker gedefinieerde functies (UF's)en samenvoegprocedures voor uw container registreren.

U kunt een unieke sleutelbeperking opgeven voor uw Azure Cosmos-container. Door een uniek sleutelbeleid te maken, zorgt u ervoor dat een of meer waarden per logische partitiesleutel uniek zijn. Als u een container maakt met behulp van een uniek sleutelbeleid, kunnen er geen nieuwe of bijgewerkte items met waarden worden gemaakt die de waarden dupliceren die zijn opgegeven door de unieke sleutelbeperking. Zie Unieke sleutelbeperkingen voor meer informatie.

Een container is gespecialiseerd in API-specifieke entiteiten, zoals wordt weergegeven in de volgende tabel:

Azure Cosmos-entiteit SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Azure Cosmos-container Container Tabel Verzameling Graph Tabel

Notitie

Zorg er bij het maken van containers voor dat u niet twee containers met dezelfde naam maakt, maar een ander casing- of casing-patroon. Dat komt doordat sommige onderdelen van het Azure-platform niet casegevoelig zijn en dit kan leiden tot verwarring/aanrijding van telemetrie en acties op containers met dergelijke namen.

Eigenschappen van een Azure Cosmos-container

Een Azure Cosmos-container heeft een set door het systeem gedefinieerde eigenschappen. Afhankelijk van de API die u gebruikt, zijn sommige eigenschappen mogelijk niet direct zichtbaar. In de volgende tabel wordt de lijst met door het systeem gedefinieerde eigenschappen beschreven:

Door het systeem gedefinieerde eigenschap Door het systeem gegenereerd of door de gebruiker configureerbaar Doel SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
_rid Door het systeem gegenereerd Unieke id van container Ja Nee Nee Nee Nee
_etag Door het systeem gegenereerd Entiteitstag die wordt gebruikt voor optimistisch gelijktijdigheidsbeheer Ja Nee Nee Nee Nee
_Ts Door het systeem gegenereerd Laatst bijgewerkte tijdstempel van de container Ja Nee Nee Nee Nee
_Zelf Door het systeem gegenereerd Adresseerbare URI van de container Ja Nee Nee Nee Nee
id Door de gebruiker configureerbaar Door de gebruiker gedefinieerde unieke naam van de container Ja Ja Ja Ja Ja
indexingPolicy Door de gebruiker configureerbaar Biedt de mogelijkheid om het indexpad, het indextype en de indexmodus te wijzigen Ja Nee Nee Nee Ja
TimeToLive Door de gebruiker configureerbaar Biedt de mogelijkheid om items na een bepaalde periode automatisch te verwijderen uit een container. Zie voor meer informatie Time to Live. Ja Nee Nee Nee Ja
changeFeedPolicy Door de gebruiker configureerbaar Wordt gebruikt om wijzigingen in items in een container te lezen. Zie Feed wijzigen voor meer informatie. Ja Nee Nee Nee Ja
uniqueKeyPolicy Door de gebruiker configureerbaar Wordt gebruikt om de uniekheid van een of meer waarden in een logische partitie te garanderen. Zie Unieke sleutelbeperkingen voor meer informatie. Ja Nee Nee Nee Ja

Bewerkingen op een Azure Cosmos-container

Een Azure Cosmos-container ondersteunt de volgende bewerkingen wanneer u een van de Azure Cosmos-API's gebruikt:

Bewerking Azure CLI SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Containers in een database opsnoemen Ja Ja Ja Ja NA NA
Een container lezen Ja Ja Ja Ja NA NA
Een nieuwe container maken Ja Ja Ja Ja NA NA
Een container bijwerken Ja Ja Ja Ja NA NA
Een container verwijderen Ja Ja Ja Ja NA NA

Azure Cosmos-items

Afhankelijk van welke API u gebruikt, kan een Azure Cosmos-item een document in een verzameling, een rij in een tabel of een knooppunt of rand in een grafiek vertegenwoordigen. In de volgende tabel ziet u de toewijzing van API-specifieke entiteiten aan een Azure Cosmos-item:

Cosmos-entiteit SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Azure Cosmos-item Item Rij Document Knooppunt of rand Item

Eigenschappen van een item

Elk Azure Cosmos-item heeft de volgende door het systeem gedefinieerde eigenschappen. Afhankelijk van de API die u gebruikt, zijn sommige mogelijk niet direct beschikbaar.

Door het systeem gedefinieerde eigenschap Door het systeem gegenereerd of door de gebruiker configureerbaar Doel SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
_rid Door het systeem gegenereerd Unieke id van het item Ja Nee Nee Nee Nee
_etag Door het systeem gegenereerd Entiteitstag die wordt gebruikt voor optimistisch gelijktijdigheidsbeheer Ja Nee Nee Nee Nee
_Ts Door het systeem gegenereerd Tijdstempel van de laatste update van het item Ja Nee Nee Nee Nee
_Zelf Door het systeem gegenereerd Adresseerbare URI van het item Ja Nee Nee Nee Nee
id Ofwel Door de gebruiker gedefinieerde unieke naam in een logische partitie. Ja Ja Ja Ja Ja
Willekeurige door de gebruiker gedefinieerde eigenschappen Door de gebruiker gedefinieerde routes Door de gebruiker gedefinieerde eigenschappen die worden weergegeven in een api-eigen weergave (inclusief JSON, BSON en CQL) Ja Ja Ja Ja Ja

Notitie

De uniekheid van id de eigenschap wordt alleen afgedwongen binnen elke logische partitie. Meerdere documenten kunnen dezelfde eigenschap hebben id met verschillende partitiesleutelwaarden.

Bewerkingen op items

Azure Cosmos-items ondersteunen de volgende bewerkingen. U kunt een van de Azure Cosmos-API's gebruiken om de bewerkingen uit te voeren.

Bewerking Azure CLI SQL-API Cassandra-API Azure Cosmos DB-API voor MongoDB Gremlin-API Tabel-API
Invoegen, Vervangen, Verwijderen, Upsert, Lezen Nee Ja Ja Ja Ja Ja

Volgende stappen

Meer informatie over het beheren van uw Azure Cosmos-account en andere concepten: