Del bit al Geopbyte, la tendencia de los datos es a crecer exponencialmente. Cada dia se vuelcan en la red 2 millones de Terabytes de datos. Para poner un ejemplo, actualmente Twitter genera más de 13 Terabytes cada día.
¿Quién genera toda esta información? Pues todo y todos:
- Las empresas capturan trillones de bytes de información sobre clientes, proveedores y toda clase de operaciones
- Nos encontramos en la era de la Internet de les coses, de las smart cities, del M2M (Machine to Machine) donde millones de dispositivo y sensores interconectados generan datos.
- Cualquiera de nosotros, desde nuestro smartphone o red social, hacemos logins, mails, tuits, búsquedas, fotografías y videos digitales, posts, compras electrónicas, ... vivimos online expresando gustos, disgustos, opiniones, perspectivas. Para cada publicación que realizamos en Facebook, se generan muchos más datos de rastreo y control.
Según la definición de Gartner “El Big Data son activos informacionales de gran volumen, velocidad y variedad, que demandan formas innovadoras y efectivas de procesar la información para la toma de decisiones".
Nunca antes han habido tantos datos (volumen), tan diversos (variedad) y que se generan tan rápidamente (velocidad). Pero en esta definición, todavía falta la cuarta "V" del Big Data, el valor, porque estos datos no son grades sino son útiles.
Retos del Big Data
Almacenamiento, procesamiento, búsqueda, compartición, indexación o visualización, entre otros, en Big data todo adquiere otra dimensión. Los gestores de Bases de Datos convencionales no nos sirven, hacen falta centenares o millones de servidores ejecutando software de proceso masivo y en paralelo,.... no hay duda que el trabajo con estas grandes cantidades de datos supone un desafío a las tecnologías tradicionales.
Si nos fijamos en las cuatro Vs:
- Volumen: ¿Cuando tenemos un gran volumen de datos? Cuando este volumen de datos no se puede tratar sin la ayuda de herramientas de análisis complejas.
- Variedad: Los datos han pasado de estar estructurados (bases de datos relacionales, hojas de cálculo, ficheros csv, ... ) a estar semiestructurados (XML, JSON) o totalmente desestructurados (texto, imágenes, videos). Solamente un 20% aproximadamente de los datos, se encuentran almacenados en sistemas tradicionales que permiten analizar la información de forma estructurada.
- Velocidad: Tenemos una alta velocidad de generación de datos y necesitamos una alta velocidad de respuesta para poderlos procesar.
- Valor: Transformar la totalidad de los datos (o el máximo número posible) primeramente en información y finalmente en conocimiento.
Soluciones tecnológicas
Los sistemas de almacenamiento masivo y el procesamiento distribuido (clustering) son las soluciones tecnológicas que hacen posible dar respuesta a un problema de Big Data. A continuación, unas breves pinceladas de estas soluciones:
Almacenamiento masivo: Como almacenar y trabajar con grandes volúmenes de datos
En este ámbito, es necesario saber que las tradicionales bases de datos relacionales con los datos estructurados en tablas, relacionadas mediantes claves, con un determinado esquema y normalización y con el SQL estándar de toda la vida para realizar las consultas, presentan problemas y tienden a no poder mantenerse.
Debemos inclinarnos hacia las bases de datos NoSQL (Not Only SQL) y encontramos de varios tipos:
- Base de datos Clave Valor:
- Modelo de datos: Parejas de clave-valor
- Basadas en Documentos:
- Basadas en Columnas:
- La primera implementación fue hecha por Google (BigTable).
- Modelo de datos: Datos en columnas con índice y timestamp
- Sin esquema.
- Las más conocidas: Apache HBase, Cassandra (utilizada por Facebook).
- Basadas en Grafos:
Las bases de datos NoSQL nos permiten rendimiento, disponibilidad y exactitud pero... ¿cómo se realizan las consultas? Pues utilizando sintaxis propias o utilizando APIs tipo REST.
Procesamiento distribuido: cómo interpretar y analizar datos de naturaleza tan variada
Se ha mencionado previamente, es necesario repensar el procesamiento donde básicament el problema es el acceso a disco. Es necesario encontrar formas para acceder a los discos en paralelo. En este sentido suenan dos tecnologías:
- Paradigma MapReduce: Modelo de programación introducido por Google para realizar el procesamiento masivo más rápido y más barato. Permite escribir aplicaciones que procesan conjuntos de datos de múltiples terabytes, en paralelo, dentro de clústeres con miles de nodos. En lugar de utilizar un supercomputador, se adapta a la computación distribuida con clústeres formados por ordenadores normales y heterogéneos.
El programador tiene que implementar dos funciones:- Map: divide los datos de entrada en varias piezas clave/valor.
- Reduce: estos datos preparados por el map son operados dando como resultado otro nuevo conjunto clave/valor con los resultados.
- Tecnología Hadoop: Es una implementación OpenSource de un entorno de ejecución MapReduce.
Hay que aprender a programar de esta manera.
Big Data en el mundo universitario
El Big Data en el mundo en el que nosotros nos movemos, la universidad, en general se encuentra principalmente focalizado en el campo de la investigación, donde la necesidad de gestionar grandes cantidades de datos no ha sido un gran problema gracias a los sistemas de supercomputación (HPC), grid computing y actualmente, cloud computing. Es más reciente, sin embargo, la aplicación en el ámbito de la docencia y el aprendizaje, y a menudo se asocia a recoger grandes cantidades de datos sobre las actividades digitalizadas de los estudiantes para transformarlo en información y producir o recomendar acciones orientadas a la mejora de los objetivos de aprendizaje.
La TSIUC'14 (Trobada dels Serveis Informátics de les Universitats Catalanes) tendrá lugar el 2 de diciembre en la Universidad Autónoma de Barcelona, bajo el lema "Reptes en Big Data a la universitat i la recerca". Seguro que entonces podemos profundizar más sobre este tema.