Cocinando con Big Data

Anuncio
Cocinando
Javier Sánchez
BDM Big Data
jsanchez@flytech.es
91.300.51.09
con Big Data
21/11/2013
Javier Sánchez
1
Agenda
•
•
•
•
•
¿Qué es Big Data?
Receta
Punto de Partida
¿Para qué Big Data?
Conclusiones
21/11/2013
Javier Sánchez
2
¿Qué es Big Data?
21/11/2013
Javier Sánchez
3
Receta
• Ingredientes
- Datos
• Cocina
- Cluster, Hadoop…
• Cocinero
+
21/11/2013
+
Javier Sánchez
4
Resultado
21/11/2013
Javier Sánchez
5
Ingredientes
• 3 Vs (Velocidad, Volumen y
Variedad)
– Estructurados
– Semiestructurados
– Estructurados
• Hablamos de Big Data a partir
de 1 TB de información.
– Logs, CDRs, Tweets, Operaciones
bancarias…
21/11/2013
Javier Sánchez
6
Cocina
• Cocina Tradicional
– BBDD Relacionales para pocos datos
– DW MPP para volúmenes grandes de datos
• Nuevas Técnicas y Tecnologías para inmensas
Cantidades de Datos
– Por Lotes (Hadoop)
– “On-Line” (BBDD NoSQL, Storm…)
21/11/2013
Javier Sánchez
7
Cocina
• Cocina Tradicional
– La gente ya la conoce y sabe usarla
– Muchas herramientas de alto nivel que hacen fácil el
análisis
– Online: las queries se resuelven más o menos rápidas
(depende del volumen de datos y de los índices)
– No escala
– Esquema en escritura por lo que es poco flexible a
cambios
– Se maneja mal con datos no estructurados
21/11/2013
Javier Sánchez
8
Cocina
• Nueva Cocina
– Escala
– Esquema en lectura (Muy flexible)
– Capaz de trabajar con datos no estructurados
–
–
–
–
21/11/2013
Difícil de encontrar capital humano
Pocas o casi ninguna herramienta de alto nivel
Poca madurez del SW
Respuesta de queries en batches. No se soportan
índices. Las queries tardan de minutos a horas
Javier Sánchez
9
Punto de Partida Nueva Cocina
• Google necesitaba gestionar inmensas cantidades de
información (page rank), lo cual era inviable tanto a
nivel económico como tecnológico
• Solución:
– Crear un framework que resuelva el problema
– En 2003 publica White Papper sobre GFS.
– En Diciembre del 2004 Google libera Map and Reduce
• Doug Cutting en 2006 comienza oficialmente el
proyecto Hadoop bajo licencia Apache
21/11/2013
Javier Sánchez
10
Hadoop
• Es un sistema para el almacenamiento y
procesamiento de grandes cantidades de datos
• Escala Horizontalmente
–
–
–
–
Almacenamiento (HDFS)
Procesamiento (Map & Reduce)
Plataforma Homogénea
Commodity Servers
• Instalaciones con más de 4.000 maquinas
– Yahoo, Google, LinkedIn…
21/11/2013
Javier Sánchez
11
Hadoop (HDFS)
• HDFS (Hadoop Distributed File System)
–
–
–
–
–
Clúster de almacenamiento distribuido
Múltiples copias de los datos
Gran tamaño de ficheros
Rebalanceo
Alta Disponibilidad (Quorum Journal Manager o NFS)
• Poner la computación sobre el dato siempre es más
económico que mover el dato (Share Nothing)
• ¡Máquinas estándar!
• No RAID
21/11/2013
Javier Sánchez
12
Hadoop (Map & Reduce)
• Hadoop TRABAJA con procesamiento por lotes
– Los procesos no son en tiempo real aunque la
explotación de los mismo si puede serlo
– La unidad básica de operación se denomina tarea
(job)
– Un flujo (Flow) es una cadena de tareas
– Hasta que todas las tareas no han terminado, no se
obtiene el resultado
– Cada tarea reescribe un fichero. El origen es un
fichero y el resultado final es otro fichero.
• Plano: CVS, Texto
• Formatos Binarios
21/11/2013
Javier Sánchez
13
Hadoop (Map & Reduce)
• Ejemplo de tareas
Fichero de entrada
– Transferencias bancarias
– Tweets
– Contenido de páginas web
Fichero de salida
– Transferencia media cliente
– Trending topics por semana
– Índice invertido
21/11/2013
Javier Sánchez
14
Hadoop
• Particularidades
–
–
–
–
No es tiempo real
No es una BBDD
Alta Barrera de Entrada (Cambio de Mentalidad)
Todos son ficheros
• Se puede retorcer y desarrollar fácilmente (Ej. Fetcher,
Índices Solar para Real Time)
– Abandonar el concepto de incrementalidad
– Ejemplo clics en web (BBDD+1 vs log histórico global)
• Es más eficiente y evita errores en BBDD
– Rehacerlo todo siempre en cada ejecución
– Cambio de dirección inmediata
– Ejemplo transacción media incremental vs todas las
transacciones
21/11/2013
Javier Sánchez
15
Hadoop
• Hardware “Comodity”
– No se requiere hardware especial
• Ni en servidores
• Ni en almacenamiento
– Sin soluciones verticales
– Share Nothing
• Mueve el proceso a los datos (HPC se mueven los datos)
• Recuerden, Big Data nació para solucionar un problema
que no era posible con soluciones verticales
– No escalabilidad
– Rigidez (Incrementalidad, alteración on-line de esquemas…)
– Alta incidencia de errores de programación (corrupción de
“estado”)
21/11/2013
Javier Sánchez
16
Hadoop
21/11/2013
Javier Sánchez
17
Ejemplo de solución (I)
• Empresa de retail
– Proyecto panel de compras
personalizado por cliente
– Objetivo:
• Aumentar fidelidad
• Aumentar facturación con
recomendaciones
– Ejemplo: Recomendar X a
otros clientes que ya han
comprado Y y Z.
21/11/2013
Javier Sánchez
18
Ejemplo de solución (II)
• Características
– Gastos por meses, semanas,
• Aderezos con gráficos
• Por familias de artículos u otros…
– Artículos más comprados en oferta, artículos
similares, complementarios…
– Recomendaciones personalizadas partiendo no solo
de sus compras, sino también del comportamiento de
compra de otros compradores
• Capilarizadas por ejemplo por clima, fechas próximas
señaladas, código postal…
21/11/2013
Javier Sánchez
19
Ejemplo de solución (III)
• Solución clásica
– Realizar un proceso ETL (Extract, Transform and Load)
diario desde un DataWarehose a una base de datos
específica SQL para este servicio web
• Solo los datos nuevos
– Los DW no están preparados para servir online los datos, están
preparados para servir “query” off-line
21/11/2013
Javier Sánchez
20
Ejemplo de solución (IV)
• Solución clásica
– Problemas
• Una base de datos a este nivel sería muy costosa, ya que
manejaría grandes volúmenes de datos
• Posible incapacidad para manejar todos los datos (escalabilidad)
• Alto coste en hardware y almacenamiento
• Incrementalidad (no dispone de todos los datos)
• Alto riesgo de incidencias por fallo del programador
• Normalmente el proceso de transformación de datos ETL suele ser
monopuesto, incidiendo en la capacidad de proceso de esa
máquina durante la ejecución del ETL, además de no poder escalar
– A la BBDD en producción no se pueden inyectar diariamente grandes
cantidades de datos, ya que afectaría negativamente el servicio ofrecido
por la página web
21/11/2013
Javier Sánchez
21
Ejemplo de solución (V)
• Solución Hadoop
– Copia inicial de todos
los datos al clúster HDFS
– Posteriormente copia diaria con los nuevos datos
generados
– Procesamiento de todos los datos almacenados para todas
las fechas en cada ejecución
• No hay incrementalidad, siempre disponemos del “todo”
– Hadoop calcularía las agregaciones mensuales, semanales,
diarias, por horas, por familias, por producto,
recomendaciones, etc.
– El resultado se volcaría en bases de datos NoSQL o SQL
• Pueden convivir ambos mundos de base de datos /
DataWarehouse
21/11/2013
Javier Sánchez
22
Ejemplo de solucion (VI)
• Ventajas Hadoop
– Menores costes y riesgos
• Escala y se adapta a la escala
– Es maleable y menos rígido
• Disponer de “todo” y con un cambio de programación se obtiene cualquier resultado, mientras
que con SQL cambiar la estructura de la base de datos en producción es muy “duro y delicado”
– Reduce la incidencia de un posible fallo de la programación
• Parte de un único fichero “todo” y el resultado siempre se genera desde cero
– Flexibilidad gracias al “todo”
• Se pueden tener múltiples clúster en paralelo y apuntar la aplicación al clúster concreto
– En los primeros prototipos no necesitas adquirir el HW, puedes trabajar desde
“Elastic Map Reduce” en Amazon Cloud y, una vez probado, se adquiere el
HW. A corto/medio plazo es más económico disponer de clúster propio
– HW común, no soluciones verticales
– Base de datos escalables y gratuitas
21/11/2013
Javier Sánchez
23
Conclusión
¿Qué sucede cuando
prescindimos del cocinero?
21/11/2013
Javier Sánchez
24
Conclusión
• Flytech ¿Qué te puede aportar?
21/11/2013
Javier Sánchez
25
Conclusión
• Flytech ¿Qué te puede aportar?
21/11/2013
Javier Sánchez
26
¡MUCHAS GRACIAS!
Javier Sánchez
BDM Big Data
jsanchez@flytech.es
91.300.51.09
21/11/2013
Javier Sánchez
27
Descargar