01 - Carga Masiva de Datos
01 - Carga Masiva de Datos
Imaginemos ahora que pasara si fuera una organizacin muy grande, donde se
tengan registros de miles o millones de usuarios, como el caso de la Registrara
Nacional o el DANE. Sera una tarea absurda la de ingresar registro por registro,
sabiendo que cada da la cantidad de informacin en la organizacin crece
paulatinamente.
Es por eso que existen tcnicas de carga masiva de datos, es decir, archivos que
contienen miles o incluso millones de registros que necesitan ser cargados a la base
de datos de una organizacin, solamente usando una sola sentencia SQL. Sin
embargo, se debe tener en claro, como est estructurada la base de datos, sus
tablas y los datos, para aplicar esta funcin en las bases de datos de manera
exitosa.
TABLA DE CONTENIDO
2.1. Requisitos
El tipo de archivo admitido para cargar los datos masivamente puede ser del
siguiente tipo:
.txt
.CSV
.xml
.xmls
Para efectos prcticos de este taller, vamos a cargar los datos masivamente
mediante un archivo de extensin .CSV
Para delimitar los campos para cada registro, se usa punto y coma ;.
Para delimitar los registros, se usa un salto de lnea, es decir, que queda un
registro debajo de otro.
Ejemplo: vamos a dejar los datos de la tabla, en el formato que se usa en .CSV.
Para efectos prcticos, vamos a guardar el archivo que contiene los datos masivos:
profesor.CSV en la ruta C:/, es decir, en la raz del disco local C.
Ahora abrimos la consola y ejecutamos la sentencia como sigue a continuacin:
COPY profesor FROM C:/profesor.CSV USING DELIMITERS ;
Para el motor de bases de datos MySQL, la sentencia de carga masiva de datos es:
Anlisis de la sentencia
LOAD DATA LOCAL INFILE: Indica que se van a cargar datos desde un archivo
local, es decir, alojado en la misma mquina. Luego entre comillas simples se
escribe la ubicacin del archivo con su respectiva extensin.
INTO TABLE: Indica a que tabla se cargaran los datos masivos. Despus se escribe
el nombre de la tabla.
FIELDS TERMINATED BY: Indica cual va a ser el delimitador de los campos de un
registro, se escribe luego entre comillas simples el carcter delimitador.
LINES TERMINATED BY: Indica cual va a ser el delimitador para los registros, este
delimitador se escribe entre comillas simples y se recomienda usar el salto de lnea
\n, como en programacin.
Finalmente entre parntesis se escribe el nombre de los campos en el orden como
se quiere que se guarden o como se tengan los datos. Se separa con una coma
estos nombres de columnas.
mysql u root p
USE examenes;
Luego, creamos la estructura de la base de datos, a partir del archivo DDL.txt
(adjunto en la carpeta de este taller), podemos copiar y pegar cada sentencia.
Hay que conocer muy bien el motor de bases de datos con el que se est trabajando,
para ver que funciones ofrece para este tipo de caractersticas y de qu forma se
usa, ya que algunos motores son ms estrictos que otros en el tema de la carga
masiva de datos.
Por ltimo, se debe tener cuidado en la forma como est estructurada la base de
datos, mas estrictamente la tabla, y en cmo estn organizados los datos masivos,
almacenados en el archivo, ya que una mala prctica, puede traer desgastes
tcnicos y administrativos, porque se debe modificar o en su defecto, volver a crear
la base de datos desde cero, en el caso de que se carguen incorrectamente los
datos, y esto puede traer consecuencias fatales si se ignora, ya que sera imposible
conseguir una consulta correctamente.
7. REFERENCIAS
ALARCON, Paul. Subir un csv a una base de datos postgres. {En lnea}. 01 de
Julio de 2013. {02 de Abril de 2016}. Disponible en:
http://pag66.blogspot.com.co/2013/07/subir-un-csv-una-base-de-datos-
postgres.html
LARA, Jess. Cargar datos en mySQL con LOAD DATA INFILE. {En lnea}. 03 de
Agosto de 2007. {02 de Abril de 2016}. Disponible en:
https://phenobarbital.wordpress.com/2007/08/03/cargar-datos-en-mysql-con-load-
data-infile/