Introduction

Couchbase offre deux utilitaires pratiques pour l'exportation et l'importation de données en masse, qui peuvent travailler avec des fichiers au format JSON ou CSV. Dans cet article, nous verrons comment exporter et importer des données à partir et vers des fichiers JSON et CSV.

Export de données avec cbexport

Exporter des données en format json avec mode ligne

# cbexport json -c http://127.0.0.1:8091/ -u admin -p admin123 \ <==pour se connecter au serveur
-b ecole-bucket \ <== le bucket a exporter
--scope-field scope --collection-field collection \ <==Préciser le nom pour le scope et la collection à inclure dans le fichier
--exclude-data ecole-scope.classe \ <== si on veut exclure des collections. Par défaut toutes les scopes/collections sont exportées
--include-key id \ <== pour inclure la clé du document sous le nom voulu
-o /tmp/etudiant_lines.json -f lines -t 2 \ <== spécifier le fichier output, le format et le parallélisme
-l /tmp/etudiant_lines.log <== spécifier le fichier de log
JSON exported to `/tmp/etudiant_lines.json` successfully
Documents exported: 5 Documents skipped: 0

Le contenu du ficher exporté

# cat *.json
{"classe":"Informatique","collection":"etudiant","email":"sebastien@example.com","id":"etudiant4","nom":"Sebastien","scope":"ecole-scope"}
{"classe":"Math","collection":"etudiant","email":"rachid@example.com","id":"etudiant1","nom":"Rachid","scope":"ecole-scope"}
{"classe":"Math","collection":"etudiant","email":"michel@example.com","id":"etudiant2","nom":"Michel","scope":"ecole-scope"}
{"classe":"Informatique","collection":"etudiant","email":"arthur@example.com","id":"etudiant5","nom":"Arthur","scope":"ecole-scope"}
{"classe":"Physique","collection":"etudiant","email":"michel@example.com","id":"etudiant3","nom":"Sabrina","scope":"ecole-scope"}

Exporter des données en format json avec mode liste

# cbexport json -c http://127.0.0.1:8091/ -u admin -p admin123 \
-b ecole-bucket \
--scope-field scope --collection-field collection \
--exclude-data ecole-scope.etudiant \
--include-key id \
-o /tmp/classe_list.json -f list -t 2 \
-l /tmp/classe_list.log> > > > > > 
JSON exported to `/tmp/classe_list.json` successfully
Documents exported: 3 Documents skipped: 0

Le contenu du ficher exporté

# cat classe_list.json
[{"collection":"classe","description":"Sciences exactes","id":"Math","scope":"ecole-scope"},
{"collection":"classe","description":"Physique quantique","id":"Physique","scope":"ecole-scope"},
{"collection":"classe","description":"Intelligence artificielle","id":"Informatique","scope":"ecole-scope"}]

Importer des données avec cbimport

Importer des données depuis un fichier json

# cbimport json -c couchbase://127.0.0.1 -u admin -p admin123 \ <== pour se connecter au serveur
-d file:///tmp/etudiant_lines.json \ <== le fichier input
-b ecole-bucket \ <== le bucket de destination
--scope-collection-exp %scope%.%collection% \ <== le nom du scope et de la collection proviennent du fichier input et identifiés avec le nom des champs scope et collection
-g key::%id% \ <== spécifier la clé du document qui provienne du champs id qui est dans le fichier json
-f lines -t 2 \ <== spécifier le format et le parallélisme
-l /tmp/import_etudiant_lines.log <== spécifier le fichier de log
JSON `file:///tmp/etudiant_lines.json` imported to `couchbase://127.0.0.1` successfully
Documents imported: 5 Documents failed: 0

Importer des données depuis un fichier csv

# cbimport json -c couchbase://127.0.0.1 -u admin -p admin123 \ <== pour se connecter au serveur
-d file:///tmp/etudiant_lines.json \ <== le fichier input
-b ecole-bucket \ <== le bucket de destination
--scope-collection-exp %scope%.%collection% \ <== le nom du scope et de la collection proviennent du fichier input et identifiés avec le nom des champs scope et collection
-g key::%id% \ <== Spécifier la clé du document qui provienne du champs id qui est dans le fichier json
-f lines -t 2 \ <== spécifier le format et le parallélisme
-l /tmp/import_etudiant_lines.log <== spécifier le fichier de log
JSON `file:///tmp/etudiant_lines.json` imported to `couchbase://127.0.0.1` successfully
Documents imported: 5 Documents failed: 0