Importar datos en Cloud SQL

En esta página se explica cómo importar datos a Cloud SQL.

Para conocer las prácticas recomendadas para importar datos, consulta las prácticas recomendadas para importar y exportar datos.

Importar archivos de volcado de SQL a Cloud SQL

Antes de empezar

  • Tu archivo de volcado de SQL no debe contener activadores, vistas ni procedimientos almacenados. Si tu base de datos necesita estos componentes, debes excluirlos del archivo de volcado y, después, volver a crearlos tras la importación de los datos.

    Si necesitas ayuda para crear un archivo de volcado de SQL que se pueda importar a Cloud SQL, consulta Exportar datos para importarlos en Cloud SQL. Si ya has creado un archivo de volcado que contiene estos componentes, deberás editarlo manualmente para eliminar dichos componentes o bien crear otro archivo de volcado.

  • La base de datos en la que importas debe existir previamente en la instancia de Cloud SQL.

    Si necesitas ayuda para crear una base de datos, consulta el apartado sobre cómo crear bases de datos.

Importar archivos de volcado de SQL

Para importar un archivo de volcado de SQL en una instancia de Cloud SQL, efectúa los pasos siguientes:

Consola

  1. Si aún no lo tienes, crea el archivo de volcado de SQL con los parámetros necesarios para garantizar que Cloud SQL puede utilizar el archivo de volcado.

    Si necesitas ayuda para crear un archivo de volcado de SQL, consulta el apartado sobre cómo crear un archivo de volcado de SQL.

  2. Crea un segmento de Cloud Storage si aún no lo has hecho.

    Si necesitas ayuda para crear un segmento, consulta el apartado sobre cómo crear segmentos de Storage.

  3. Sube el archivo de volcado al segmento.

    Si necesitas ayuda para subir archivos a segmentos, consulta el apartado sobre cómo subir objetos.

  4. Visita la página de instancias de Cloud SQL en la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  5. Selecciona la instancia para abrir su página de detalles.
  6. Haz clic en Importar en la barra de botones.
  7. Introduce la ruta en el segmento y el archivo de volcado de SQL que has subido. O búscalo mediante la opción Examinar y haz doble clic en el nombre del segmento; a continuación, selecciona el archivo y haz clic en Seleccionar.

    Puedes utilizar un archivo comprimido (.gz) o uno sin comprimir (.sql).

  8. En Formato, selecciona SQL.
  9. Haz clic en Mostrar opciones avanzadas y asigna un nombre a la base de datos en la instancia de Cloud SQL que recibirá los datos que importes.

    De este modo, Cloud SQL ejecutará la declaración USE DATABASE antes de la importación.

  10. Haz clic en Importar para iniciar la importación.

