Está llegando el Big Data, ¿qué tecnologías lo soportan?, ¿Cómo evolucionarán? 1 Se avecina una marea de información digital 2 ¡Y en todos los sectores! • Redes Sociales: Twitter genera 90 millones de Tweets por día, que representa 8 Terabytes • Industria (Internet of Things): Los motores boeing en un vuelo transoceánico de un jumbo pueden generar 640 Terabytes (10 Terabytes de información cada 30 minutos) • Comercio: Wal-Mart genera 1 millón de transacciones por hora, que se estima que alimenta una base de datos de 2.5 Petabytes. • … y lo mismo en todos los sectores. NOTA: 1 Gigabyte (GB) = 1.000.000.000 byte 1 Terabyte (TB) = 1.000 Gigabyte (GB) 1 Petabyte (PB) = 1.000.000 Gigabyte (GB) 1 Exabyte (EB) = 1.000.000.000 Gigabyte (GB) 1 Zettabyte (ZB) = 1.000.000.000.000 (GB) 3 Pero … ¿Qué es el Big Data? Al igual que pasa con el Cloud Computing, no hay una única definición de consenso para este nuevo fenómeno que llamamos Big Data. Yo considero razonable considerar como Big Data todo aquello que hace referencia a que los datos han llegado a ser tan grandes que no se pueden procesar, almacenar y analizar mediante métodos convencionales. Una manera de caracterizar estos datos que se utiliza a menudo es usando lo que llaman las 3 V en referencia a volumen, variedad y velocidad: •Volumen: el universo digital sigue expandiendo sus fronteras y se estima que ya hemos superamos la barrera del Zettabyte. Un incremento estimado del x44 entre 2009 y 2020 (McKinsey Global Institute Report) •Velocidad: la velocidad a la que generamos datos es muy elevada y la proliferación de sensores en el mundo IoT es un buen ejemplo. •Variedad: los datos no sólo crecen sino que también cambian su patrón de crecimiento y ahora el contenido es desestructurado. 4 Los datos son más importante que nunca, pero su crecimiento exponencial, la complejidad de los formatos y la velocidad de entrega ha desbordado la capacidad de la tecnología actual para gestionarlos y obtener beneficios a partir de ellos. Por ejemplo, si observamos esta gráfica esquemática de tiempo de respuesta de los sistemas actuales podemos observar que tenemos limitaciones importantes en el caso de aplicaciones que tienen nuevos requerimientos para poder atender decisiones en tiempo real, o que el conjunto de datos ha crecido demasiado para los sistemas convencionales de almacenado y procesado. 5 Para el primer grupo de aplicaciones ya tenemos algunas propuestas como in-memory. Pero para grandes volúmenes de datos debemos encontrar nuevas formas de almacenar, gestionar, procesar y analizar los datos. 6 La aparición de solución a la persistencia del almacenamiento de los datos a través de tecnologías de memoria no volátil llevarán en breve muchas mejoras de almacenamiento. Como memorias que son, se está haciendo investigación para conectarlas al bus interno de los ordenadores que conecta con el procesador. De esta manera se permitirá al procesador acceder a los datos persistente a través de las instrucciones de memoria Load / Store, ofreciendo un acceso simple y rápido, reduciendo aún más el tiempo de acceso al almacenamiento persistente. Es la investigación que se conoce como "Storage Class Memory" que trata de diseñar un sistema de almacenamiento de capacidad y economía similares a los HDD, pero con unas prestaciones de rendimiento equivalentes a la memoria. Actualmente es una de las áreas de investigación más activas que sin duda tendrá un impacto muy importante en el mundo del Big Data, permitiendo acelerar la ejecución de las aplicaciones intensivas en datos. 7 Las bases de datos relacionales no pueden manejar el tamaño, la complejidad de los formatos o la velocidad de entrega de los datos que requieren algunas de las aplicaciones de hoy en día, por ejemplo aplicaciones on-line con miles de usuarios concurrentes y millones de consultas al día. En la figura se presenta esquemáticamente el comportamiento de los sistemas de almacenamiento actuales. Podríamos resumir que tienen dos grandes limitaciones. Por un lado no pueden atender los requerimientos que hoy en día algunas aplicaciones tienen, como las de tener un tiempo de respuesta muy bajo. En estos casos hoy por hoy se están poniendo los datos en memoria (lo que se conoce por in-memory y se ha presentado antes). Este tipo de aplicaciones se verán beneficiadas de las mejoras que se prevén en almacenamiento comentadas anteriormente. Y por otra parte aparece el problema de que determinadas aplicaciones requieren un volumen de datos que ya no pueden ser almacenados y procesados usando bases de datos tradicionales. 8 Hasta ahora el escenario de las Bases de Datos ha estado marcado por lo que se conoce como SQL (Structured Query Language, o lenguaje de consulta estructurado). En el mercado encontramos muchas opciones consolidadas. Estas bases de datos que se suelen denominar relacionales, siguen las reglas ACID, lo que les permite garantizar que un dato sea almacenada de manera inequívoca y con una relación definida sobre una estructura basada en tablas que contienen filas y columnas. En el mundo de las bases de datos NoSQL se habla de otra propiedad llamada BASE (Basically Available, Soft state, Eventual consistency). Todo un mundo que no tenemos tiempo de explorar en esta presentación. Un ejemplo ilustrativo puede ser cómo se expresa la consistencia eventual en la gestión del muro de Facebook. 9 ¿Pero qué es MapReduce? MapReduce fue creado por Google para dar respuesta a sus necesidades en la creación de los índices de las búsquedas. A grandes rasgos, la clave de la innovación que representó MapReduce fue que tenía la habilidad de hacer una consulta sobre un gran conjunto de datos, dividiéndola y ejecutándola en paralelo sobre muchas máquinas (discos) a la vez. Pero además, si bien es cierto que la capacidad de almacenamiento de un disco duro ha aumentado enormemente a lo largo de estos últimos años, la velocidad de leer sus datos no ha mejorado con la misma proporción. Por ejemplo un disco de los 90 podía almacenar 1 GB (1.000 MB) con una velocidad de transferencia de 4.4 MB/s. Es decir, se podía leer todo el disco en unos 5 minutos. Ahora, tenemos discos de 1 Terabyte (1.000.000 MB) con una velocidad de transferencia de 100 MB/s. En este caso necesitamos más de dos horas y media para poder leer todo el disco. ¿Cómo se podría reducir el tiempo de leer los datos? Pues una manera es leer de varios discos a la vez. Imaginen la información del disco de 1 Terabyte repartida proporcionalmente en 100 discos. Si se leen en paralelo, en menos de dos minutos habríamos leído todos los datos. Ahora bien, el hecho de aumentar el número de dispositivos físicos en un sistema hace que aumente la posibilidad de que alguno falle. En este caso, el método habitual para no perder datos es usar técnicas de replicación. Por otro lado en la mayoría de análisis que se deben realizar se requiere combinan datos de diferentes discos y esto puede resultar una tarea nada fácil. Por ello es importante la abstracción del problema que permite el modelo de programación MapReduce. Una de las implementaciones más populares en estos momentos es Hadoop, creado por Yahoo hace unos 5 años. 10 Una de las implementaciones más populares en estos momentos es Hadoop, creado por Yahoo hace unos 5 años, que usa para el almacenamiento el sistema HDFS y el modelo de programación MapReduce para el procesado de los datos. Por otro lado, docenas de empresas han desarrollado sus propias distribuciones de Hadoop (con diferentes niveles de personalización: disponibilidad, rendimiento, replicas …) 11 No obstante este nuevo paradigma de procesado y almacenamiento se hace dificil para la gente que ha aprendido en el paradigma SQL. Por ello hace falta “desaprender”. Por ello se han propuesto nuevas soluciones: HIVE, sistema DW basado en Hadoop desarrollado por Facebook que permite escribir consultas en SQL. PIG, lenguaje de alto nivel para ejecutar trabajos sobre MapReduce (desarrollado per Yahoo). Se han creado para tener diferentes niveles de abstracción que permiten a usuarios conocedores de DBMS (a cambio de rendimiento) manejarse con estos entornos. 12 Obviamente los dos mundos van a coexistir durante mucho tiempos y por ello la industria ha propuesto integrar funcionalidades de MapReduce en los entornos SQL o bien realizar conectores Hadoop para sus entornos de Datawarehouse. 13 La investigación en este campo va ser una de las importantes en el sector TIC. Se parte de la base que las aplicaciones van a tener los datos almacenados en diferentes niveles:in-memory, RDBMS o en los discos en cualquier formato. Para ello va a ser muy importante poder proveer de sistemas que gestionen este almacenado distribuido de manera transparente a las aplicaciones. 14 “Los datos no se pueden comer crudos”. Es decir, los datos en si mismo no son información. Pero incluso la información no es conocimiento accionable. 15 Aunque en general existe mucha experiencia en usar data mining para extraer valor de los datos, la mayoría de estos algoritmos se ejecutan bien en miles de registros, pero son hoy por hoy impracticables en miles de millones. Métodos analíticos más comunmente usados (por ejemplo usando el paquete estadístico R): Categorization (un-supervised) : .K-means clustering . Association Rules .… Regression . Linear . Logistic Classification (supervised) . Naïve Bayesian classifier . Decision Trees . Time Series Analysis . Text Analysis . … 16 Mahout es un conjunto de algoritmos de aprendizaje automático (Machine Learning ) y de mineria de datos (Data Mining) que aprovecha Hadoop para proporcionar almacenamiento de datos y la implementación de MapReduce. <http://mahout.apache.org/> Mahout no es un reflejo de los avances, mucha investigación se está desarrollando de manera silenciosa dentro de las grandes corporaciones dada la importancia que puede tener para sus negocios. 17 Y el Cloud, ¿Qué nos aporta? Supongamos esquematicamente esta demanda de recursos en nuestro sistema para atender nuestras necesidades. 18 Para poder soportar estos requerimientos debemos capacitar (servidores y la correspondiente energía eléctrica) nuestro Centro de Proceso de Datos (CPD) de tal manera que siempre pueda atender la demanda. 19 Ello provoca en muchos casos que una parte importante de los recursos no sean usados. En este caso esquemático representa la mitad (area roja). 20 El Cloud (especialmente IaaS) nos ofrece la elasticidad necesaria para poder atender nuestras necesidades sin necesidad de proveer nosotros mismos los recursos. Además se adapta mejor a necesidades futuras no previstas. 21 El Big Data está generando una enorme cantidad de información que requiere análisis avanzados y nuevos actores del mercado para tomar ventaja de ella. Aparecen nuevas oportunidades de negocio. La aparición de Linux dio poder a los desarrolladores innovadores, que además, con el conjunto de paquetes de software Linux, Apache, MySQL y PHP (LAMP, que cambió totalmente el escenario de las aplicaciones web), les permitió programar potentes servidores web a partir de código abierto. Todo ello llevó a la creación de nuevas empresas en el sector TIC, siendo la base de lo que se conoce como Web 2.0. De la misma manera que cuando maduró la Web llegó la era que llamamos Web 2.0, ahora estamos entrando en una nueva era para los datos, la Data 2.0, donde el tamaño y la complejidad de los formatos y velocidad de acceso que se requiere superan las capacidades de tecnologías de gestión de datos tradicionales y por ello las aplicaciones analíticas que se usan en el proceso de toma de decisiones en las empresas empezaran a mirar a la nube con herramientas de código abierto como Mahout, Hadoop o Cassandra. El conjunto de paquetes de software Linux, Apache, MySQL y PHP (LAMP) dio poder a los desarrolladores innovadores que les permitió programar potentes servidores web a partir de código abierto. Todo ello llevó a la creación de nuevas empresas en el sector TIC, siendo la base de lo que se conoce como Web 2.0. Estoy seguro que en el 2012 veremos el inicio de nuevas empresas basadas en el Data 2.0. 22 23 24 25 26 27