Recomendaciones para la importación y exportación de datos

En esta página, se proporcionan las prácticas recomendadas para importar y exportar datos con Cloud SQL. Si quieres obtener instrucciones, consulta Cómo importar datos a Cloud SQL. Consulta la página sobre cómo exportar datos para ver instrucciones paso a paso al respecto, ya sea en Cloud SQL o en una instancia que administres.

Recomendaciones para importar y exportar

Las siguientes son prácticas recomendadas que se deben tener en cuenta a la hora de importar y exportar datos:

No uses los depósitos de pagos del solicitante de Cloud Storage

No puedes usar un depósito de Cloud Storage que tenga habilitados los pagos del solicitante para importaciones y exportaciones desde Cloud SQL.

Usa la exportación sin servidores para descargar la operación de exportación desde la instancia principal

En una exportación estándar desde Cloud SQL, la exportación se ejecuta mientras la base de datos está en línea. Cuando las bases de datos que se exportan son más pequeñas, es probable que el efecto sea mínimo. Sin embargo, cuando hay objetos o bases de datos grandes, como BLOB en la base de datos, existe la posibilidad de que la exportación disminuya el rendimiento de la base de datos. Esto puede afectar el tiempo que lleva realizar consultas y operaciones de base de datos en la base de datos. Una vez que comienzas una exportación, no es posible detenerla si la base de datos comienza a responder con lentitud.

Para evitar respuestas lentas durante una exportación, puedes usar la exportación sin servidores. Con la exportación sin servidores, Cloud SQL crea una instancia temporal separada para descargar la operación de exportación. La descarga de la operación de exportación permite que las bases de datos en la instancia principal continúen con la entrega de consultas y realicen operaciones con la tasa de rendimiento habitual. Cuando se completa la exportación de datos, la instancia temporal se borra de forma automática.

Usa las funciones de exportación de gcloud o la API de REST, con la marca offload, para realizar una operación de exportación sin servidores.

Durante una operación de exportación sin servidores, puedes ejecutar otras operaciones, como la edición, la importación y la conmutación por error de instancias. Sin embargo, si seleccionas delete, la operación de exportación se detiene un poco después de borrar la instancia y no exporta ningún dato.

Una exportación sin servidores tiene mayor duración que una estándar, ya que lleva tiempo crear la instancia temporal. Como mínimo, lleva más de cinco minutos, pero para bases de datos más grandes, puede tomar más. Antes de determinar qué tipo de exportación usar, considera el efecto en el tiempo y el rendimiento.

Puedes usar la exportación sin servidores en una instancia principal o una réplica de lectura.

Usa las marcas correctas cuando crees un archivo de volcado de SQL

Si no usas el procedimiento correcto cuando exportes datos a un archivo de volcado de SQL, es posible que la importación no se realice de forma correcta. Consulta Exportar datos a fin de obtener información sobre cómo crear un archivo de volcado de SQL para importar en Cloud SQL.

Comprimir los datos para disminuir los costos

Cloud SQL admite la importación y exportación de archivos comprimidos y no comprimidos. Con la compresión se puede ahorrar una cantidad importante de espacio de almacenamiento en Cloud Storage, además de disminuir los costos de almacenamiento, en especial, cuando se exportan instancias grandes.

Cuando exportes un volcado de SQL o un archivo CSV, usa una extensión de archivo .gz para comprimir los datos. Cuando importas un archivo con la extensión .gz, se descomprime de forma automática.

Reduce procesos de importación y exportación de larga duración

Las importaciones y exportaciones en Cloud SQL mediante la función de importación (a través de un depósito de Cloud Storage) pueden llevar mucho tiempo en completarse, según el tamaño de la base de datos. Esto puede tener las siguientes consecuencias:

  • No puedes detener una operación de instancia de Cloud SQL de larga duración.
  • Solo puedes realizar una operación de importación o exportación a la vez para cada instancia.

Puedes disminuir la cantidad de tiempo que lleva completar cada operación mediante la función de importación o exportación de Cloud SQL con lotes de datos más pequeños.

Para las exportaciones, puedes usar la exportación sin servidores a fin de minimizar el impacto en el rendimiento de la base de datos y permitir que otras operaciones se ejecuten en la instancia mientras se ejecuta una exportación.

Para obtener más sugerencias, consulta Diagnostica problemas relacionados con las instancias de Cloud SQL.

Verifica la base de datos importada

Después de completar una operación de importación, conéctate a la base de datos y ejecuta los comandos correspondientes para asegurarte de que los contenidos sean correctos. Por ejemplo, conéctate y enumera las bases de datos, tablas y entradas específicas.

