Mejora tu currículum con la mejor formación

9%

¿Qué quieres estudiar?

Rubén Casado

Mayte Guillen

24 de septiembre de 2015

Rubén es Doctor en Informática por la Universidad de Oviedo, donde actualmente es miembro del Grupo de Investigación en Ingeniería de Software. También ha colaborado como investigador visitante en Reino Unido y Francia. Ha publicado multitud de artículos científicos en congresos y revistas internacionales, y ha participado en numerosos proyectos de investigación tanto nacionales (TIN, PCTI) como internacionales (FP7, H2020). Desde 2012 es el responsable del área de Big Data en Treelogic.

Rubén Casado
Foto: Ruben-Casado

Big Data, Data Science y Negocio

El mundo de la informática, tal y como la conocemos hoy, no ha parado de evolucionar desde sus inicios allá por los años 30 del siglo pasado cuando genios como Alan Turing y John Von Newman ponían las bases teórico-físicas para lo que algunos consideran la Tercera Revolución Industrial. En sus primeras fases, el objetivo de la Informática era explotar sus capacidades de computación para realizar cálculo complejos en tiempos razonables. Estas habilidades permitieron el avance científico en múltiples campos incluyendo matemáticas, física, biología o química.

Con la aparición de Internet en los años 90 del siglo XX, la informática vislumbra en las comunicaciones un nuevo campo que abordar. Internet ganó rápidamente una gran aceptación entre la sociedad convirtiéndose en un pilar básico de nuestro día a día en estos comienzos del siglo XXI. Aparece el concepto de Internet de las Cosas (IoT, Internet of Things) para englobar el amplio número de dispositivos electrónicos que se conectan a la red de redes. Podríamos decir que los dispositivos IoT no son más que una evolución tecnológica de los sensores, con la característica añadida de que la información que reciben ahora pueden comunicarla en tiempo real a cualquier parte del mundo a través de Internet.

Un ejemplo muy claro de este tipo de dispositivos es nuestro Smartphone. Nuestros teléfonos inteligentes pueden registrar nuestra posición mediante coordenadas GPS o disponer información gráfica mediante su cámara de fotos y video. Y todo ello conectado a Internet gracias a la conexión 4G y WiFI. Comienza una era donde la información generada en las comunicaciones es tan valiosa como la misma comunicación. Pero no toda la información que se genera es por la captación de sensores. Por ejemplo referido a los smartphones, a todo los datos anteriores podemos añadirle aquellas actividades que la mayoría de nosotros realizamos varias veces al día: búsquedas en Internet, redes sociales, etc.

Según un informe de OBS, en un minuto, en Internet se generan 4,1 millones de búsquedas en Google, se escriben 347.000 twitts, se comparten 3,3 millones de actualizaciones en Facebook, se suben 38.000 fotos a Instagram, se visualizan 10 millones de anuncios, se suben más de 100 horas de vídeo a Youtube, se escuchan 32.000 horas de música en streaming, se envían 34,7 millones de mensajes instantáneos por Internet o se descargan 194.000 apps. En total, en un minuto se transfieren más de 1.570 terabytes de información.

Internet y las comunicaciones no son los únicos orígenes de datos. La generación masiva de datos la podemos encontrar en diversas industrias donde las compañías mantienen grandes cantidades de datos transaccionales acerca de sus clientes, proveedores, operaciones, etc. En el sector público vemos como se administran enormes bases de datos que contienen datos de censo de población, registros médicos, impuestos, etc.

Pero no solamente somos los seres humanos quienes contribuimos a este crecimiento enorme de información, existe también la comunicación denominada máquina a máquina (M2M machine-to-machine) cuyo valor en la creación de grandes cantidades de datos también es muy importante. Sensores digitales instalados en contenedores para determinar la ruta generada durante una entrega de algún paquete y que esta información sea enviada a las compañías de transportación, sensores en medidores eléctricos para determinar el consumo de energía a intervalos regulares para que sea enviada esta información a las compañías del sector energético, etc.

Según un informe de IBM, se estima que hay más de 30 millones de sensores interconectados en distintos sectores como automotriz, transportación, industrial, servicios, comercial, etc. y se espera que este número crezca en un 30% anualmente.

Como resumen, se calcula que el 90% de la información que la humanidad ha generado en toda su historia se ha creado en los últimos dos años. Esta explosión de información trae consigo una serie de retos tecnológicos así como nuevas posibilidades de negocio.

