Couchbase 6.6 viene con una característica muy necesaria, Importar documentos usando Couchbase Admin Web Console. Esto proporciona una manera fácil de importar rápidamente pequeño conjuntos de datos en diversos formatos para complementar cbimport que es una solución de línea de comandos más completa, con muchas más opciones de importación de datos.
En esta entrada del blog, veremos algunos casos de uso y algunas trampas al importar datos.
Comprobación de la función
Se accede a Importar documentos haciendo clic en el botón Documentos en el panel izquierdo y el enlace Importar documento en el panel azul de la parte superior de la página.

Los campos se explican por sí mismos, pero voy a echar un vistazo a la importación de un pequeño conjunto de datos (sólo 5 líneas) para demostrar la función. He creado 4 archivos con diferentes formatos en mi portátil para demostrar la función. Tenga en cuenta que no necesitamos necesariamente un cubo de destino vacío, pero para esta prueba, he creado un cubo prueba que aún no tiene ningún documento.
Vamos a importar nuestro conjunto de datos JSON List.

- Hice clic en el Seleccionar archivo para importar y seleccione aeropuerto.jsonun archivo con 5 documentos JSON en mi portátil.
- Antes de importar realmente los datos, la pantalla muestra una muestra del Contenido del fichero en diferentes formatos. Esto sirve como comprobación rápida.
- A continuación tengo la opción de establecer el clave del documento durante la importación, en el Importar con ID de documento botones de opción. Las opciones son UUID, o, cuando sea posible, un Valor del campo.
- Nota al elegir Valor del campo:
- Este campo tiene que estar en todos los documentos con un valor único no nulo.
- Ta herramienta no garantiza que los campos ID de candidato tengan valores únicos en todos los documentos. La interfaz de usuario de importación sólo comprueba que el campo sea presente en cada documento.
- Si selecciona un campo ID con valores duplicados, los documentos antiguos se sobrescribirán con los nuevos documentos que tengan el mismo ID.
- Por ahora, seguiré con el UUID elección y seguir adelante con la Importación.
- Nota al elegir Valor del campo:
- A continuación, seleccioné prueba como mi Cubo de destino.
- A continuación, hago clic en el botón Importar datos en la parte inferior de la pantalla.
La importación se ha realizado correctamente y también muestra el número de documentos importados en un cuadro emergente.
La pantalla también muestra un útil cbimport en caso de que el tamaño de los datos sea grande.
Vamos a importar el mismo conjunto de documentos, pero esta vez, elija la opción Valor del campo así:

Elegiré id.
Ahora, que he importado el mismo conjunto de documentos dos veces, pero con diferentes llavesAhora tendré 10 documentos en el cubo. Comprobémoslo haciendo clic en el botón Editor de documentos en el botón azul panel en la parte superior.

Aquí vemos los 10 documentos, un conjunto de 5 con el id como clave del documento y otro conjunto de 5 con el UUID generado por el servidor como clave.
Veamos 1 documento:

