Utbildning
Certifiering
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Write efficient queries, create indexing policies, manage, and provision resources in the SQL API and SDK with Microsoft Azure Cosmos DB.
Den här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Azure Cosmos DB är en fullständigt hanterad plattform som en tjänst (PaaS). Om du vill börja använda Azure Cosmos DB skapar du ett Azure Cosmos DB-konto i en Azure-resursgrupp i din prenumeration. Skapa sedan databaser och containrar i kontot.
Ditt Azure Cosmos DB-konto innehåller ett unikt DNS-namn (Domain Name System). Du kan hantera DNS-namnet med hjälp av många verktyg, bland annat:
Om du vill replikera data och dataflöde i flera Azure-regioner kan du lägga till och ta bort Azure-regioner till ditt konto när som helst. Du kan konfigurera ditt konto så att det har antingen en enda region eller flera skrivregioner. Mer information finns i Hantera ett Azure Cosmos DB-konto med hjälp av Azure Portal. Du kan också konfigurera standardkonsekvensnivån för ett konto.
För närvarande kan du skapa högst 50 Azure Cosmos DB-konton under en Azure-prenumeration. Du kan öka den här gränsen genom att göra en supportbegäran.
Du kan hantera en nästan obegränsad mängd data och etablerat dataflöde med hjälp av ett enda Azure Cosmos DB-konto. Om du vill hantera dina data och etablerat dataflöde skapar du en eller flera databaser i ditt konto och skapar sedan en eller flera containrar för att lagra dina data.
Följande bild visar hierarkin med element i ett Azure Cosmos DB-konto.
Följande bild visar hierarkin för entiteter i ett Azure Cosmos DB-konto.
I Azure Cosmos DB liknar en databas ett namnområde. En databas är helt enkelt en grupp containrar. I följande tabell visas hur en databas mappas till olika API-specifika entiteter:
Azure Cosmos DB-entitet | API för NoSQL | API för Apache Cassandra | API för MongoDB | API för Apache Gremlin | API för tabell |
---|---|---|---|---|---|
Azure Cosmos DB-databas | Databas | Nyckelutrymme | Databas | Databas | Inte tillämpligt |
Anteckning
Med API för tabellkonton skapas tabeller i Azure Cosmos DB på kontonivå för att upprätthålla kompatibilitet med Azure Table Storage.
En Azure Cosmos DB-container är den där data lagras. Till skillnad från de flesta relationsdatabaser, som skalas upp med större storlekar av virtuella datorer, skalas Azure Cosmos DB ut.
Data lagras på en eller flera servrar som kallas partitioner. Om du vill öka partitionerna ökar du dataflödet, eller så växer de automatiskt när lagringen ökar. Den här relationen ger ett praktiskt taget obegränsat dataflöde och lagringsutrymme för en container.
När du skapar en container måste du ange en partitionsnyckel. Partitionsnyckeln är en egenskap som du väljer bland dina objekt för att hjälpa Azure Cosmos DB att distribuera data effektivt mellan partitioner. Azure Cosmos DB använder värdet för den här egenskapen för att dirigera data till lämplig partition som ska skrivas, uppdateras eller tas bort. Du kan också använda partitionsnyckeln WHERE
i -satsen i frågor för effektiv datahämtning.
Den underliggande lagringsmekanismen för data i Azure Cosmos DB kallas för en fysisk partition. Fysiska partitioner kan ha ett dataflöde på upp till 10 000 enheter för begäranden per sekund och de kan lagra upp till 50 GB data. Azure Cosmos DB abstraherar det här partitioneringskonceptet med en logisk partition som kan lagra upp till 20 GB data.
Med logiska partitioner kan tjänsten ge större elasticitet och bättre hantering av data på underliggande fysiska partitioner när du lägger till fler partitioner. Mer information om partitionering och partitioneringsnycklar finns i Partitionering och horisontell skalning i Azure Cosmos DB.
När du skapar en container konfigurerar du dataflödet i något av följande lägen:
Dedikerat dataflöde: Dataflödet i en container är exklusivt reserverat för containern. Det finns två typer av dedikerat dataflöde: standard och autoskalning. Mer information finns i Etablera standarddataflöde (manuell) i en Azure Cosmos DB-container.
Delat dataflöde: Dataflödet anges på databasnivå och delas sedan med upp till 25 containrar i databasen. Delning av dataflöde utesluter containrar som har konfigurerats med sitt eget dedikerade dataflöde.
Delat dataflöde kan vara ett bra alternativ när alla containrar i databasen har liknande begäranden och lagringsbehov, eller när du inte behöver förutsägbara prestanda för data. Mer information finns i Etablera standarddataflöde (manuellt) på en databas i Azure Cosmos DB.
Anteckning
Du kan inte växla mellan dedikerat och delat dataflöde. Containrar som du skapade i en databas med delat dataflöde kan inte uppdateras för att ha ett dedikerat dataflöde. Om du vill ändra en container från delat till dedikerat dataflöde måste du skapa en ny container och kopiera data till den. Funktionen för containerkopiering i Azure Cosmos DB kan göra den här processen enklare.
Containrar är schemaagnostiska. Objekt i en container kan ha godtyckliga scheman eller olika entiteter, så länge de delar samma partitionsnyckel. En container kan till exempel innehålla ett objekt eller dokument som har kundprofilinformation, tillsammans med ett eller flera objekt eller dokument som representerar alla kundens försäljningsorder. Du kan placera liknande information för alla kunder i samma container.
Som standard indexeras alla data som du lägger till i en container automatiskt utan explicit indexering. Du kan anpassa indexeringen för en container genom att konfigurera dess indexeringsprincip.
För att undvika att påverka prestandan kan du ange en TTL (time to live) för markerade objekt i en container eller på hela containern för att ta bort objekten automatiskt i bakgrunden med oanvänt dataflöde. Men även om utgångna data inte tas bort visas de inte i några läsåtgärder. Mer information finns i Konfigurera tid att leva i Azure Cosmos DB.
Azure Cosmos DB har en inbyggd funktion för ändringsdatainsamling som kallas ändringsflöde. Du kan använda den för att prenumerera på alla ändringar av data i containern.
Du kan registrera lagrade procedurer, utlösare, användardefinierade funktioner (UDF:er) och sammanslagningsprocedurer för din container.
Varje dokument i en container måste ha en id
egenskap som är unik i en logisk nyckels egenskapsvärde för containern. Du kan använda den här kombinationen av egenskaper för att tillhandahålla en unik begränsning i en container, utan att uttryckligen behöva definiera en.
Du kan också ange en unik nyckelbegränsning för din Azure Cosmos DB-container som använder en eller flera egenskaper. En unik nyckelbegränsning säkerställer unikheten för ett eller flera värden per logisk partitionsnyckel. Om du skapar en container med hjälp av en unik nyckelprincip kan du inte skapa några nya eller uppdaterade objekt med värden som duplicerar de värden som den unika nyckelbegränsningen anger.
En container är specialiserad på API-specifika entiteter, enligt följande tabell:
Azure Cosmos DB-entitet | API för NoSQL | API för Cassandra | API för MongoDB | API för Gremlin | API för tabell |
---|---|---|---|---|---|
Azure Cosmos DB-container | Container | Register | Samling | Diagram | Register |
Anteckning
Se till att du inte skapar två containrar som har samma namn men ett annat hölje. Vissa delar av Azure-plattformen är inte skiftlägeskänsliga, och den här typen av namngivning kan leda till förvirring eller kollision av diagnostikdata och åtgärder på containrar.
En Azure Cosmos DB-container har en uppsättning systemdefinierade egenskaper. Beroende på vilket API du använder kanske vissa egenskaper inte exponeras direkt. I följande tabell beskrivs de systemdefinierade egenskaperna:
Systemdefinierad egenskap | Systemgenererad eller användarkonfigurerbar | Syfte | API för NoSQL | API för Cassandra | API för MongoDB | API för Gremlin | API för tabell |
---|---|---|---|---|---|---|---|
_rid |
Systemgenererad | Unik identifierare för en container. | Ja | Nej | Nej | Nej | Nej |
_etag |
Systemgenererad | Entitetstagg som används för optimistisk samtidighetskontroll. | Ja | Nej | Nej | Nej | Nej |
_ts |
Systemgenererad | Senast uppdaterad tidsstämpel för containern. | Ja | Nej | Nej | Nej | Nej |
_self |
Systemgenererad | Adresserbar URI för containern. | Ja | Nej | Nej | Nej | Nej |
id |
Användaren kan konfigureras | Namnet på containern. | Ja | Ja | Ja | Ja | Ja |
indexingPolicy |
Användaren kan konfigureras | Princip för att skapa indexet för containern. | Ja | No | Ja | Ja | Ja |
TimeToLive |
Användaren kan konfigureras | Automatisk borttagning av ett objekt från en container efter en angiven tidsperiod. Mer information finns i Time to live (Tid att leva). | Ja | Nej | Nej | Nej | Ja |
changeFeedPolicy |
Användaren kan konfigureras | Princip för att läsa ändringar som gjorts i objekt i en container. Mer information finns i Ändringsflöde. | Ja | Nej | Nej | Nej | Ja |
uniqueKeyPolicy |
Användaren kan konfigureras | Princip för att säkerställa att ett eller flera värden i en logisk partition är unika. Mer information finns i Begränsningar för unik nyckel. | Ja | Nej | Nej | Nej | Ja |
AnalyticalTimeToLive |
Användaren kan konfigureras | Automatisk borttagning av ett objekt från en container efter en angiven tidsperiod, i samband med ett analysarkiv. Mer information finns i Analysarkiv. | Ja | No | Ja | Nej | Nej |
Beroende på vilket API du använder kan enskilda dataentiteter representeras på olika sätt:
Azure Cosmos DB-entitet | API för NoSQL | API för Cassandra | API för MongoDB | API för Gremlin | API för tabell |
---|---|---|---|---|---|
Azure Cosmos DB-objekt | Artikel | Rad | Dokument | Nod eller kant | Artikel |
Varje Azure Cosmos DB-objekt har följande systemdefinierade egenskaper. Beroende på vilket API du använder kanske vissa av dem inte exponeras direkt.
Systemdefinierad egenskap | Systemgenererad eller användardefinierad | Syfte | API för NoSQL | API för Cassandra | DB API för MongoDB | API för Gremlin | API för tabell |
---|---|---|---|---|---|---|---|
_rid |
Systemgenererad | Unik identifierare för objektet | Ja | Nej | Nej | Nej | Nej |
_etag |
Systemgenererad | Entitetstagg som används för optimistisk samtidighetskontroll | Ja | Nej | Nej | Nej | Nej |
_ts |
Systemgenererad | Tidsstämpel för den senaste uppdateringen av objektet | Ja | Nej | Nej | Nej | Nej |
_self |
Systemgenererad | Adresserbar URI för objektet | Ja | Nej | Nej | Nej | Nej |
id |
Vilken som helst | Användardefinierat unikt namn i en logisk partition | Ja | Ja | Ja | Ja | Ja |
Godtyckliga användardefinierade egenskaper | Användardefinierat | Användardefinierade egenskaper i API-intern representation (inklusive JSON, BSON och CQL) | Ja | Ja | Ja | Ja | Ja |
Anteckning
Egenskapens unika egenskaper id
framtvingas inom varje logisk partition. Flera dokument kan ha samma id
egenskapsvärde med olika partitionsnyckelvärden.
Azure Cosmos DB-objekt stöder följande åtgärder. Du kan använda någon av Azure Cosmos DB-API:erna för att utföra åtgärderna.
Åtgärd | API för NoSQL | API för Cassandra | API för MongoDB | API för Gremlin | API för tabell |
---|---|---|---|---|---|
Infoga, ersätta, ta bort, upsert, läsa | Ja | Ja | Ja | Ja | Ja |
Utbildning
Certifiering
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Write efficient queries, create indexing policies, manage, and provision resources in the SQL API and SDK with Microsoft Azure Cosmos DB.