Desde el punto de vista puramente técnico, se denomina Big Data a los sistemas de información que sobrepasan las capacidades de las tecnologías tradicionales basadas principalmente en base de datos relacionales. Las características de la información que hace que se requiera nueva tecnologías son principalmente 3: Volumen, Velocidad y Variedad. Podemos encontrar en otros textos nuevas “Vs” añadidas en esta definición (por ejemplo Valor, Veracidad, Variabilidad…) pero a nivel tecnológico, las 3 Vs originales son las importantes:

  • Volumen: Hace referencia al tamaño de los datasets a manejar. Actualmente es habitual tener que procesar cantidades de datos en la escala de los Gigabytes o Terabytes por lo que las técnicas de almacenamiento en memoria no son viables.
  • Velocidad: Se refiere no solo a la alta frecuencia con la que se generan nuevos datos, sino a la necesidad de dar respuesta a la información en tiempo real.
  • Variedad: Se refiere a la naturaleza diversa de la información a manejar. Venimos de información estructurada que encajaba perfectamente en el modelo relacional pero ahora nos encontramos con información semi- y des- estructurada (video, audio, imágenes, redes sociales, etc.) que requiere de nuevos métodos de persistencia y consulta.

La revolución tecnológica del Big Data nació en el mundo industrial para dar respuesta a las problemáticas derivadas de las 3 Vs. En 2003, Google publica dos artículos científicos explicando cómo resuelven el problema del procesamiento masivo de datos mediante computación distribuida. Describen los conceptos del sistema de ficheros distribuido (Google File System) y el framework de programación MapReduce que la comunidad abierta de desarrolladores convertiría en la archifamosa tecnología Hadoop (compuesto por Hadoop File System y Hadoop MapReduce).

En los siguientes años, empresas como Yahoo! (S4, 2010), Twitter (Storm, 2011) o LinkedIn (Kafka, 2011) presentaron tecnologías para procesar información en streaming en tiempo real. Paralelas a las tecnologías de procesamiento Big Data también se evolucionó los sistemas de persistencia para dar respuesta a la problemática de la variedad de datos.

Durante la primera década del siglo XXI, se empiezan a poner en práctica nuevos bases de datos basadas en grafos (Neo4J), en documentos (MongoDB), toman nueva importancia algunas existentes basadas en clave-valor (BerkeleyDB), algunas evolucionan al almacenamiento puro en memoria (Redis), o para la escalabilidad horizontal máxima (Amazon Dynamo, Facebook Cassandra, Linkedin Voldemort, HBase, etc.).

Teniendo en cuenta la problemática derivada de las 3 Vs, podemos agrupar las soluciones en tres grandes paradigmas:

  • Batch processing: Es la solución para procesar grandes cantidades de datos. El objetivo es definir soluciones informáticas que escalen horizontalmente. El mismo código de programación debe funcionar independientemente del tamaño del dataset a procesar. Para ello utilizan enfoques de computación distribuida y programación paralela. Si el dataset crece, simplemente es necesario añadir más nodos de computación al clúster, pero el código del software es exactamente el mismo. Una característica fundamental del batch processing es que el tiempo de ejecución puede ser largo debido al tamaño del dataset. Hadoop fue sin duda la tecnología estrella para batch processing, aunque en la actualizad tecnologías como Apache Spark y Apache Flink están ganando terreno ya que aportan nuevas capacidades superiores a las que ofrece Hadoop.
  • Streaming processing: Es la solución para procesar información generada en streaming con baja latencia. El objetivo es ser capaz de adquirir, analizar y dar respuesta a los nuevos eventos en tiempo real. Por tanto a diferencia del batch processing, aquí lo más importante es que el procesamiento sea muy rápido. Se utilizan estrategias similares a las empleadas por las tecnologías de batch processing: computación distribuida y programación paralela. Para conseguir tiempos de respuesta rápidos, los streamings de datos se procesan directamente en memoria principal (donde se almacenan los estados actualizados también) lo que agiliza el procesamiento. Existen dos estrategias de análisis para streaming processing: event processing y micro-batch. La diferencia entre ambos enfoques es que mientras en el micro-batch se agrupan diferentes eventos antes de pasar a la fase de análisis, en event processing cada vez que llega un simple evento es pasado a la fase de análisis. Actualmente existen diversas tecnologías para streaming processing incluyendo Apache Storm (event processing), Spark Streaming (micro-batch) o Samza (event processing).
  • NoSQL: Es la solución para gestionar información con diversidad de esquemas, modelos y usos de datos. Se abandona la idea del paradigma único de modelado y almacenamiento de datos basado en SQL para adentrarse en otras familias de bases de datos más adecuadas para según qué contextos. NoSQL (en inglés Not only SQL) es un concepto justamente para definir eso: quizás el modelo SQL no es el adecuado para todas las aplicaciones. Esto no significa que las bases de datos SQL no sean válidas en la actualidad, todo lo contrario. Significa que dependiendo del sistema de información necesitaremos usar una base de datos SQL, una de otra familia, o posiblemente varias diferentes. Las bases de datos SQL implementan las propiedades ACID (Atomicidad, Consistencia, Aislamiento Isolation, Durabilidad) muy adecuadas para asegurar la fiabilidad de los datos. Pero el cumplimiento de las propiedades ACID tiene un impacto negativo en la escalabilidad y rendimiento de las bases de datos. Por eso las bases de datos NoSQL relajan estas propiedades buscando nuevas funcionalidades. NoSQL no es un único tipo de bases de datos, sino un conjunto de ellas que se pueden agrupar en: (i) clave-valor (BerkeleyDB, Redis), (ii) orientadas a columnas (HBase, Cassandra), (iii) basadas en documentos (MongoDB) y (iv) para grafos (Neo4J).

