Está llegando el Big Data, ¿qué tecnologías lo soportan?, ¿Cómo

Anuncio
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
Descargar