Se ve bien.
Otras pruebas
También puede probar a importar el mismo conjunto de datos en distintos formatos.
Formatos de archivo
Lista JSON
Una lista JSON es una lista (indicada mediante corchetes) de cualquier número de objetos JSON (indicados mediante llaves) separados por comas.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[ { "nombredeaeropuerto": "Calais Dunkerque", "ciudad": "Calais", "país": "Francia, "faa": "CQF", "geo": { "alt": 12, "lat": 50.962097, "lon": 1.954764 }, "icao": "LFAC", "id": 1254, "tipo": "aeropuerto", "tz": "Europa/París" }, .... { "nombredeaeropuerto": "Bray", "ciudad": "Albert", "país": "Francia, "faa": null, "geo": { "alt": 364, "lat": 49.971531, "lon": 2.697661 }, "icao": "LFAQ", "id": 1258, "tipo": "aeropuerto", "tz": "Europa/París" } ] |
Líneas JSON
Líneas JSON es un archivo donde cada línea tiene un objeto JSON completo separado en esa línea.
|
1 2 3 4 5 |
{"nombredeaeropuerto":"Peronne St Quentin","ciudad":"Peronne","país":"Francia,"faa":null,"geo":{"alt":295,"lat":49.868547,"lon":3.029578},"icao":"LFAG","id":1255,"tipo":"aeropuerto","tz":"Europa/París"} {"nombredeaeropuerto":"Bray","ciudad":"Albert","país":"Francia,"faa":null,"geo":{"alt":364,"lat":49.971531,"lon":2.697661},"icao":"LFAQ","id":1258,"tipo":"aeropuerto","tz":"Europa/París"} {"nombredeaeropuerto":"Calais Dunkerque","ciudad":"Calais","país":"Francia,"faa":"CQF","geo":{"alt":12,"lat":50.962097,"lon":1.954764},"icao":"LFAC","id":1254,"tipo":"aeropuerto","tz":"Europa/París"} {"nombredeaeropuerto":"Les Loges","ciudad":"Nangis","país":"Francia,"faa":null,"geo":{"alt":428,"lat":48.596219,"lon":3.006786},"icao":"LFAI","id":1256,"tipo":"aeropuerto","tz":"Europa/París"} {"nombredeaeropuerto":"Couterne","ciudad":"Bagnole-de-l'orne","país":"Francia,"faa":null,"geo":{"alt":718,"lat":48.545836,"lon":-0.387444},"icao":"LFAO","id":1257,"tipo":"aeropuerto","tz":"Europa/París"} |
CSV (Variables separadas por comas)
|
1 2 3 4 5 6 |
nombre del aeropuerto,ciudad,país,faa,geo.alt,geo.lat,geo.lon,icao,id,tipo,tz "Calais Dunkerque","Calais","Francia,"CQF",12,50.962097,1.954764,"LFAC",1254,"aeropuerto","Europa/París" "Peronne St Quentin","Peronne","Francia,"null",295,49.868547,3.029578,"LFAG",1255,"aeropuerto","Europa/París" "Les Loges","Nangis","Francia,null,428,48.596219,3.006786,"LFAI",1256,"aeropuerto","Europa/París" "Couterne","Bagnole-de-l'orne","Francia,null,718,48.545836,-0.387444,"LFAO",1257,"aeropuerto","Europa/París" "Bray","Albert","Francia,null,364,49.971531,2.697661,"LFAQ",1258,"aeropuerto","Europa/París" |
Nota:
- El formato CSV "aplana" los datos JSON y no admite matrices ni valores anidados.
- El formato CSV no tiene una forma bien definida de admitir valores nulos. Los valores de cadena en CSV se entrecomillan opcionalmente, por lo que no existe una forma estándar de distinguir la cadena "null" del valor null. Por lo tanto, después de importar desde un conjunto de datos CSV, el valor null se importará como la cadena "null".
TSV (Variables separadas por tabulaciones)
|
1 2 3 4 5 6 |
nombre del aeropuerto ciudad país faa geo.alt geo.lat geo.lon icao id tipo tz "Calais Dunkerque" "Calais" "Francia "CQF" 12 50.962097 1.954764 "LFAC" 1254 "aeropuerto" "Europa/París" "Peronne St Quentin" "Peronne" "Francia null 295 49.868547 3.029578 "LFAG" 1255 "aeropuerto" "Europa/París" "Les Loges" "Nangis" "Francia null 428 48.596219 3.006786 "LFAI" 1256 "aeropuerto" "Europa/París" "Couterne" "Bagnole-de-l'orne" "Francia null 718 48.545836 -0.387444 "LFAO" 1257 "aeropuerto" "Europa/París" "Bray" "Albert" "Francia null 364 49.971531 2.697661 "LFAQ" 1258 "aeropuerto" "Europa/París" |
Nota:
- El formato TSV "aplana" los datos JSON y no admite matrices ni valores anidados.
- El formato TSV no tiene una forma bien definida de admitir valores nulos. Los valores de cadena en TSV se entrecomillan opcionalmente, por lo que no existe una forma estándar de distinguir la cadena "null" del valor null. Por lo tanto, después de importar desde un conjunto de datos CSV, el valor null se importará como la cadena "null".