Apache CouchDB (lien externe à ibm.com) est une base de données documentaire NoSQL open source qui collecte et stocke des données dans des formats de documents JSON. Contrairement aux bases de données relationnelles, CouchDB utilise un modèle de données sans schéma, ce qui simplifie la gestion des enregistrements sur divers appareils informatiques, téléphones mobiles et navigateurs Web.
CouchDB a été introduit en 2005 et est devenu un projet de l'Apache Software Foundation (lien externe à ibm.com) en 2008. En tant que projet open source, CouchDB est soutenu par une communauté active de développeurs qui améliorent continuellement le logiciel en mettant l'accent sur la facilité d'utilisation et la compatibilité avec le Web.
Pour la plupart des entreprises, il peut s'avérer difficile de décider quel fournisseur utiliser lorsqu'elles recherchent une technologie de gestion des données. Non seulement les logiciels propriétaires imposent certaines restrictions de licence sur l'utilisation de la technologie, mais le transfert de toutes les données de votre entreprise dans un système de gestion de base de données (SGBD) « universel », sans visibilité sur sa structure interne, pose également des problèmes de continuité des activités.
CouchDB est différent. Contrairement aux logiciels propriétaires qui risquent de rendre dépendant d'un fournisseur, CouchDB est open source, gratuit et s'intègre facilement à votre infrastructure actuelle de gestion des données. Comme vous avez plus de contrôle sur le logiciel, vous avez également plus de flexibilité pour l'adapter aux besoins uniques de votre entreprise. Qu'il s'agisse d'un stockage de documents à usage général, de la synchronisation efficace des données ou de l'adoption d'un état d'esprit « Hors ligne avant tout », CouchDB offre aux entreprises la flexibilité dont elles ont besoin pour créer des infrastructures durables, fiables et évolutives.
Cette vidéo en dit plus sur CouchDB et son fonctionnement :
Un mot suffit à définir CouchDB : la tranquillité. CouchDB est fourni avec une suite de fonctions conçues pour réduire l'effort de gestion d'un système distribué résilient. Voici quelques fonctions clés de CouchDB et pourquoi elle est différente des autres bases de données NoSQL.
Réplication. L'une des fonctions essentielles de CouchDB est la réplication bidirectionnelle qui permet de synchroniser les données sur plusieurs serveurs et dispositifs via une réplication bidirectionnelle. Cette réplication permet aux entreprises d'optimiser la disponibilité des systèmes, de réduire les délais de récupération des données, de géolocaliser les données au plus près des utilisateurs finaux et de simplifier les processus de sauvegarde.
Dans CouchDB, il n'existe aucune distinction entre les données hébergées sur un ou plusieurs serveurs. Au contraire, CouchDB identifie les changements de documents dès qu'ils se produisent, quelle que soit la source, et s'assure que toutes les copies de la base de données restent synchronisées avec les informations les plus récentes. Ainsi, plusieurs répliques de bases de données peuvent être autonomes et gérées tout en conservant des informations précises et en temps réel dans plusieurs environnements informatiques.
Vues. CouchDB utilise des vues comme principal outil pour exécuter des requêtes et créer des rapports à partir de fichiers de documents stockés. Les vues vous permettent de filtrer les documents pour trouver les informations pertinentes à un processus particulier de la base de données. Ces informations peuvent ensuite être mappées en fonction de vos préférences et extraites dans un ordre précis.
La particularité de CouchDB réside dans la liberté dont vous disposez en matière de présentation des informations. Les vues de CouchDB étant construites dynamiquement et n'affectant pas directement les magasins de documents sous-jacents, vous pouvez exécuter autant de vues différentes des mêmes données que vous le souhaitez. Ces vues sont créées dans des documents de conception spéciaux et peuvent être répliquées sur plusieurs instances de la base de données comme des données stockées ordinaires.
Une autre superbe fonction de CouchDB est la disponibilité d'Apache MapReduce pour créer de puissants index qui permettent de localiser facilement les documents en fonction des valeurs qu'ils contiennent. Vous pouvez ensuite utiliser ces index pour établir des relations d'un document à l'autre et effectuer divers calculs sur la base de ces connexions.
API HTTP. CouchDB utilise une API REST pour accéder à la base de données de n'importe où, avec une flexibilité totale des opérations CRUD (création, lecture, mise à jour, suppression). Ce moyen simple et efficace de connectivité des bases de données rend CouchDB flexible, rapide et puissant tout en restant très accessible.
Conçu pour le hors ligne. Lorsque vous mettez à l'échelle la facilité d'utilisation et l'accessibilité de votre base de données, il est essentiel de pouvoir créer des applications qui fonctionnent aussi bien hors ligne qu'en ligne. CouchDB permet aux applications de stocker localement les données collectées sur les appareils mobiles et les navigateurs, puis de synchroniser ces données une fois de retour en ligne.
Stockage efficace des documents. Dans CouchDB, les documents sont les principales unités de données utilisées en JSON, composées de divers champs et pièces jointes pour faciliter le stockage. Il n'existe pas de limite à la taille du texte ou au nombre d'éléments de chaque document, et il est possible d'accéder aux données et de les mettre à jour à partir de plusieurs sources de bases de données et à travers des grappes de serveurs distribuées dans le monde entier.
Compatibilité. CouchDB est extrêmement facile à aborder et offre de nombreux avantages en termes de compatibilité lorsqu'il est intégré à votre infrastructure actuelle. CouchDB a été écrit en Erlang (un langage de programmation et un système d'exécution polyvalent, orienté concurrence et à récupération de mémoire), ce qui le rend à la fois fiable et facile à utiliser pour les développeurs.
En raison de ses fonctionnalités open source, CouchDB est extrêmement flexible et peut être installé et exécuté sur divers systèmes d'exploitation et outils de virtualisation. Il est également compatible avec PouchDB, une base de données légère conçue pour fonctionner dans le navigateur des appareils mobiles.
CouchDB offre des avantages aux utilisateurs comme aux développeurs.
Évolutivité. Grâce à sa conception architecturale, CouchDB est extrêmement adaptable lors du partitionnement des bases de données et de la mise à l'échelle des données sur plusieurs nœuds. CouchDB prend en charge le partitionnement horizontal et la réplication, afin de créer une solution facile à gérer pour équilibrer les charges de lecture et d'écriture lors du déploiement d'une base de données.
CouchDB dispose d'un moteur de stockage très durable et fiable conçu dès le départ pour les infrastructures à plusieurs clouds et à plusieurs bases de données. En tant que base de données NoSQL, CouchDB est très personnalisable et ouvre la voie au développement d'applications prévisibles et performantes, quel que soit le volume de vos données ou le nombre d'utilisateurs.
Pas de verrous de lecture. Dans la plupart des bases de données relationnelles, où les données sont stockées dans des tables, si vous devez mettre à jour ou modifier un tableau, la ligne de données à modifier est verrouillée pour les autres utilisateurs jusqu'à ce que la demande de modification soit traitée. Il peut en résulter des problèmes d'accessibilité pour les clients et des goulots d'étranglement généraux dans vos processus de gestion des données.
CouchDB utilise MVCC (Multi-Version Concurrency Control) pour gérer l'accès aux bases de données. Cela signifie que, quelle que soit la charge actuelle de la base de données, CouchDB peut fonctionner à pleine vitesse et sans restriction pour ses utilisateurs. Comme les documents dans CouchDB sont versionnés et ajoutés en temps réel, les demandes de lecture de la base de données voient toujours les tout derniers instantanés mis à jour de la base de données, indépendamment de la personne qui a accédé au document en premier.
Développement open source. Grâce au soutien de la communauté open source, CouchDB constitue une base solide et fiable pour la gestion des bases de données d'entreprise. Développé pendant plusieurs années comme solution sans schéma, CouchDB offre une flexibilité inégalée que l'on ne trouve tout simplement pas dans la plupart des solutions de bases de données propriétaires.
La couche de données pour les applications hyperscale, résilientes et disponibles dans le monde entier, basée sur le logiciel open source Apache CouchDB.
Découvrez les forces et les faiblesses de CouchDB, l'orientation du projet et bien d'autres choses encore dans cette interview avec deux experts en bases de données.
NoSQL est une approche de la conception de bases de données qui permet le stockage et l'interrogation de données en dehors des structures traditionnelles des bases de données relationnelles.
Découvrez les aspects importants du stockage en cloud, notamment son fonctionnement, ses avantages et les différents types de stockage en cloud disponibles.