Couchbase: le guide pour bien débuter

Couchbase est une technologie de base de données NoSQL, orientée document, qui propose de très hauts niveaux de performances et de disponibilité. Découvrez l’alternative à MongoDB

Couchbase est une base de données NoSQL multimodèle, qui allie la performance d’une base de données orientée documents, capitalisant sur le stockage en mémoire RAM, tout en gérant une persistance éventuelle sur disque dur afin d’assurer la durabilité des données qui lui sont envoyées.

Couchbase modélise les données sous format clé valeur où chaque élément contiendra un identifiant unique et chaque valeur sera un objet JSON qui contiendra l’ensemble des données pour cet élément.

Pour en savoir plus sur cette technologie de base de données, je vous invite à aller voir le guide complet Couchbase.

Informations et prérequis

Dans ce guide, nous allons créer une version bac à sable de Couchbase Server Entreprise Edition, afin de commencer à manipuler la base de données.

Pour pouvoir suivre ce guide, il est essentiel que vous ayez installé docker sur votre mac ou sur votre PC.

Afin que vous puissiez faire tourner votre serveur Couchbase, il est recommandé que votre machine dispose au minimum des ressources listées ci-dessous:

  • 4Go de RAM
  • CPU 2Ghz
  • 8Go en disque dur SSD

Vous pouvez également consulter les recommandations officielles de Couchbase ici

Télécharger l’image Docker et lancer le serveur Couchbase

Dans votre terminal, lancez la commande:

docker run -t --name db -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase/server:enterprise-7.0.0
Utilisez la méthode docker run pour récupérer l’image Couchbase Server Entreprise

Dès que vous verrez le message ci-dessous s’afficher sur votre terminal, cela voudra dire que votre serveur est accessible depuis votre navigateur à l’url http://localhost:8091

Starting Couchbase Server -- Web UI available at http://<ip>:8091 and logs available in /opt/couchbase/var/lib/couchbase/logs

Configurer votre serveur Couchbase

En accédant à l’interface UI de votre serveur Couchbase via le navigateur, vous pourrez créer un cluster et le configurer.

Étant donné que dans ce guide nous cherchons simplement à comprendre le fonctionnement de Couchbase, nous allons nous allons configurer un cluster avec un seul nœud (single node). Ce n’est pas la configuration qu’il faudra choisir lorsque vous voudrez utiliser Couchbase dans un contexte d’une application en production.

Accédez à l’interface d’administration Couchbase Server

Une fois que vous avez accédé à l’interface d’administration, cliquez sur Setup New Cluster.

Terminez la configuration en nommant votre cluster et configurant le mot de passe d’administration

Donnez un nom à votre cluster dans le champ Cluster Name puis définissez les accès administrateur en choisissant un nom d’utilisateur dans Create Admin Username et un mot de passe dans Create Password et Confirm Password.

Pour terminer la configuration du serveur, il n’y aura plus qu’à accepter les conditions d’utilisations comme illustré ci-dessous:

Terminez la configuration de votre cluster

Allouez les ressources

Au moment d’accepter les conditions d’utilisations Couchbase, vous avez le choix de terminer la configuration de deux façons.

La première est d’accepter les affectations par défaut de Couchbase. La seconde est de configurer manuellement l’affectation de l’espace mémoire RAM pour chaque fonctionnalité qu’offre Couchbase.

Choisissez la ressource RAM pour chacun des services Couchbase

Comme vous le remarquez, Couchbase propose d’allouer et de répartir de l’espace RAM entre plusieurs de ses fonctionnalités:

  • Le service Data va recevoir les données que l’application va lui passer. C’est le seul service indispensable dans un cluster Couchbase
  • Le service Query n’est pas concerné par l’affectation de ressource RAM. Il s’agit uniquement de rendre disponible les requêtes N1QL pour accéder aux données. Ce service a besoin du service Data et du service Index pour fonctionner pleinement
  • Le service Index
  • Le service Search
  • Le service Analytics
  • Le service Eventing
  • Le service Backup

Pour en savoir plus sur les différents services Couchbase, je vous invite à lire la section Services du guide complet Couchbase.

Dans le cadre de ce guide de découverte, nous allons utiliser uniquement les services Data, Query, Index et Backup. Vous pouvez allouer les ressources comme suit:

Lorsque vous avez terminé, cliquez sur Save & Finish. Vous arriverez ainsi sur l’interface d’administration de votre cluster Couchbase

