Een API kiezen in Azure Cosmos DB

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel Postgresql

Azure Cosmos DB is een volledig beheerde NoSQL-, relationele en vectordatabase voor het ontwikkelen van moderne apps. Met Azure Cosmos DB wordt databasebeheer uit uw handen gehaald met automatisch beheer, updates en patches. Daarnaast wordt capaciteitsbeheer afgehandeld met rendabele opties voor serverloze en automatische schaling die inspelen op de behoeften van de toepassing om de capaciteit af te stemmen op de vraag.

API's in Azure Cosmos DB

Azure Cosmos DB biedt meerdere database-API's, waaronder NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin en Table. Met behulp van deze API's kunt u echte wereldgegevens modelleren met behulp van documenten, sleutelwaardegegevens, grafieken en kolomfamiliegegevensmodellen. Met deze API's kunnen uw toepassingen Azure Cosmos DB behandelen alsof het verschillende andere databasestechnologieën zijn, zonder de overhead van beheer en schaalmethoden. Azure Cosmos DB helpt u bij het gebruik van de ecosystemen, hulpprogramma's en vaardigheden die u al hebt voor gegevensmodellering en query's met de verschillende API's.

Alle API's bieden automatisch schalen van opslag en doorvoer, flexibiliteit en prestatiegaranties. Er is geen beste API en u kunt een van de API's kiezen om uw toepassing te bouwen. Dit artikel helpt u bij het kiezen van een API op basis van uw workload- en teamvereisten.

Overwegingen bij het kiezen van een API

API voor NoSQL is systeemeigen voor Azure Cosmos DB.

API voor MongoDB, PostgreSQL, Cassandra, Gremlin en Table implementeren het wire-protocol van opensource-database-engines. Deze API's zijn het meest geschikt als aan de volgende voorwaarden wordt voldaan:

  • Als u bestaande MongoDB-, PostgreSQL Cassandra- of Gremlin-toepassingen hebt
  • Als u de volledige gegevenstoegangslaag niet opnieuw wilt schrijven
  • Als u het opensource-ontwikkelaarsecosysteem, clientstuurprogramma's, expertise en resources voor uw database wilt gebruiken
  • Als u de Kernfuncties van Azure Cosmos DB wilt gebruiken, zoals:
    • Wereldwijde distributie
    • Elastisch schalen van opslag en doorvoer
    • Hoge prestaties op schaal
    • Lage latentie
    • Mogelijkheid om transactionele en analytische workloads uit te voeren
    • Volledig beheerd platform
  • Als u gemoderniseerde apps ontwikkelt in een omgeving met meerdere clouds

U kunt nieuwe toepassingen bouwen met deze API's of uw bestaande gegevens migreren. Als u de gemigreerde apps wilt uitvoeren, wijzigt u de verbindingsreeks van uw toepassing en blijft u actief zoals voorheen. Wanneer u bestaande apps migreert, moet u de functieondersteuning van deze API's evalueren.

Op basis van uw workload moet u de API kiezen die past bij uw behoeften. In de volgende afbeelding ziet u een stroomdiagram over het kiezen van de juiste API bij het bouwen van nieuwe apps of het migreren van bestaande apps naar Azure Cosmos DB:

Diagram van de beslissingsstructuur om een API te kiezen in Azure Cosmos DB.

Diagram van de beslissingsstructuur om een API te kiezen in Azure Cosmos DB. In de helft van het diagram ziet u hoeveel bestaande opensource-databaseworkloads de bijbehorende API's voor Azure Cosmos DB kunnen gebruiken. In de andere helft van het diagram ziet u hoe nieuwe toepassingen de API voor NoSQL kunnen gebruiken of uw bestaande vaardigheden kunnen gebruiken met API's voor opensource-databases.

API voor NoSQL

