was successfully added to your cart.

BIG Data – Manejando pequeños volúmenes de datos

¿BIG DATA o simplemente bases de datos grandes?

Bueno, BIG DATA, la palabra tan de moda, que es el big data, que hacemos con el big data, ¿es nuevo el big data?

Yo creo que el «BIG DATA» viene existiendo desde hace muchísimos años, desde hace muchisimos años se hacen estudios de estadistica donde se manejan grandes volumenes de datos, millones y millones y millones. Y no se le llamaba big data.

Ahora bien, vamos a hacer una introducción de como podemos manejar en «BIG DATA» pequeños y medianos volúmenes de datos.

Cometí un error a la hora de estudiar la arquitectura de alimentación en una aplicación. Un error muy común donde la palabra ETL estaba de moda. Creí conveniente manejar esos datos y luego alimentar la BBDD. Un error brutal.

La aplicación básicamente se trataba de un ETL. Extraer, transformar y cargar. Y creo que no es lo mas conveniente, se pierde muchísimo tiempo en la transformación del dato a través de un lenguaje como por ejemplo PHP.

Todo va encaminado al «EL», extracción y carga (load en ingles), lo que tardabas horas en cargar y transformar, pasas a tardar segundos, y la transformación no es necesaria si se tiene una buena lógica en la BBDD.
Si necesitas transformar, que únicamente sea una transformación a fichero para cargar inmediatamente, en el caso de que te falle tendrás controlado el fichero que falló para volver a intentar subir.

Por lo que si tienes problemas en tu aplicación con el tiempo que tardas en transformar los datos, debes eliminar por completo ese modelo y transformar los datos en tus querys.

Para MYSQL utilizo las siguientes consultas:

LOAD DATA LOCAL INFILE '/ruta_al_fichero.csv' 
REPLACE
INTO TABLE bbdd_que_sea.tabla_que_sea 
FIELDS TERMINATED BY ';' #Ojo aquí que el csv puede venir separado por ',' 
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
( nombre_columna_a_la_que_va_la_COL1_del_csv, nombre_columna_a_la_que_va_la_COL2_del_csv.....);

Algunos comandos utiles:

#Cuando tengais problemas con Ficheros csv QUE tengan fechas invalidas (null)
SET @@SESSION.sql_mode='ALLOW_INVALID_DATES';
#Cuando necesiteis transformar un formato de fecha en otra:
NOMBRE_COL_BD = STR_TO_DATE(@NOMBRE_COL_BD, '%d-%b-%y');
#Teneis todos los usos aqui: https://www.w3schools.com/sql/func_mysql_str_to_date.asp