es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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:

    1. En lugar de utilizar el comando cbq para exportar datos, puede utilizar el comando cbexport. El comando cbexport está diseñado específicamente para exportar grandes cantidades de datos de Couchbase. Puede utilizar la bandera -c para especificar el clúster de origen y la bandera -o para especificar el archivo de salida.
    2. 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:

    echo "Hola Mundo"
    
    cbexport json -c http://{clúster-de-origen}:8091 -u Administrator -p Administrator -b muestra_de_datos -f file:///tmp/temp.txt -t 4 -m 128
    
    cbimport json -c http://{clúster-de-destino}:8091 -u Administrator -p Administrator -b muestra_de_datos -f file:///tmp/temp.txt -t 4 -m 128
    
    echo "La exportación e importación de datos se ha completado con éxito."
    

    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.

Comments are closed.