De Azure Cosmos DB-API voor NoSQL slaat gegevens op in documentindeling. Het biedt de beste end-to-end-ervaring omdat we volledige controle hebben over de interface, service en de SDK-clientbibliotheken. Elke nieuwe functie die wordt geïmplementeerd in Azure Cosmos DB, is voor het eerst beschikbaar in API voor NoSQL-accounts. NoSQL-accounts bieden ondersteuning voor het uitvoeren van query's op items met behulp van de SQL-syntaxis (Structured Query Language), een van de meest bekende en populaire querytalen voor het opvragen van JSON-objecten. Zie voor meer informatie de azure Cosmos DB-API voor NoSQL-trainingsmodule en aan de slag met SQL-query's.

Als u migreert vanuit andere databases, zoals Oracle, DynamoDB, HBase, enzovoort, en als u de gemoderniseerde technologieën wilt gebruiken om uw apps te bouwen, is API voor NoSQL de aanbevolen optie. API voor NoSQL ondersteunt analyses en biedt prestatie-isolatie tussen operationele en analytische workloads.

API voor MongoDB

De Azure Cosmos DB-API voor MongoDB slaat gegevens op in een documentstructuur, via BSON-indeling. Het is compatibel met het MongoDB-wire-protocol; Er wordt echter geen systeemeigen MongoDB-gerelateerde code gebruikt. De API voor MongoDB is een uitstekende keuze als u het bredere MongoDB-ecosysteem en de vaardigheden wilt gebruiken, zonder dat u in gevaar komt voor het gebruik van Azure Cosmos DB-functies.

De functies die Azure Cosmos DB biedt, waarvoor u geen inbreuk hoeft te maken, zijn onder andere:

  • Schalen
  • Hoge beschikbaarheid
  • Geo-replicatie
  • Meerdere schrijflocaties
  • Automatisch en transparant shardbeheer
  • Transparante replicatie tussen operationele en analytische archieven

U kunt uw bestaande MongoDB-apps gebruiken met API voor MongoDB door alleen de verbindingsreeks te wijzigen. U kunt bestaande gegevens verplaatsen met behulp van systeemeigen MongoDB-hulpprogramma's, zoals mongodump & mongorestore of met behulp van ons Azure Database Migration-hulpprogramma. Hulpprogramma's, zoals de MongoDB-shell, MongoDB Compass en Robo3T, kunnen query's uitvoeren en werken met gegevens zoals ze doen met systeemeigen MongoDB. Zie het artikel API voor MongoDB voor meer informatie.

API voor PostgreSQL

Azure Cosmos DB for PostgreSQL is een beheerde service voor het uitvoeren van PostgreSQL op elke schaal, met de opensource-superkracht van Citus van gedistribueerde tabellen. Gegevens worden opgeslagen op één knooppunt of gedistribueerd in een configuratie met meerdere knooppunten.

Azure Cosmos DB for PostgreSQL is gebouwd op systeemeigen PostgreSQL, in plaats van een PostgreSQL-fork, en u kunt kiezen welke primaire databaseversies worden ondersteund door de PostgreSQL-community. Het is ideaal voor het starten van een database met één knooppunt met uitgebreide indexering, georuimtelijke mogelijkheden en JSONB-ondersteuning. Als u later meer prestaties nodig hebt, kunt u knooppunten toevoegen aan het cluster zonder uitvaltijd.

Als u op zoek bent naar een beheerde open source relationele database met hoge prestaties en geo-replicatie, is Azure Cosmos DB voor PostgreSQL de aanbevolen keuze. Zie de inleiding tot Azure Cosmos DB for PostgreSQL voor meer informatie.

API voor Apache Cassandra

De Azure Cosmos DB-API voor Cassandra slaat gegevens op in een kolomgeoriënteerd schema. Apache Cassandra biedt een zeer gedistribueerde, horizontaal schalende benadering voor het opslaan van grote hoeveelheden gegevens en biedt een flexibele benadering van een kolomgeoriënteerd schema. API voor Cassandra in Azure Cosmos DB is afgestemd op deze filosofie voor het benaderen van gedistribueerde NoSQL-databases. Deze API voor Cassandra is wire protocol compatibel met systeemeigen Apache Cassandra. Overweeg de API voor Cassandra als u wilt profiteren van de elasticiteit en volledig beheerde aard van Azure Cosmos DB en nog steeds de meeste systeemeigen Apache Cassandra-functies, -hulpprogramma's en -ecosysteem gebruiken. Deze volledig beheerde aard betekent dat u de API voor Cassandra niet hoeft te beheren van het besturingssysteem, de Java-VM, garbagecollection, de prestaties van lezen/schrijven, knooppunten, clusters, enzovoort.

