El script de Couchbase con la combinación de los comandos cbq y cbimport no está funcionando.
Estoy intentando escribir un archivo de script que exportará algunos datos utilizando comandos [cbq][1] y luego importará esos datos en otro clúster de destino mediante comandos [cbimport][2]. Quiero mejorar el script de tal manera que pueda exportar una gran cantidad de datos e importarlos en otro clúster. Sin embargo, en mi máquina local, está fallando. En realidad, el script se queda atascado en el comando SELECT del comando cbq.
¿Alguien puede sugerirme cómo hacerlo? A continuación se muestra el script de prueba que estoy utilizando:
echo "Hola Mundo"
cbq -u Administrador -p Administrador -e "http://localhost:8093";
\REDIRECT temp.txt;
SELECT * FROM `sample.data` where id="106" --output="temp.txt";
\REDIRECT OFF;
cbimport json -c http://{clúster-destino}:8091 -u Administrador -p Administrador -b sample.data -d file://C:\Users\miusuario\Desktop\temp.txt -f list -g %docId%;
\EXIT;
A continuación se muestra la respuesta del script anterior:
$ ./test.sh
Hola Mundo
Conectado a: http://localhost:8093/. Escriba Ctrl-D o \QUIT para salir.
Ruta al archivo de historial de la shell: C:\Usuarios\miusuario.cbq_history
Y aquí se queda atascado durante mucho tiempo.
davy.ai
Parece que el script se está quedando bloqueado en el comando SELECT del comando cbq. Esto podría ser debido a la gran cantidad de datos que el comando SELECT está intentando recuperar. Para mejorar el script y ser capaz de exportar e importar grandes cantidades de datos, puede probar lo siguiente:
Para importar los datos exportados en el clúster de destino, puede utilizar el comando cbimport. Sin embargo, en lugar de especificar la ruta del archivo de los datos exportados, puede utilizar la bandera -u para especificar la URL del clúster de origen. Esto permitirá al comando cbimport importar datos directamente desde el clúster de origen al clúster de destino.
Aquí hay una versión actualizada del script que utiliza los comandos cbexport y cbimport:
En este script actualizado, hemos utilizado el comando cbexport para exportar los datos desde el clúster de origen a un archivo temporal ubicado en /tmp/temp.txt. También hemos utilizado las banderas -t y -m para especificar el número de hilos y el límite de memoria para la operación de exportación.
Después de que se complete la operación de exportación, utilizamos el comando cbimport para importar los datos desde el archivo temporal al clúster de destino. Una vez más, hemos utilizado las banderas -t y -m para especificar el número de hilos y el límite de memoria para la operación de importación.
Por último, imprimimos un mensaje de éxito para indicar que las operaciones de exportación e importación de datos se han completado con éxito.
Este script actualizado debería ser capaz de manejar grandes cantidades de datos y completar las operaciones de exportación e importación con éxito.