Limitaciones conocidas

Cloud Storage admite un tamaño máximo de hasta cinco terabytes para un solo objeto. Si tienes bases de datos mayores a 5 TB, la operación de exportación a Cloud Storage fallará. En ese caso, debes dividir tus archivos de exportación en segmentos más pequeños.

Soluciona problemas

Haz clic en los vínculos de la tabla para obtener más información:

Situación Posible problema Solución
La importación está tomando demasiado tiempo. Hay demasiadas conexiones activas que pueden interferir en las operaciones de importación. Cierra las conexiones sin usar o reinicia la instancia de Cloud SQL antes de comenzar una operación de importación.
La importación falla. El archivo exportado puede contener usuarios de la base de datos que aún no existen. Limpia la base de datos errónea antes de reintentar la importación. Crea los usuarios de la base de datos antes de realizar la importación.

La importación está tomando demasiado tiempo

La importación está tardando demasiado y está bloqueando otras operaciones.

Posible problema

Hay demasiadas conexiones activas que pueden interferir en las operaciones de importación. Las conexiones consumen CPU y memoria, lo que limita los recursos disponibles.

Solución

Cierra las operaciones sin usar. Verifica el uso de la memoria y la CPU para asegurarte de que haya una gran cantidad de recursos disponibles. La mejor manera de garantizar la cantidad máxima de recursos para la operación de importación es reiniciar la instancia antes de comenzar la operación. Cuando se realiza un reinicio, sucede lo siguiente:

  • Se cierran todas las conexiones.
  • Finaliza cualquier tarea que pueda consumir recursos.


La importación falla

La importación falla cuando uno o más usuarios a los que se hace referencia en el archivo de volcado de SQL exportado no existen.

Posible problema

Antes de importar un archivo de volcado de SQL, deben existir todos los usuarios de la base de datos que poseen objetos o que recibieron permisos sobre los objetos en la base de datos de volcado. Si este no es el caso, el restablecimiento no puede volver a crear los objetos con la relación de propiedad o los permisos originales.

Solución

Limpia la base de datos errónea antes de reintentar la importación. Crea los usuarios de la base de datos antes de importar el archivo de volcado de SQL.


Haz clic en los vínculos de la tabla para obtener más información:

Situación Posible problema Solución
No se puede ver el estado de la operación. La interfaz de usuario solo muestra los estados que indican una finalización correcta o un error. Usa estos comandos de la base de datos para obtener más información.
408 Error (Timeout) durante la exportación. La exportación de SQL puede llevar mucho tiempo según el tamaño de la base de datos y el contenido de que se exporta. Usa varias exportaciones de archivos CSV para reducir el tamaño de cada operación.
La exportación de archivos CSV se completó, pero la exportación de SQL falló. Es más probable que la exportación de SQL tenga problemas de compatibilidad con Cloud SQL. Usa las exportaciones de archivos CSV para exportar solo lo que necesites.
La exportación está tomando demasiado tiempo. Cloud SQL no admite operaciones síncronas simultáneas. Usa la descarga de exportación. Más información.
Se produjo un error cuando se creó la extensión. En el archivo de volcado, se hace referencia a una extensión que no es compatible. Edita el archivo de volcado para quitar las referencias.
Se produjo un error cuando se usó pg_dumpall. La herramienta requiere una función de superusuario. La función de superusuario no es compatible.
Se agota el tiempo de espera de la operación de exportación antes de exportar algo. La consulta debe generar datos dentro de los primeros siete minutos. Prueba una exportación manual con la herramienta pg_dump.
Se interrumpió la conexión durante la operación de exportación. La consulta debe generar datos dentro de los primeros siete minutos. Prueba la consulta de forma manual. Más información.
Se produjo un error desconocido durante la exportación. Es posible que haya un problema con el ancho de banda. Asegúrate de que la instancia y el depósito de Cloud Storage estén en la misma región.
Deseas automatizar las exportaciones. Cloud SQL no proporciona una forma de automatizar las exportaciones. Compila tu propia canalización para llevar a cabo esta función. Más información

No se puede ver el estado de la operación

No puedes ver el estado de una operación en curso.

Posible problema

Google Cloud Console solo informa si la operación se completó de forma correcta o si falló una vez que esta finaliza. Esta herramienta no está diseñada para mostrar advertencias.

Solución

Conéctate a la base de datos y ejecuta SHOW WARNINGS.


Error 408 (Tiempo de espera agotado) durante la exportación

