- ¿Qué es una base de datos? - noviembre 7, 2020
- ¿Es la programación una profesión para ti? - septiembre 3, 2020
- Temporada 2020-2021 - julio 15, 2020
Introducción
En este post hablaré sobre el concepto del Big Data, la razón de su aparación y para qué se utiliza.
Desde los inicios de la informática, mediados del siglo XX, se ha ido buscando el almacenamiento de información tanto a nivel personal como en entornos laborales. A medida que iba pasando el tiempo, iban apareciendo nuevos datos procedentes de diferentes fuentes tecnológicas que se iban incorporando a la información que se estaba almacenando normalmente. El nivel de información almacenada por los sistemas crece de forma exponencial, lo que ha propiciado que aparezcan nuevas tecnologías que permitan trabajar con volúmenes tan altos de datos.
Referente al crecimiento de la información almacenada, os voy a contar una anécdota que me llamó la atención cuando asistí al «Oracle Digital Day» en Madrid. Manuel Martín, Senior Researcher and Data Scientist en el CERN, indicó que ellos generan 1Petabyte al segundo y que no existe tecnología, ni Hardware ni Software, capaz de almacenar esos volúmenes de información. Para hacernos a la idea, 1Petabyte equivale a 1000Terabytes, teniendo en cuenta que un ordenador doméstico suele tener 1Terabyte… y toda esa información la generan al segundo!
¿Por qué surge Big Data?
En el mundo actual de la informática se tiende a creer que todo lo que deseamos hacer con bases de datos podemos hacerlo con el modelo relacional, pero existe una serie de problemáticas relacionadas con estas bases de datos que ha llevado a que se creen una serie de herramientas y sistemas que aportan una forma alternativa de atacar problemas y/o mejorar nuestros sistemas.
Esta serie de problemáticas son:
- Variedad de tipos de datos: Han aparecido nuevos tipos de datos, como por ejemplo los datos no estructurados, que las bases de datos relacionales no pueden almacenar.
- Escalabilidad: En la actualidad, las bases de datos relacionales no pueden estar distribuidas en nodos diferentes de forma sencilla y transparente para el usuario, por lo que, se debe aplicar una escalabilidad vertical añadiendo CPU y memoria. Pero, lo que se busca en escalabilidad es la escalabilidad horizontal para poder tener todos los servidores que queramos trabajando en paralelo sin límite alguno.
- Modelo relacional: Con el modelo relacional no es posible optimizar al 100% los sistemas, ya que, por ejemplo, podríamos necesitar tener herencia de objetos, columnas variables según las filas…
- Velocidad: En la actualidad se generan datos de forma muy elevada, por ello, es necesario tener una velocidad de procesado que sea capaz de escalar de forma horizontal para poder trabajar en paralelo y ahorrar tiempo; siguiendo la técnica del divide y vencerás.
Por todas estas problemáticas surge Big Data, para poder resolver con mayor eficacia los problemas de la lista anterior.
¿Qué es el Big Data?
Si hablamos de Big Data estamos hablando de almacenamiento masivo de datos, pero no únicamente de almacenamiento, también hablamos de las técnicas que se utilizan para el tratamiento de los datos almacenados que permiten realizan operaciones de forma rápida con dichos datos.
Big Data se caracteriza por las 3V’s, que no es otra cosa que velocidad a la hora de procesar los datos, gran volumen de datos y variedad de datos. A continuación una imagen descriptiva de las 3V’s.
Entre todos los medios que generan cantidades de datos tan elevadas, los más relevantes que podemos encontrar son:
- Redes Sociales: Casi todos los ciudadanos del planeta están generando constantemente datos en alguna red social.
- Instrumentos científicos: Mediciones de todo tipo.
- Dispositivos móviles: Hacen seguimiento de todo durante todo el tiempo que están conectados.
- Sensores: Toman mediciones constantemente.
Sobre este tipo de datos suelen realizarse diferentes tareas, entre las que destacan las mostradas en la siguiente imagen:
Estas tareas consisten en:
- Almacenamiento: Guardar la información en el sistema.
- Filtrado: Seleccionar una parte de la información únicamente para trabajar.
- Estadísticas: Elaborar estadísticas con los datos almacenados.
- Búsquedas: Realizar búsquedas en los datos almacenados.
- Indexación: Indexar la información para poder acceder a ella más rápidamente.
- Descubrir conocimiento: Aplicar algoritmos de descubrimiento de información a los datos almacenados.
Referente a los tipos de datos de Big Data, podemos indicar que existen tres tipos diferentes tareas sobre los datos de Big Data en función de los tipos de datos:
- Datos Estructurados: Son datos que tienen bien definido su longitud y su formato, tales como fechas, enteros, etc.
- Datos No Estructurados: Son datos que necesitan ser almacenados tal y como se recogieron y carecen de un formato específico, tales como ficheros PDF, documentos multimedia…
- Datos Semiestructurados: Son datos que no se limitan a campos determinados, pero que contienen marcadores para separar los diferentes elementos, tales como XML, JSON…
En la actualidad existen multitud de tecnologías para trabajar con Big Data, entre las que podemos destacar Hadoop, NoSQL, MapReduce… la diferencia entre ellas radica en la propia funcionalidad que desempeñan dentro del Big Data y los tipos diferentes de datos sobre los que trabajan.
Resumen y conclusiones
Big Data ha nacido para quedarse y solucionar los problemas que te he expuesto durante el post, es una tecnología en auge que será adoptada por todas las empresas importantes, en caso de que no la hayan adoptado ya.
En los próximos posts profundizaré más en MapReduce y en Apache Hadoop, ¡empezarás a tocar Big Data!