U kunt Apache Cassandra-clientstuurprogramma's gebruiken om verbinding te maken met de API voor Cassandra. Met de API voor Cassandra kunt u communiceren met gegevens met behulp van de Cassandra Query Language (CQL) en hulpprogramma's zoals CQL Shell, Cassandra-clientstuurprogramma's waarmee u al bekend bent. API voor Cassandra ondersteunt momenteel alleen OLTP-scenario's. Met behulp van API voor Cassandra kunt u ook de unieke functies van Azure Cosmos DB gebruiken, zoals wijzigingenfeed. Zie het artikel API voor Cassandra voor meer informatie. Zie voor meer informatie als u al bekend bent met Apache Cassandra, maar nog niet bekend bent met Azure Cosmos DB, hoe u zich aanpast aan DE API voor Cassandra.

API voor Apache Gremlin

Met de Azure Cosmos DB-API voor Gremlin kunnen gebruikers grafiekquery's maken en gegevens als randen en hoekpunten opslaat.

Gebruik de API voor Gremlin voor scenario's:

  • Dynamische gegevens gebruiken
  • Gegevens met complexe relaties betrekken
  • Gegevens die te complex zijn om te worden gemodelleerd met relationele databases
  • Als u het bestaande Gremlin-ecosysteem en de bestaande vaardigheden van Gremlin wilt gebruiken

De API voor Gremlin combineert de kracht van grafiekdatabasealgoritmen met zeer schaalbare, beheerde infrastructuur. Deze API biedt een unieke en flexibele oplossing voor veelvoorkomende gegevensproblemen met betrekking tot gebrek aan flexibiliteit of relationele benaderingen. API voor Gremlin ondersteunt momenteel alleen OLTP-scenario's.

De API voor Gremlin is gebaseerd op het Apache TinkerPop Graph Computing-framework . API voor Gremlin gebruikt dezelfde Graph-querytaal om gegevens op te nemen en op te vragen. Het maakt gebruik van de Azure Cosmos DB-partitiestrategie om de lees-/schrijfbewerkingen uit de Graph-database-engine uit te voeren. API voor Gremlin biedt ondersteuning voor wire-protocollen met de opensource Gremlin, zodat u de opensource Gremlin-SDK's kunt gebruiken om uw toepassing te bouwen. API voor Gremlin werkt ook met Apache Spark en GraphFrames voor complexe analysegrafiekscenario's. Zie het artikel API voor Gremlin voor meer informatie.

API voor Table

De Azure Cosmos DB-API voor Table slaat gegevens op in de indeling sleutel/waarde. Als u momenteel Gebruikmaakt van Azure Table Storage, ziet u mogelijk enkele beperkingen in latentie, schalen, doorvoer, wereldwijde distributie, indexbeheer, lage queryprestaties. DE API voor Table overbrugt deze beperkingen en het wordt aanbevolen om uw app te migreren als u de voordelen van Azure Cosmos DB wilt gebruiken. API voor Table ondersteunt alleen OLTP-scenario's.

Toepassingen die zijn geschreven voor Azure Table Storage, kunnen worden gemigreerd naar de API voor Table met kleine codewijzigingen en profiteren van premium-mogelijkheden. Zie het artikel API voor Table voor meer informatie.

Capaciteitsplanning bij het migreren van gegevens

Wilt u capaciteitsplanning uitvoeren voor een migratie naar Azure Cosmos DB voor NoSQL of MongoDB vanuit een bestaand databasecluster? U kunt informatie over uw bestaande databasecluster gebruiken voor capaciteitsplanning.

Volgende stappen