Introduction
Le bucket est la structure physique où sont stockées réellement les données. il correspond à la database de données dans le modèle relationnel. Il est possible de créer jusqu'à 30 buckets par cluster Couchbase.
Les données stockées dans un bucket peuvent être ségréguées par scope. Un scope par défaut est toujours créé lors de la création du bucket. Le scope est similaire à la notion de schéma pour le modèle relationnel.
Les données dans un scope sont organisées en utilisant des collections. Une collection est similaire à une table dans un modèle relationnel, mais elle offre une grande flexibilité en termes de structure.
Dans la suite de ce document, nous allons manipuler les buckets, scopes et collections.
Créer une bucket
# couchbase-cli bucket-create \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --bucket-type couchbase \ --bucket-ramsize 256 \ --max-ttl 500000000 \ --durability-min-level persistToMajority \ --enable-flush 0> > > > > > > > > SUCCESS: Bucket created
Explications:
Il est possible de manipuler les buckets soit en utilisant la console d'administration Couchbase, les API REST ou en utilisant la commande couchbase-cli, comme dans cet exemple. Pour commencer, il est nécessaire de se connecter au cluster Couchbase avec un compte possédant les autorisations appropriées. Dans ce cas, nous utilisons un compte d'administrateur pour la connexion.
Le nom du bucket utilisé ici est "ECOLE-BUCKET" de type COUCHBASE. Il est important de noter que Couchbase propose deux types de buckets : les buckets Couchbase (les données sont persistées sur le disque et en mémoire) et les buckets Ephemeral (les données ne sont stockées qu'en mémoire).
Lister tous les buckets
# couchbase-cli bucket-list \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123> > > ecole-bucket bucketType: membase numReplicas: 1 ramQuota: 536870912 ramUsed: 54518688
Créer un scope
# couchbase-cli collection-manage \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --create-scope ecole-scope> > > > > SUCCESS: Scope created
Lister tous les scopes
# couchbase-cli collection-manage \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --list-scopes> > > > > ecole-scope _default
Créer une collection
# couchbase-cli collection-manage \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --create-collection ecole-scope.etudiant \ --max-ttl 0> > > > > > SUCCESS: Collection created
Créons une deuxième collection CLASSE qui sera utilisée par la suite pour les jointures.
# couchbase-cli collection-manage \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --create-collection ecole-scope.classe \ --max-ttl 0> > > > > > SUCCESS: Collection created
Lister toutes les collections
# couchbase-cli collection-manage \ --cluster 172.18.56.11:8091 \ --username admin \ --password admin123 \ --bucket ecole-bucket \ --list-collections ecole-scope> > > > > Scope ecole-scope: - classe - etudiant