Verás el mensaje de error 408 Error (Timeout) mientras realizas un trabajo de exportación en Cloud SQL.

Posible problema

Los formatos CSV y SQL se exportan de manera diferente. El formato SQL exporta la base de datos completa, y es probable que esta operación tome más tiempo para completarse. El formato CSV te permite definir qué elementos de la base de datos incluir en la exportación.

Solución

Usa el formato CSV y ejecuta varios trabajos de exportación más pequeños a fin de reducir el tamaño y la duración de cada operación.


La exportación de archivos CSV se completó, pero la exportación de SQL falló

La exportación de archivos CSV se completó, pero la exportación de SQL falló.

Posible problema

Los formatos CSV y SQL se exportan de manera diferente. El formato SQL exporta la base de datos completa, y es probable que esta operación tome más tiempo para completarse. El formato CSV te permite definir qué elementos de la base de datos incluir en la exportación.

Solución

Usa las exportaciones de archivos CSV para exportar solo lo que necesites.


La exportación está tomando demasiado tiempo

La exportación está tardando demasiado y está bloqueando otras operaciones.

Posible problema

Cloud SQL no admite operaciones síncronas simultáneas.

Solución

Intenta exportar conjuntos de datos más pequeños por vez.



Se produjo un error cuando se usó pg_dumpall

Se mostrará un error cuando intentes usar la herramienta de línea de comandos pg_dumpall externa.

Posible problema

Se requiere la función de superusuario para esta herramienta.

Solución

Cloud SQL es un servicio administrado y no otorga a los usuarios las funciones o permisos de superusuario.


Un par restableció la conexión

Se agota el tiempo de espera de la operación de exportación antes de exportar algo. Verás el mensaje de error Could not receive data from client: Connection reset by peer..

Posible problema

Si Cloud Storage no recibe ningún dato en un período determinado, la conexión se restablece.

Solución

Realiza una exportación manual con la herramienta pg_dump.


Se interrumpió la conexión durante la operación de exportación

Se interrumpió la conexión durante la operación de exportación.

Posible problema

Es posible que el tiempo de espera de la conexión a Cloud Storage se esté agotando porque la consulta que se ejecutó en la exportación no produjo ningún dato en los primeros siete minutos desde que se inició la exportación.

Solución

Para probar la consulta de forma manual, conéctate desde cualquier cliente y envía el resultado de tu consulta a STDOUT con el siguiente comando:

COPY (INSERT_YOUR_QUERY_HERE) TO STDOUT WITH ( FORMAT csv, DELIMITER ',', ENCODING 'UTF8', QUOTE '"', ESCAPE '"' ).

Este es el comportamiento previsto, ya que, cuando se inicia la exportación, se espera que el cliente comience a enviar datos de inmediato. Si se mantiene la conexión sin datos enviados, esta termina interrumpiéndose y, finalmente, la exportación falla, lo que deja a la operación en un estado incierto. Esto es lo que el siguiente mensaje de error de gcloud intenta comunicar:

operation is taking longer than expected.


Error desconocido durante la exportación

Verás el mensaje de error Unknown error mientras intentas exportar una base de datos a un depósito de Cloud Storage.

Posible problema

Es posible que la transferencia esté fallando debido a un problema de ancho de banda.

Solución

Es posible que la instancia de Cloud SQL esté ubicada en una región diferente a la del depósito de Cloud Storage. Leer y escribir datos de un continente a otro implica mucho uso de la red y puede causar problemas intermitentes como este. Verifica las regiones de la instancia y el depósito.


Deseas automatizar las exportaciones

Deseas automatizar las exportaciones.

Posible problema

Cloud SQL no proporciona una forma de automatizar las exportaciones.

Solución

Podrías compilar tu propio sistema de exportación automatizado mediante el uso de productos de Google Cloud, como Cloud Scheduler, Pub/Sub y Cloud Functions.


Se produjo el error del sistema ERROR_RDBMS

Verás el mensaje de error [ERROR_RDBMS] system error occurred.

Posible problema

  • Es posible que el usuario no tenga todos los permisos de Cloud Storage que necesita.
  • Es posible que la tabla de la base de datos no exista.

Solución

  1. Verifica que tengas al menos los permisos WRITER en el depósito y los permisos READER en el archivo de exportación. Para obtener más información sobre cómo configurar el control de acceso en Cloud Storage, consulta Crea y administra Listas de control de acceso.
  2. Asegúrate de que la tabla exista. Si la tabla existe, confirma que tienes los permisos adecuados en el depósito.

¿Qué sigue?