En esta página, se describe cómo importar un archivo CSV a una base de datos de AlloyDB.
El procedimiento para realizar la importación incluye las siguientes tareas:
Sube el archivo CSV a un bucket de Cloud Storage.
Prepara un host de cliente para realizar la operación de importación.
Importa el archivo CSV a la base de datos.
Limpia los recursos que se crearon para realizar el procedimiento.
Antes de comenzar
- Debes tener el rol de IAM básico de propietario (
roles/owner
) o editor (roles/editor
) en el proyecto de Google Cloud que usas, o bien debes tener estos roles de IAM predefinidos:- Administrador de AlloyDB (
roles/alloydb.admin
) o Visualizador de AlloyDB (roles/alloydb.viewer
) - Administrador de almacenamiento (
roles/storage.admin
) - Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
)
- Administrador de AlloyDB (
Sube el archivo CSV
Para subir el archivo CSV, debes crear un bucket de Cloud Storage y, luego, subir el archivo CSV a ese bucket.
Crea un bucket de Standard Storage o Regional Storage en el proyecto y la región en los que se ubica tu base de datos de AlloyDB.
Sube el archivo CSV al bucket de almacenamiento que creaste.
Prepara un host de cliente
Para preparar un host cliente para realizar la operación de importación, crea una VM de Compute Engine que pueda conectarse a la instancia principal de AlloyDB en la que se encuentra tu base de datos y, luego, instala la herramienta psql
y Google Cloud CLI en esa VM.
Sigue las instrucciones de Cómo conectar un cliente psql a una instancia para crear una VM de Compute Engine con la conectividad adecuada y la herramienta
psql
instalada. Cuando sigas estas instrucciones, asegúrate de asignar suficiente almacenamiento local a la VM de Compute Engine para que acepte el archivo CSV que importes.Instala la CLI de gcloud para proporcionar acceso de línea de comandos al archivo CSV en el bucket de Cloud Storage.
Importa el archivo CSV
Para importar el archivo CSV, obtén la dirección IP de la instancia principal de AlloyDB en la que se encuentra tu base de datos y, luego, usa la herramienta psql
para crear una tabla que contenga los datos CSV y, luego, importarla.
- Consulta sus detalles para obtener la dirección IP de la instancia principal de AlloyDB en la que se encuentra tu base de datos.
- Conéctate a la VM de Compute Engine mediante SSH.
Console
- En la consola de Google Cloud, ve a la página Instancias de VM.
- En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia que creaste.
gcloud
Usa el comando
gcloud compute ssh
para conectarte a la instancia que creaste.gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto que contiene la instancia.ZONE
: Es el nombre de la zona en la que se encuentra la instancia.VM_NAME
: El nombre de la instancia
- Copia el archivo CSV en el sistema de archivos local del host del cliente:
gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
- Importa el archivo CSV:
- Ejecuta la herramienta de cliente
psql
y, luego, en el mensaje de psql, conéctate a la base de datos:psql -h IP_ADDRESS -U postgres \c DB_NAME
Se te pedirá que ingreses la contraseña del usuario
postgres
.IP_ADDRESS
: Es la dirección IP de la instancia principal.DB_NAME
: Es el nombre de la base de datos en la que deseas almacenar los datos CSV.
- Crea una tabla para contener los datos del CSV, por ejemplo:
CREATE TABLE weather ( city varchar(80), temp_lo int, temp_hi int, prcp real, date date );
La sentencia
CREATE TABLE
anterior es solo a modo de ejemplo. Crea una tabla cuyas columnas coincidan con tus datos CSV. - Importa los datos del archivo CSV:
\copy TABLE_NAME(COLUMN_LIST) FROM 'CSV_FILE_NAME' DELIMITER ',' CSV HEADER ;
TABLE_NAME
: Es el nombre de la tabla que creaste en el paso anterior.(COLUMN_LIST)
: Es una lista separada por comas de los nombres de las columnas de la tabla a las que se importarán los datos, en el orden en que aparecen los datos en el archivo CSV.CSV_FILE_NAME
: Es el archivo CSV.HEADER
: Indica que el archivo CSV contiene una línea de encabezado que se debe ignorar. Si no es así, omite este parámetro.
El comando
\copy
enpsql
toma las mismas opciones y argumentos que el comandoCOPY
de PostgreSQL para controlar la operación de importación de datos. - Ejecuta la herramienta de cliente
Limpia los recursos
Después de importar correctamente el archivo CSV, puedes borrar el bucket de Cloud Storage y la VM de Compute Engine que usaste durante el procedimiento de importación.