Choisir une API dans Azure Cosmos DB
S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table PostgreSQL
Azure Cosmos DB est une base de données NoSQL relationnelle et vectorielle complètement managée pour le développement d’applications modernes. Azure Cosmos DB prend en charge l’administration de bases de données avec une gestion, des mises à jour et des mises à jour correctives automatiques. Il traite également la gestion de la capacité avec des options économiques de mise à l’échelle automatique et serverless qui répondent aux besoins de l’application pour faire correspondre la capacité à la demande.
Les API dans Azure Cosmos DB
Azure Cosmos DB offre plusieurs API de base de données, notamment NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin et Table. À l’aide de ces API, vous pouvez modéliser des données concrètes à l’aide de modèles de données de documents, de clés-valeurs, de graphes et de familles de colonnes. Ces API permettent à vos applications de traiter Azure Cosmos DB comme s’il s’agissait de diverses autres technologies de bases de données, sans la surcharge inhérente à la gestion, et approches de mise à l’échelle. Azure Cosmos DB vous aide à utiliser les écosystèmes, les outils et les compétences dont vous disposez déjà pour la modélisation et l’interrogation des données grâce à ses nombreuses API.
Toutes les API offrent une mise à l’échelle automatique du stockage et du débit, de la flexibilité et des garanties de performances. Il n’y a pas d’API idéale et vous pouvez choisir l’API qui vous convient pour générer votre application. Cet article vous aidera à choisir une API en fonction des besoins de votre charge de travail et de votre équipe.
Aspects à prendre en compte lors du choix d’une API
L’API NoSQL est native à Azure Cosmos DB.
L’API pour MongoDB, PostgreSQL, Cassandra, Gremlin et Table implémente le protocole filaire des moteurs de base de données open source. Ces API conviennent mieux si les conditions suivantes sont remplies :
- Si vous avez des applications MongoDB, PostgreSQL, Cassandra ou Gremlin existantes
- Si vous ne souhaitez pas réécrire la totalité de votre couche d’accès aux données
- Si vous souhaitez utiliser l’écosystème de développement open source, les pilotes clients, l’expertise et les ressources pour votre base de données
- Si vous souhaitez utiliser les fonctionnalités principales d’Azure Cosmos DB, telles que :
- Diffusion mondiale
- Mise à l’échelle élastique du stockage et du débit
- Haute performance à grande échelle
- Latence faible
- Possibilité d’exécuter des charges de travail transactionnelles et analytiques
- Plateforme complètement managée
- Si vous développez des applications modernes dans un environnement multicloud
Vous pouvez créer de nouvelles applications avec ces API ou migrer vos données existantes. Pour exécuter les applications migrées, modifiez la chaîne de connexion de votre application et continuez comme avant. Lorsque vous migrez des applications existantes, veillez à évaluer la prise en charge des fonctionnalités par ces API.
En fonction de votre charge de travail, vous devez choisir l’API qui répond à vos exigences. L’illustration suivante montre un organigramme sur la manière de choisir l’API appropriée lors de la création d’applications ou de la migration d’applications existantes vers Azure Cosmos DB :
Diagramme de l’arbre de décision pour le choix d’une API dans Azure Cosmos DB. La moitié du diagramme illustre le nombre de charges de travail de base de données open source existantes qui peuvent utiliser les API correspondantes pour Azure Cosmos DB. L’autre moitié du diagramme illustre la façon dont les nouvelles applications peuvent utiliser l’API pour NoSQL ou utiliser vos compétences existantes avec les API pour les bases de données open source.
API pour NoSQL
L’API Azure Cosmos DB for NoSQL stocke les données au format document. Elle offre la meilleure expérience de bout en bout, car nous disposons d’un contrôle total sur l’interface, le service et les bibliothèques clientes du SDK. Toutes les nouvelles fonctionnalités déployées dans Azure Cosmos DB sont d’abord disponibles sur les comptes de l’API NoSQL. Les comptes NoSQL prennent en charge l’interrogation des éléments à l’aide de la syntaxe SQL (Structured Query Language), l’un des langages de requête les plus courants et les plus populaires pour interroger des objets JSON. Pour en savoir plus, consultez le module de formation API Azure Cosmos DB for NoSQL et l’article Bien démarrer avec les requêtes SQL.
Si vous effectuez une migration à partir d’autres bases de données telles qu’Oracle, DynamoDB, HBase, etc. et si vous souhaitez utiliser les technologies modernes pour générer vos applications, l’API NoSQL est l’option recommandée. L’API NoSQL prend en charge les analytiques et offre une isolation des performances entre les charges de travail opérationnelles et analytiques.
API pour MongoDB
L’API Azure Cosmos DB for MongoDB stocke les données dans une structure de document, au format BSON. Elle est compatible avec le protocole filaire MongoDB. Toutefois, elle n’utilise pas de code lié à MongoDB en mode natif. L’API MongoDB est un excellent choix si vous souhaitez utiliser l’écosystème et les compétences plus larges de MongoDB, sans compromettre l’utilisation des fonctionnalités d’Azure Cosmos DB.
Les fonctionnalités fournies par Azure Cosmos DB dont vous pourrez profiter sans compromis sont :
- Mise à l'échelle
- Haute disponibilité
- Géoréplication
- Plusieurs emplacements d’écriture
- Gestion automatique et transparente des partitions
- Réplication transparente entre les magasins opérationnels et analytiques
Vous pouvez utiliser vos applications MongoDB existantes avec l’API pour MongoDB en modifiant simplement la chaîne de connexion. Vous pouvez déplacer des données existantes à l’aide d’outils MongoDB natifs tels que mongodump et mongorestore ou à l’aide de notre outil de migration de base de données Azure. Les outils tels que l’interpréteur de commandes MongoDB, MongoDB Compass et Robo3T peuvent exécuter des requêtes et utiliser des données comme c’est le cas avec MongoDB en mode natif. Pour plus d’informations, consultez l’article sur l’API pour MongoDB.
API PostgreSQL
Azure Cosmos DB for PostgreSQL est un service géré pour l’exécution de PostgreSQL à n’importe quelle échelle, avec la superpuissance Citus open source des tables distribuées. Il stocke les données sur un seul nœud, ou distribuées dans une configuration à plusieurs nœuds.
Azure Cosmos DB for PostgreSQL est basé sur PostgreSQL natif, plutôt qu’une duplication (fork) PostgreSQL, et vous permet de choisir n’importe quelle version de base de données majeure prise en charge par la communauté PostgreSQL. Il est idéal pour commencer sur une base de données à nœud unique avec une indexation riche, des fonctionnalités géospatiales et la prise en charge de JSONB. Plus tard, si vos besoins en performances augmentent, vous pouvez ajouter des nœuds au cluster sans temps d’arrêt.
Si vous recherchez une base de données relationnelle managée open source avec des hautes performances et une géoréplication, Azure Cosmos DB for PostgreSQL est le choix recommandé. Pour en savoir plus, consultez Introduction à Azure Cosmos DB for PostgreSQL.
API Apache Cassandra
L’API Azure Cosmos DB for Cassandra stocke les données dans un schéma orienté colonne. Apache Cassandra offre une approche de mise à l’échelle horizontale et hautement distribuée permettant de stocker de gros volumes de données tout en offrant une approche flexible à un schéma orienté colonne. L’API Azure Cosmos DB for Cassandra s’aligne sur cette philosophie pour se rapprocher des bases de données NoSQL distribuées. Cette API Cassandra est compatible avec le protocole filaire avec Apache Cassandra natif. Vous devez envisager d’utiliser l’API Cassandra si vous souhaitez tirer parti de l’élasticité et de la nature complètement managée d’Azure Cosmos DB tout en utilisant la plupart des fonctionnalités, outils et écosystèmes Apache Cassandra natifs. Sa nature complètement managée signifie que, sur l’API Cassandra, vous n’avez pas besoin de gérer le système d’exploitation, les machines virtuelles Java, le récupérateur de mémoire, les performances de lecture/écriture, les nœuds, les clusters, etc.
Vous pouvez utiliser les pilotes client Apache Cassandra pour vous connecter à l’API Cassandra. L’API Cassandra vous permet d’interagir avec les données à l’aide du langage CQL (Cassandra Query Language), des outils comme l’interpréteur de commandes CQL et les pilotes clients Cassandra que vous connaissez déjà. L’API Cassandra prend actuellement en charge les scénarios OLTP uniquement. À l’aide de l’API Cassandra, vous pouvez également utiliser les fonctionnalités uniques d’Azure Cosmos DB telles que le flux de modification. Pour plus d’informations, consultez l’article sur l’API Cassandra. Si vous connaissez déjà Apache Cassandra, mais que vous débutez avec Azure Cosmos DB, consultez Comment s’adapter à l’API Cassandra pour obtenir des renseignements supplémentaires.
API Apache Gremlin
L’API Azure Cosmos DB for Gremlin permet aux utilisateurs d’effectuer des requêtes de graphe et de stocker les données en tant qu’arêtes et sommets.
Utilisez l’API Gremlin pour les scénarios suivants :
- Impliquer des données dynamiques
- Impliquer des données avec des relations complexes
- Impliquer des données trop complexes à modéliser avec des bases de données relationnelles
- Si vous souhaitez utiliser l’écosystème et les compétences Gremlin existants
L’API Gremlin combine la puissance des algorithmes de base de données de graphe avec une infrastructure managée et hautement évolutive. Elle fournit une solution unique et flexible aux problèmes de données courants associés à l’absence de flexibilité ou aux approches relationnelles. L’API Gremlin prend actuellement en charge les scénarios OLTP uniquement.
L’API Gremlin repose sur Apache TinkerPop, un framework de calcul de graphe. L’API Gremlin utilise le même langage de requête Graph pour ingérer et interroger les données. Elle utilise la stratégie de partition d’Azure Cosmos DB pour effectuer les opérations de lecture et d’écriture à partir du moteur de base de données Graph. L’API Gremlin a une prise en charge du protocole filaire avec la version open source de Gremlin. Vous pouvez donc utiliser les kits de développement logiciel (SDK) Gremlin open source pour générer votre application. L’API Gremlin fonctionne également avec Apache Spark et GraphFrames pour les scénarios de graphes analytiques complexes. Pour plus d’informations, consultez l’article sur l’API Gremlin.
API Table
L’API Azure Cosmos DB for Table stocke les données au format clé/valeur. Si vous utilisez actuellement le Stockage Table Azure, vous pouvez constater des limitations en matière de latence, de mise à l’échelle, de débit, de distribution à l’échelle mondiale, de gestion des index, et les faibles performances en matière de requêtes. L’API Table surmonte ces limitations et il est recommandé de migrer votre application si vous souhaitez tirer parti des avantages d’Azure Cosmos DB. L’API Table prend en charge uniquement les scénarios OLTP.
Les applications écrites pour le Stockage Table Azure peuvent migrer vers l’API Table avec peu de modification de codes, et tirer parti des fonctionnalités Premium. Pour plus d’informations, consultez l’article sur l’API Table.
Planification de la capacité lors de la migration des données
Vous souhaitez effectuer une planification de la capacité pour une migration vers l’API Azure Cosmos DB for NoSQL ou MongoDB à partir d’un cluster de base de données existant ? Vous pouvez utiliser les informations sur votre cluster de bases de données existant pour la planification de la capacité.
- Pour plus d’informations sur l’estimation des unités de requête si vous ne connaissez que le nombre de vCores et de serveurs présents dans votre cluster de bases de données existant, lisez Estimation des unités de requête à l’aide de vCores ou de processeurs virtuels.
- Pour plus d’informations sur l’estimation des unités de requête si vous connaissez les taux de requêtes typiques de votre charge de travail de base de données actuelle, lisez les articles relatifs au planificateur de capacité pour l’API NoSQL et le planificateur de capacité pour l’API MongoDB