Introducción a la carga masiva de datos
Imagina que te han enviado un archivo CSV con información sobre estudiantes, por ejemplo, desde otra base de datos o una app externa. ¿Copiar cada registro a mano? No, gracias. Aquí es donde la carga masiva de datos te salva la vida.
Aquí tienes algunos escenarios donde la carga masiva de datos es tu salvación:
- Migración de datos: necesitas mover datos de un sistema a otro. Por ejemplo, desde Excel o desde otra base de datos a PostgreSQL.
- Inicialización de la base de datos: rellenar tu base con datos iniciales, como una lista de ciudades, cursos o categorías de productos.
- Integración con sistemas externos: añadir nuevos datos regularmente, por ejemplo, actualizaciones de terceros a través de un archivo.
- Actualización de grandes volúmenes de datos: necesitas reemplazar datos antiguos por los actualizados.
¿Todo claro hasta aquí? Si sí, ¡vamos al siguiente paso!
Enfoques principales para la carga masiva de datos
Antes de meternos en detalles, vamos a comentar brevemente qué formas hay de meter en la base no una o dos filas, sino muchas de golpe. Vamos a ver cómo hacerlo con consultas SQL, y luego veremos una forma más cómoda y moderna: cargar datos desde archivos.
Consultas SQL para insertar datos
Ya sabes que para añadir datos se usa el comando INSERT INTO. Esto va genial si tienes pocos registros. Por ejemplo:
INSERT INTO students (id, name, age, course)
VALUES (1, 'Otto Lin', 20, 'Programación');
Pero si hablamos de decenas, cientos o miles de filas, este método ya no es eficiente. Claro, puedes automatizarlo en el código, pero mantener ese volumen de inserts a mano es complicado y nada cómodo.
Carga desde archivos
Por eso muchas veces se usa la carga de datos desde archivos, como CSV (Comma-Separated Values). Es un formato de texto simple donde cada línea es un registro y los valores están separados por comas o punto y coma.
Ejemplo de contenido de un archivo CSV:
id,name,age,course
1,Otto Lin,20,Programación
2,Maria Chi,21,Diseño
3,Alex Ming,19,Matemáticas
Este formato es fácil de leer tanto para humanos como para programas. Puedes abrir un CSV en Excel, procesarlo en Python o cualquier otro lenguaje, y sin problema importarlo a la base. La carga masiva de datos desde archivo es mucho más rápida que insertar a mano y reduce el riesgo de errores al meter datos.
Preparación para la carga masiva
El secreto de una carga exitosa está en la preparación. Vamos a preparar la base de datos para recibir datos, comprobar que la estructura encaja y que los datos son correctos.
Comprobación de la estructura de las tablas
Primero, asegúrate de que en tu base de datos tienes una tabla que encaje con la estructura del archivo. Por ejemplo, si vas a cargar estudiantes, necesitas una tabla con las columnas adecuadas.
Ejemplo de tabla para cargar datos de estudiantes:
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL,
course TEXT
);
Puntos importantes:
- Asegúrate de que los tipos de datos de las columnas coinciden con los datos de tu archivo. Si
agees un número, en el CSV esa columna también debe tener solo números. - Las columnas con restricciones (
NOT NULL,UNIQUE) requieren que prepares los datos con especial cuidado.
Comprobación de los datos
Ahora, un repaso rápido a los datos. Esto es lo que tienes que revisar antes de cargar:
- Que no haya filas vacías ni valores incorrectos. Por ejemplo, la fila:
12,,20,Programacióndará error, porquenamees un campo obligatorio.
Separadores correctos. Si tu CSV usa coma (
,), asegúrate de que está bien configurado. Si en vez de comas usas punto y coma (;), tienes que indicarlo al cargar los datos.Codificación. PostgreSQL espera archivos en UTF-8. Si tu archivo está en otra codificación (por ejemplo, Windows-1251), tienes que convertirlo.
Un chistecito de programador para relajar
¿Por qué a los programadores les mola tanto usar CSV? Porque después de horas peleando con JSON, por fin ven "datos simples"... hasta que se encuentran una coma en el texto.
Aplicación práctica de la carga masiva
En proyectos reales, la carga masiva se usa en todas partes. Por ejemplo:
- Al actualizar el catálogo de productos de una tienda online. Un archivo CSV con miles de productos se puede cargar en segundos.
- Al migrar clientes de un CRM a otro. Todos los datos de clientes, sus direcciones y pedidos se cargan desde CSV a PostgreSQL.
- En analítica, cuando necesitas cargar datos de ventas del mes para analizarlos.
Ahora que ya sabes para qué sirve esto y cómo prepararte, podemos pasar a herramientas concretas de carga de datos, como el comando COPY. Pero eso lo veremos en la próxima lección.
GO TO FULL VERSION