Cuando se implementa un sistema Big Data es posible la necesidad afrontar varias de las 3 Vs por lo que tendremos que combinar las estrategias propuestas. Un caso concreto es cuando se tiene que procesar por un lado grandes cantidades de información estática (batch processing) pero también tener en cuenta la nueva información que se está generando en tiempo real (streaming processing). Esta combinación de estrategias de denomina hybrid processing y existen varias soluciones arquitectónicas para implementarlo como son las Arquitecturas Lambda y Kappa.

Anteriormente hemos comentado los problemas y soluciones tecnológicos de los sistemas Big Data derivados de esas famosas 3 Vs. Parece entonces que la problemática Big Data es un problema de Ingeniería. ¿Es también un problema de Ciencia? ¿Dónde entra en el concepto de Data Science? Para dar respuesta a esa pregunta tenemos que incluir una 4 V en la ecuación: Valor. De nada sirve procesar más cantidad de información, información de diferente naturaleza, o de forma más rápida, si con ello no conseguimos un valor extra para nuestros intereses. Es ahí donde entran los procesos analíticos de datos. Data Science es un concepto acuñado recientemente para agrupar estrategias de análisis de datos que beben de diferentes campos incluyendo matemáticas, estadística, aprendizaje automático y minería de datos.

Originalmente el concepto Big Data hace referencia a las estrategias de Ingeniería del Software para el diseño e implementación de sistemas escalables intensivos en datos. Por tanto Big Data se centra en el desarrollo de software capaz de gestionar grandes cantidades de datos (Volumen), datos que se generan en tiempo real y/o que necesitan ser procesados para dar una respuesta en tiempo real (Velocidad), y datos con una estructura diversa (Variedad).

El objetivo de Big Data es construir la infraestructura que soporte la escalabilidad horizontal y los tiempos de respuesta adecuados según el proyecto concreto. Sobre esas arquitecturas, se desarrollarán posteriormente los procesos analíticos de datos para extraer valor de la información. Es tarea de Data Science el análisis y aplicación de las estrategias de explotación de datos (métodos estadísticos, Aprendizaje Automático, etc.) más adecuados en cada situación.

Por tanto se puede derivar que Big Data y Data Science son dos campos complementarios. Existirán proyectos Big Data donde el objetivo será hacer escalable un sistema que actualmente no lo es y que por tanto no requiera estrategias de Data Science. También existirán proyectos donde será necesario analizar de forma inteligente ciertos datasets pero que no se requiera el potencial de las tecnologías Big Data. Y por último, existirán proyectos donde se necesite la construcción de sistemas Big Data escalables y aplicar sobre esas infraestructuras, algoritmos inteligentes de Data Science para extraer el auténtico valor de los datos.

Desde el punto de vista de negocio, aquellas empresas que sean capaces de analizar y generar valor a través de estos datos, a gran velocidad y con una flexibilidad sin precedentes, conseguirán una importante ventaja competitiva, mejorando el conocimiento de su empresa, de sus productos y de sus clientes, propiciando que se abran nuevas oportunidades de crecimiento y expansión completamente impensadas hasta el momento. Así, el tratamiento masivo y analítico de los datos de la empresa aumenta la capacidad de crear nuevos productos y permite conocer mejor el comportamiento de su negocio, optimizar las ventas cruzadas, tener una visión integral del cliente, detectar oportunidades de negocio, obtener resultados centrados en el cliente, gestionar el riesgo de liquidez o mejorar sus ecosistemas de información.

Por tanto se le puede sacar provecho en sectores tan distintos como el financiero –para determinar con más precisión el riesgo de crédito de un individuo a partir de sus datos financieros y su comportamiento en las redes sociales–; el sanitario –identificando correlaciones existentes entre patologías a priori independientes ayudando así a una mejor prevención de las mismas–; o el deportivo –en base al análisis el equipo técnico puede tomar decisiones incluso en tiempo real–.

Como conclusión podemos decir que las tecnologías Big Data y las estrategias Data Science abren un campo de posibilidades para obtener nuevos beneficios en diversas áreas que van desde el científico y médico al empresarial o deportivo pasando por el financiero y el marketing. Aquellos que sepan aprovechar este potencial conseguirán aventajar a sus competidores. ¿A qué esperas para empezar a explotar los beneficios del Big Data?