Couchbase Dashboard

Utiliser son serveur Couchbase

Charger l’échantillon de données

Pour continuer notre découverte, nous allons charger un échantillon de données que nous propose Couchbase.

Depuis votre tableau de bord, cliquez sur Sample Buckets puis cochez travel-sample avant de cliquer sur le bouton Load Sample Data.

Chargez les échantillons de données

Les données échantillons se chargent en quelques secondes. Une fois le message d’alerte de succès, vous pouvez cliquer sur Dashboard et voir que votre cluster commence à donner des signes de vie.

Après le chargement, vous verrez votre dashboard s’animer

Buckets: Explorons les données

Les données importées sont stockées dans ce que Couchbase appelle un Bucket. C’est l’équivalent d’une base de données complète pour une base de données relationnelle. Un cluster Couchbase peut héberger jusqu’à 30 buckets.

En cliquant sur le lien Bucked dans votre dashboard, vous pourrez voir le seul bucket que vous avez pour l’instant:

Les données échantillons sont maintenant dans leur propre Bucket

Sur cette page, vous pouvez cliquer sur le lien Documents, pour voir directement l’ensemble des documents que cette « base de données » contient, ou sur Scopes & Collections pour voir l’arborescence d’organisation des données.

En cliquant sur Scopes & Collections, nous allons pouvoir voir comment cette base de données a été organisée:

Vous pouvez explorer les données depuis l’UI d’administration

Les données contenues dans cet échantillon ont été organisées dans différents scopes. Les scopes tenant_agent représentent ce qu’on peut penser être des agents de voyages. Chaque scope tenant_agent va regrouper ses users, que l’on devine être les clients de l’agent de voyages, et les bookings, qui représentent les réservations.

Le scope inventory quant à lui va rassembler les collections hotels, landmark, routes, airlines et airport, qui seront utilisées par les différents agents de voyages pour composer un voyage.

Aperçu du détail des collections contenues dans le bucket

Cliquez maintenant sur Documents au niveau de la collection airline.

Aperçu des documents dans la collection Airlines

Nous arrivons enfin à accéder à un des documents de ce jeu de données. Dans cette page, vous avez une liste des documents que contient. Cette collection, affiché par lot de 10.

Comme vous pouvez le voir, le document contient la clé « airline_10 » et un objet JSON contenant plusieurs données en valeur.

Depuis cette interface, vous avez la possibilité de modifier, dupliquer ou supprimer facilement un document.

Cliquez sur l’id d’un document ou sur le bouton contenant l’icône du crayon pour accéder à l’éditeur.

Editez un document avec l’UI Couchbase

Dans cet éditeur, vous pouvez effectuer directement des modifications sur le document et les enregistrer en cliquant sur le bouton Save.

Notez tout de même que l’interface Couchbase permet de modifier des documents jusqu’à 10MB, bien que la taille maximale autorisée soit de 20MB. Si vous vous situez au-delà de 10MB, il faudra passer par une application ou par une requête cURL.

Vous avez également la possibilité d’ajouter un document depuis la liste des documents en cliquant sur le bouton ADD DOCUMENT.

Aller plus loin avec Couchbase

Nous arrivons maintenant au bout de ce guide de démarrage sur Couchbase. Vous savez maintenant démarrer un cluster depuis votre machine et avez accès à des données.

Découvrez maintenant notre guide sur les requêtes N1QL afin d’accéder et manipuler les données de votre cluster.

Rayed Benbrahim

Recent Posts

Communauté Tech et féminine : Interview avec Helvira de Motiv’her

Elles sont passées où les femmes dans la tech ? Entre le manque de représentation…

9 heures ago

Consommer des APIs HTTP en PHP comme un pro avec Nicolas Grekas.

Dans cette vidéo, on interview Nicolas Grekas, contributeur clé de Symfony, pour discuter de sa…

9 heures ago

Trouver son job grâce à WeLoveDevs.

 Comment trouver son job dans la tech ? Marie a la réponse ! Grâce à…

2 jours ago

Adobe, L’empire créatif.

Adobe, l'empire créatif, et pas des moindres ! Belle ascension de la part de ces…

6 jours ago

La MAO musique ou musique assistée par ordinateur

Est-ce plus simple de créer des morceaux avec les outils de Musique Assistée par Ordinateur…

6 jours ago