gcloud (2.ª generación)

  1. Si aún no lo tienes, crea el archivo de volcado de SQL con los parámetros necesarios para garantizar que Cloud SQL puede utilizar el archivo de volcado.

    Si necesitas ayuda para crear un archivo de volcado de SQL, consulta el apartado sobre cómo crear un archivo de volcado de SQL.

  2. Crea un segmento de Cloud Storage si aún no lo has hecho.

    Si necesitas ayuda para crear un segmento, consulta el apartado sobre cómo crear segmentos de Storage.

  3. Sube el archivo de volcado al segmento.

    Si necesitas ayuda para subir archivos a segmentos, consulta el apartado sobre cómo subir objetos.

  4. Describe la instancia en la que vas a importar los datos:
    gcloud sql instances describe [INSTANCE_NAME]
    
  5. Copia el campo serviceAccountEmailAddress.
  6. Añade la cuenta de servicio al segmento ACL como escritor:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  7. Añade la cuenta de servicio al archivo de importación como lector:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:R gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    
  8. Importa la base de datos:
    gcloud sql instances import [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                                --database [DATABASE_NAME]
    

    Si deseas obtener más información sobre el uso del comando de importación, consulta la página de referencia del comando sql instances import.

    Si el comando devuelve un error como "ERROR_RDBMS", revisa los permisos, ya que suele deberse a problemas de permisos.

  9. Si no necesitas conservar los permisos proporcionados por las LCA y que has establecido con anterioridad, elimínalos:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

gcloud (1.ª generación)

  1. Crea un segmento de Cloud Storage si aún no lo has hecho.

    Si necesitas ayuda para crear un segmento, consulta el apartado sobre cómo crear segmentos de Storage.

  2. Sube el archivo de volcado al segmento.

    Si necesitas ayuda para subir archivos a segmentos, consulta el apartado sobre cómo subir objetos.

  3. gcloud sql instances import [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]
    

    Si obtienes un error como "ERROR_RDBMS", es posible que no tengas los permisos adecuados para importar desde ese segmento. Comprueba que tienes al menos permisos de "WRITER" en el segmento y de "READER" en el archivo de exportación. Si deseas obtener más información sobre cómo configurar el control de acceso en Cloud Storage, consulta el apartado sobre cómo crear y administrar listas de control.

    Si deseas obtener más información sobre el uso del comando de importación, consulta la página de referencia del comando sql instances import.

cURL

  1. Si aún no lo tienes, crea el archivo de volcado de SQL con los parámetros necesarios para garantizar que Cloud SQL puede utilizar el archivo de volcado.

    Si necesitas ayuda para crear un archivo de volcado de SQL, consulta el apartado sobre cómo crear un archivo de volcado de SQL.

  2. Crea un segmento de Cloud Storage si aún no lo has hecho.

    Si necesitas ayuda para crear un segmento, consulta el apartado sobre cómo crear segmentos de Storage.

  3. Sube el archivo de volcado a un segmento de Cloud Storage.

    Si necesitas ayuda para subir archivos a segmentos, consulta el apartado sobre cómo subir objetos.

  4. Proporciona a tu instancia permisos de escritura para tu segmento y de lectura para el archivo.

    Si necesitas ayuda para establecer LCA, consulta el apartado sobre cómo establecer LCA.

  5. Importa tu archivo de volcado:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"importContext":
                    {"fileType": "SQL",
                     "uri": "gs://[BUCKET_NAME]/[PATH_TO_DUMP_FILE]",
                     "database": "[DATABASE_NAME]" }}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/import
    
    Para obtener la lista completa de parámetros de esta solicitud, consulta la página instances:import.
  6. Si no necesitas conservar los permisos proporcionados por las LCA y que has establecido con anterioridad, elimínalos:

Importar archivos CSV a Cloud SQL

Antes de empezar

  • La base de datos y la tabla en las que vas a importar los datos deben existir previamente en la instancia de Cloud SQL.

Si necesitas ayuda para crear una base de datos, consulta el apartado sobre cómo crear bases de datos. Para crear una tabla, utiliza la declaración de SQL CREATE TABLE en el cliente mysql.

Requisitos de formato de archivos CSV

Los archivos CSV deben tener al menos una línea para cada fila de datos y sus campos separados por comas.

El formato de los archivos CSV que Cloud SQL acepta es equivalente al uso de las siguientes declaraciones de MySQL:

 "LOAD DATA INFILE ... CHARACTER SET 'utf8'

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"'.

Cuando prepares un CSV para importar, asegúrate de que la declaración seleccionada incluye estas declaraciones. Para obtener más información, consulta la página de la sintaxis SELECT en la documentación de MySQL.

Importar el archivo CSV

Para importar datos a una instancia de Cloud SQL mediante un archivo CSV, haz lo siguiente:

  1. Asegúrate de que el archivo CSV que vas a importar a Cloud SQL cumple con los requisitos descritos anteriormente.

    Si no es así, puedes utilizar la declaración LOAD DATA LOCAL INFILE en el cliente mysql que carga un archivo local en la base de datos. Esto requiere utilizar la opción --local-infile para el cliente mysql.

  2. Crea un segmento de Cloud Storage si aún no lo has hecho.

    Si necesitas ayuda para crear un segmento, consulta el apartado sobre cómo crear segmentos de Storage.

  3. Sube el archivo CSV a tu segmento.

    Si necesitas ayuda para subir archivos a segmentos, consulta el apartado sobre cómo subir objetos.

  4. Visita la página de instancias de Cloud SQL en la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  5. Selecciona la instancia para abrir su página de detalles.
  6. Haz clic en Importar en la barra de botones.
  7. Elige un archivo CSV de Cloud Storage para importarlo a tu instancia de Cloud SQL.
  8. En Formato, selecciona CSV.
  9. Especifica la base de datos y la tabla en la instancia de Cloud SQL donde vas a importar el archivo CSV.

    Tanto la base de datos como la tabla ya deben existir con anterioridad. Si necesitas ayuda para crear una base de datos, consulta el apartado sobre cómo crear bases de datos. Para crear una tabla, utiliza la declaración CREATE TABLE en el cliente mysql, disponible mediante Cloud Shell.

  10. Haz clic en Importar para iniciar la importación.
Para ver cómo se crea la solicitud de la API REST subyacente para esta tarea, consulta el explorador de API en la página instances:import.

Siguientes pasos