Välj ett API i Azure Cosmos DB
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord PostgreSQL
Azure Cosmos DB är en fullständigt hanterad NoSQL-, relations- och vektordatabas för modern apputveckling. Azure Cosmos DB tar bort databasadministration från dina händer med automatisk hantering, uppdateringar och korrigering. Den hanterar också kapacitetshantering med kostnadseffektiva serverlösa och automatiska skalningsalternativ som svarar på programmets behov för att matcha kapacitet med efterfrågan.
API:er i Azure Cosmos DB
Azure Cosmos DB erbjuder flera databas-API:er, däribland NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin och Table. Med hjälp av dessa API:er kan du modellera verkliga data med hjälp av dokument, nyckelvärde, diagram och kolumnfamiljedatamodeller. Med dessa API:er kan dina program hantera Azure Cosmos DB som om det vore olika andra databastekniker, utan hanterings- och skalningsmetoder. Azure Cosmos DB hjälper dig att använda de ekosystem, verktyg och färdigheter som du redan har för datamodellering och frågor med dess olika API:er.
Alla API:er erbjuder automatisk skalning av lagring och dataflöde, flexibilitet och prestandagarantier. Det finns inget bästa API och du kan välja någon av API:erna för att skapa ditt program. Den här artikeln hjälper dig att välja ett API baserat på dina arbetsbelastnings- och teamkrav.
Överväganden när du väljer ett API
API för NoSQL är inbyggt i Azure Cosmos DB.
API för MongoDB, PostgreSQL, Cassandra, Gremlin och Table implementerar trådprotokollet för databasmotorer med öppen källkod. Dessa API:er passar bäst om följande villkor är uppfyllda:
- Om du har befintliga MongoDB-, PostgreSQL Cassandra- eller Gremlin-program
- Om du inte vill skriva om hela dataåtkomstskiktet
- Om du vill använda ekosystemet för utvecklare med öppen källkod, klientdrivrutiner, expertis och resurser för databasen
- Om du vill använda Azure Cosmos DB-kärnfunktionerna, till exempel:
- Global distribution
- Elastisk skalning av lagring och dataflöde
- Höga prestanda i stor skala
- Låg latens
- Möjlighet att köra transaktions- och analysarbetsbelastningar
- Fullständigt hanterad plattform
- Om du utvecklar moderniserade appar i en miljö med flera moln
Du kan skapa nya program med dessa API:er eller migrera dina befintliga data. Om du vill köra de migrerade apparna ändrar du programmets anslutningssträng och fortsätter att köras som tidigare. När du migrerar befintliga appar bör du utvärdera funktionsstödet för dessa API:er.
Baserat på din arbetsbelastning måste du välja det API som passar dina behov. Följande bild visar ett flödesdiagram över hur du väljer rätt API när du skapar nya appar eller migrerar befintliga appar till Azure Cosmos DB:
Diagram över beslutsträdet för att välja ett API i Azure Cosmos DB. Hälften av diagrammet visar hur många befintliga databasarbetsbelastningar med öppen källkod som kan använda motsvarande API:er för Azure Cosmos DB. Den andra halvan av diagrammet visar hur nya program antingen kan använda API:et för NoSQL eller använda dina befintliga kunskaper med API:er för databaser med öppen källkod.
API för NoSQL
Azure Cosmos DB API för NoSQL lagrar data i dokumentformat. Det ger den bästa upplevelsen från slutpunkt till slutpunkt eftersom vi har fullständig kontroll över gränssnitt, tjänst och SDK-klientbibliotek. Alla nya funktioner som distribueras till Azure Cosmos DB är först tillgängliga i API för NoSQL-konton. NoSQL-konton har stöd för frågor mot objekt med sql-syntaxen (Structured Query Language), ett av de mest välbekanta och populära frågespråken för att fråga JSON-objekt. Mer information finns i utbildningsmodulen För Azure Cosmos DB API för NoSQL och komma igång med SQL-frågor .
Om du migrerar från andra databaser som Oracle, DynamoDB, HBase osv. och om du vill använda de moderniserade teknikerna för att skapa dina appar är API för NoSQL det rekommenderade alternativet. API för NoSQL stöder analys och erbjuder prestandaisolering mellan drift- och analytiska arbetsbelastningar.
API för MongoDB
Azure Cosmos DB API för MongoDB lagrar data i en dokumentstruktur via BSON-format. Det är kompatibelt med MongoDB wire protocol; Den använder dock ingen inbyggd MongoDB-relaterad kod. API:et för MongoDB är ett bra val om du vill använda det bredare MongoDB-ekosystemet och -färdigheterna, utan att kompromissa med att använda Azure Cosmos DB-funktioner.
De funktioner som Azure Cosmos DB tillhandahåller och som du inte behöver kompromissa med omfattar:
- Skalning
- Hög tillgänglighet
- Geo-replikering
- Flera skrivplatser
- Automatisk och transparent shardhantering
- Transparent replikering mellan drift- och analyslager
Du kan använda dina befintliga MongoDB-appar med API för MongoDB genom att bara ändra anslutningssträng. Du kan flytta befintliga data med hjälp av inbyggda MongoDB-verktyg som mongodump & mongorestore eller med hjälp av vårt Azure Database Migration-verktyg. Verktyg, till exempel MongoDB-gränssnittet, MongoDB Compass och Robo3T, kan köra frågor och arbeta med data som de gör med inbyggd MongoDB. Mer information finns i artikeln API for MongoDB .
API för PostgreSQL
Azure Cosmos DB for PostgreSQL är en hanterad tjänst för att köra PostgreSQL i valfri skala, med Citus öppen källkod superkrafter med distribuerade tabeller. Den lagrar data antingen på en enskild nod eller distribueras i en konfiguration med flera noder.
Azure Cosmos DB for PostgreSQL bygger på inbyggd PostgreSQL – i stället för en PostgreSQL-förgrening – och låter dig välja alla större databasversioner som stöds av PostgreSQL-communityn. Det är idealiskt för att starta på en databas med en nod med omfattande indexering, geospatiala funktioner och JSONB-stöd. Senare, om du behöver mer prestanda, kan du lägga till noder i klustret utan driftstopp.
Om du letar efter en hanterad öppen källkod relationsdatabas med höga prestanda och geo-replikering är Azure Cosmos DB for PostgreSQL det rekommenderade valet. Mer information finns i Introduktion till Azure Cosmos DB for PostgreSQL.
API för Apache Cassandra
Azure Cosmos DB API för Cassandra lagrar data i kolumnorienterat schema. Apache Cassandra erbjuder en mycket distribuerad, horisontell skalningsmetod för att lagra stora mängder data samtidigt som det erbjuder en flexibel metod för ett kolumnorienterat schema. API för Cassandra i Azure Cosmos DB överensstämmer med den här filosofin för att närma sig distribuerade NoSQL-databaser. Det här API:et för Cassandra är trådprotokollkompatibelt med inbyggd Apache Cassandra. Du bör överväga API för Cassandra om du vill dra nytta av elasticiteten och den fullständigt hanterade karaktären hos Azure Cosmos DB och fortfarande använda de flesta av de inbyggda Apache Cassandra-funktionerna, verktygen och ekosystemet. Den här fullständigt hanterade naturen innebär att du i API för Cassandra inte behöver hantera operativsystemet, den virtuella Java-datorn, skräpinsamlaren, läs-/skrivprestanda, noder, kluster osv.
Du kan använda Apache Cassandra-klientdrivrutiner för att ansluta till API:et för Cassandra. Med API:et för Cassandra kan du interagera med data med hjälp av Cassandra Query Language (CQL) och verktyg som CQL Shell, Cassandra-klientdrivrutiner som du redan är bekant med. API för Cassandra stöder för närvarande endast OLTP-scenarier. Med api för Cassandra kan du också använda de unika funktionerna i Azure Cosmos DB, till exempel ändringsflöde. Mer information finns i artikeln API för Cassandra . Mer information om du redan är bekant med Apache Cassandra, men är nybörjare på Azure Cosmos DB, finns i hur du anpassar dig till API för Cassandra.
API för Apache Gremlin
Med Azure Cosmos DB API för Gremlin kan användare skapa graffrågor och lagra data som kanter och hörn.
Använd API:et för Gremlin för scenarier:
- Involverar dynamiska data
- Involvera data med komplexa relationer
- Involverar data som är för komplexa för att modelleras med relationsdatabaser
- Om du vill använda det befintliga Gremlin-ekosystemet och kunskaperna
API:et för Gremlin kombinerar kraften i grafdatabasalgoritmer med mycket skalbar, hanterad infrastruktur. Det här API:et ger en unik och flexibel lösning på vanliga dataproblem som är kopplade till bristande flexibilitet eller relationella metoder. API för Gremlin stöder för närvarande endast OLTP-scenarier.
API:et för Gremlin baseras på Apache TinkerPop-grafens databehandlingsramverk. API för Gremlin använder samma Graph-frågespråk för att mata in och fråga efter data. Den använder Azure Cosmos DB-partitionsstrategin för att utföra läs-/skrivåtgärder från Graph-databasmotorn. API för Gremlin har stöd för trådprotokoll med Gremlin med öppen källkod, så att du kan använda Gremlin-SDK:er med öppen källkod för att skapa ditt program. API för Gremlin fungerar också med Apache Spark och GraphFrames för komplexa analysdiagramscenarier. Mer information finns i artikeln API för Gremlin .
API för tabell
Azure Cosmos DB API för tabell lagrar data i nyckel/värde-format. Om du för närvarande använder Azure Table Storage kan du se vissa begränsningar i svarstid, skalning, dataflöde, global distribution, indexhantering, låg frågeprestanda. API för tabell löser dessa begränsningar och vi rekommenderar att du migrerar din app om du vill använda fördelarna med Azure Cosmos DB. API för tabell stöder endast OLTP-scenarier.
Program som skrivits för Azure Table Storage kan migreras till API:et för tabell med små kodändringar och dra nytta av premiumfunktioner. Mer information finns i artikeln API för tabell .
Kapacitetsplanering vid migrering av data
Försöker du planera kapacitet för en migrering till Azure Cosmos DB för NoSQL eller MongoDB från ett befintligt databaskluster? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.
- Mer information om hur du beräknar enheter för begäranden om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga fragmenterade och replikerade databaskluster finns i beräkna enheter för begäranden med virtuella kärnor eller virtuella kärnor.
- Mer information om hur du beräknar enheter för begäranden om du känner till vanliga begärandefrekvenser för din aktuella databasarbetsbelastning finns i kapacitetsplanering för API för NoSQL och API för MongoDB