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 documentación para 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 buckets de pagos del solicitante de Cloud Storage

No puedes usar un bucket 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

A fin de obtener una lista de las limitaciones conocidas, consulta Problemas para importar y exportar datos.

Automatiza las operaciones de exportación

Aunque Cloud SQL no proporciona una forma integrada de automatizar las exportaciones de bases de datos, puedes compilar tu propia herramienta de automatización con varios componentes de Google Cloud. Para obtener más información, consulta este instructivo.

Soluciona problemas

Soluciona problemas de operaciones de importación

Problema Soluciona problemas
HTTP Error 409: Operation failed because another operation was already in progress Ya existe una operación pendiente para la instancia. Solo se permite una operación a la vez. Prueba tu solicitud después de que se complete la operación actual.
La operación de importación está tomando demasiado tiempo. Hay demasiadas conexiones activas que pueden interferir en las operaciones de importación.

Cierra las operaciones sin usar. Verifica el uso de CPU y memoria de la instancia de Cloud SQL para asegurarte de que haya muchos recursos disponibles. La mejor manera de garantizar la cantidad máxima de recursos para la 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.
Una operación de importación puede fallar cuando uno o más usuarios a los que se hace referencia en el archivo de volcado no existen. Antes de importar un archivo de volcado, 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 deben existir en la base de datos de destino. Si este no es el caso, la operación de importación no puede volver a crear los objetos con la propiedad o los permisos originales.

Crea los usuarios de la base de datos antes de realizar la importación.

Soluciona problemas de operaciones de exportación

Problema Soluciona problemas
HTTP Error 409: Operation failed because another operation was already in progress. Ya existe una operación pendiente para la instancia. Solo se permite una operación a la vez. Prueba tu solicitud después de que se complete la operación actual.
HTTP Error 403: The service account does not have the required permissions for the bucket. Asegúrate de que el bucket exista y que la cuenta de servicio tenga el rol Storage Object Creator (roles/storage.objectCreator) para permitir la exportación al bucket. Consulta Roles de IAM para Cloud Storage.
La exportación de archivos CSV se completó, pero la exportación de SQL falló. 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.

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. En un nivel alto, en la descarga de exportación, en lugar de emitir una exportación en la instancia de origen, Cloud SQL inicia una instancia de descarga para realizar la exportación. La descarga de la exportación tiene varias ventajas, como el aumento del rendimiento en la instancia de origen y el bloqueo de las operaciones administrativas mientras se ejecuta la exportación. Con la descarga de la exportación, la latencia total puede aumentar en función del tiempo que lleva activar la instancia de descarga. Por lo general, para exportaciones con un tamaño razonable, la latencia no es significativa. Sin embargo, si la exportación es lo suficientemente pequeña, es posible que notes un aumento en la latencia.

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, y esta no es compatible con Cloud SQL para PostgreSQL.
Se agota el tiempo de espera de la operación de exportación antes de exportar algo y ves el mensaje de error Could not receive data from client: Connection reset by peer.. Si Cloud Storage no recibe ningún dato en un período determinado, por lo general, alrededor de siete minutos, la conexión se restablece. Es posible que la consulta de exportación inicial esté tardando demasiado en ejecutarse.

Realiza una exportación manual con la herramienta pg_dump.

Deseas que las exportaciones sean automáticas. Cloud SQL no proporciona una forma de automatizar las exportaciones.

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, similar a este artículo sobre cómo automatizar las copias de seguridad.

¿Qué sigue?