SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Como hacer óptimo
un proyecto Big
Data y no morir en
el intento
Noviembre 2016
Jorge López-Malla Matute
jlopezm@stratio.com
@jorgelopezmalla
ÍNDICE
1
2
3
Empecemos por el principio: conceptos
Seleccionemos tecnología y afrontemos consecuencias
Retos habituales y soluciones para no tirarse de los pelos
4 Ruegos, preguntas e historias de programador cebolletas
Presentación
Presentación
JORGE LÓPEZ-MALLA
Tras trabajar con algunas
metodologías tradicionales
empecé a centrarme en el
mundo del Big Data, del cual
me enamoré. Ahora soy
arquitecto Big Data en Stratio y
he puesto proyectos en
producción en distintas partes
del mundo.
SKILLS
Empecemos por el
principio: conceptos
1
Big Data
• ¿Qué es el Big data?
○ Procesamiento de cantidades masivas de información que no pueden ser
tratadas de manera tradicional en un tiempo y con un coste razonable
• Pero, ¿qué conlleva técnicamente?
○ Cambios en la forma de afrontar los problemas buscando la escalabilidad
horizontal
○ ¿Nuevos roles?
Empezamos por el principio: Conceptos
Escalabilidad horizontal
• Un problema es escalable horizontalmente siempre y cuando el aumento del
input se solucione con un aumento del número de recursos no de los propios
recursos.
Empezamos por el principio: Conceptos
NoSQL
• ¿Qué es NoSQL?
○ Nuevos sistemas de RDBMS que rompen con algunas reglas anteriores
rompiendo, en muchos casos el ACID
• Tipos (generales)
○ Clave/Valor -> Google Big Table, BerkleyDB
○ Columnar -> Apache Cassandra, Apache HBase
○ Grafos -> OrientDB, Neo4j
○ Documental -> Couchbase, MongoDb,
○ ….
• No todas son válidas para el Big Data
Empezamos por el principio: Conceptos
Seleccionando
tecnología y
afrontando las
consecuencias
Seleccionemos tecnología y afrontemos consecuencias
2
Seleccionando tecnología y afrontando las consecuencias
Big Data Boom
• El Big Data tiene aproximadamente una década.
• La casuística en esa década ha pasado de procesos ETL en Batch a complicados
algoritmos de Machine Learning en Tiempo Real
• Esto ha conllevado un boom tecnológico desmedido en los últimos años.
• Muchas tecnologías válidas satisfacen problemas muy concretos de una manera
muy eficiente
• ¡Nunca dejarse llevar por el brillo de lo nuevo!
Seleccionando tecnología y afrontando las consecuencias
Pautas generales
• Aunque la casuística puede ser tremendamente compleja nos debemos hacer las
siguientes preguntas para hacer una buena selección de tecnología:
○ ¿Cual es mi volumen real de información?
○ ¿Como voy a consultar luego esa información?
○ ¿De qué tipo de origen obtenemos la información?
• Valen respuestas a medias pero hay que afrontar consecuencias.
• Esto NO es una guía definitiva.
Seleccionando tecnología y afrontando las consecuencias
Volumen
• Si la respuesta a la primera pregunta es: No tanto:
○ NO TIENES UN PROBLEMA DE BIG DATA, SEGURAMENTE VAS A
MATAR MOSCAS A CAÑONAZOS.
■ Tecnología sugerida: la que más experiencia tengas Oracle/MySQL.
• Si la respuesta es lo suficiente para que Oracle no sea rentable
○ ¡Tienes un problema Big Data!
■ Tecnología sugerida: Dependerá del problema pero mira primero
HDFS + Parquet.
Seleccionando tecnología y afrontando las consecuencias
Consulta
• Si vamos a procesar FullScan
○ HDFS + Parquet
■ Buena compresión, coste de almacenamiento menor.
■ Mala consulta parcial. mucho coste de cargas incrementales,
• Si vamos a hacer queries definidas de antemano
○ Base de Datos NoSQL columnar/clave valor
■ tiempo de búsqueda inmejorable, por clave, coste de almacenamiento intermedio. No
delay en cargas incrementales
■ Mala consulta por algo distinto a la clave o full scan.
■ Nos obligan a que todas las queries sean por clave o que por lo menos contenga una
igualdad.
• Si vamos a hacer queries definidas de antemano
○ Base de Datos NoSQL Documental con agregación previa
■ Versatilidad, coste de almacenamiento máximo. No delay en cargas incrementales
■ Buena consulta por algo distinto a la clave o full scan, siempre que se construya un
indice por ese campo.
• Origen Estático
○ Usar procesos Batch
■ Recomendación: Apache Spark
• Origen Streaming
○ Apache Kafka es casi una obligación.
○ Procesos ETL:
■ Si son sencillos -> Kafka Streams
■ Si hay procesado complejo -> Apache Storm, Apache Spark, Apache
Flink
○ Resto de procesado
■ Recomendación: Apache Spark por madurez y comunidad.
● Seguramente Flink se adapte mejor pero está un poco verde
Seleccionando tecnología y afrontando las consecuencias
Tipo de Origen
• Lamentablemente, en España se matan muchas moscas a cañonazos
• No nos podemos dejar cegar por el brillo de nuevas versiones, requieren madurez.
• No hay una tecnología de almacenamiento/ Procesamiento definitiva.
• Si buscamos soluciones óptimas necesitamos sistemas híbridos.
○ Hay que duplicar la información.
○ No gusta en ninguna empresa, toca luchar o asumir pérdida de rendimiento
• Solución de almacenamiento más habitual HDFS+Parquet, aunque esto hace
prácticamente imposibles las queries en tiempo real.
Seleccionando tecnología y afrontando las consecuencias
Conclusiones
Retos habituales y
soluciones para no
tirarse de los pelos
3
• Aunque empiezan a dejar de ser POCs muchos proyectos Big Data no tienen
definición cerrada.
• Suelen incluir a muchos departamentos dentro de una empresa.
• Pedir desde un primer momento la defición del usuario final.
• Dejar clara las consecuencias de las decisiones técnicas desde el primer momento
• Mostrar los avances al cliente lo más periódicamente posibles para poder tomar
cambios de rumbo con sentido
Retos habituales y soluciones para no tirarse de los pelos
Indefinición de objetivos
• El volumen de los datos es fundamental para llevar a buen puerto un proyecto Big
Data
• No es necesaria una cantidad exacta, saber si hablamos de GB o de Tb suele ser
suficiente
• Son necesarios tanto el volumen total como el volumen de ingesta.
• La periodicidad de los datos marca fases críticas como la ingesta.
Retos habituales y soluciones para no tirarse de los pelos
Volumen y periodicidad de datos
• En todos los proyectos es importante tener un buen entorno de pruebas.
• La combinación de muchas tecnologías en constante evolución es el día a día de
los proyectos Big Data.
• Invertir tiempo en automatizar las pruebas de integración.
• ¡Mucho ojo con las versiones y las compatibilidades!.
Retos habituales y soluciones para no tirarse de los pelos
Entornos de pruebas
• Factor secundario, en el mejor de los casos, en la mayoría de tecnologías Big Data.
• Preferencia por la seguridad perimetral
• Al tener seguridad perimetral muchos de los Casos de Uso, sobre todo de
explotación y representación de datos pueden quedar pequeños.
• Kerberos es la solución casi universal.
• Contar con la seguridad desde el principio es fundamental para no duplicar
tecnologías.
Retos habituales y soluciones para no tirarse de los pelos
Seguridad
• Usamos múltiples fuentes de distintos sistemas/organizaciones
• Un dato malo no puede parar la ingesta de una fuente.
• Nunca están tan “limpios” como prometen.
• Invertir tiempo siempre en automatizar una fase de saneamiento del dato.
• Cuidado con los DUMP de DataWarehouse.
Retos habituales y soluciones para no tirarse de los pelos
Ingesta de datos
• La información casi siempre llega de manera incremental y de distintas fuentes
• Si usamos una BD NoSQL no hay mayor problema.
• Si usamos HDFS….
○ Definir un dato que determine la unidad mínima de procesamiento
○ Definir un proceso por partes en base a esa unidad.
■ Usar carpetas temporales.
■ Si usamos tambien parquet: usar la carpetas como datos.
○ Cuidado con los errores en el procesado.
Retos habituales y soluciones para no tirarse de los pelos
Ingesta de datos
• Analiza si tú Casos de Uso tiene una casuística Streaming
• Si has decidido que sí, habla con la gente de sistemas de la empresa y vuelve a
analizar.
• Las fuentes de información suelen ser fuentes ya existentes y es muy difícil que te
dejen tocar sistemas en producción.
• Intentar ser lo menos intrusivo posible.
• Si no se puede ninguna de las opciones, ver la viabilidad de un proceso batch cada
X segundos
Retos habituales y soluciones para no tirarse de los pelos
Casos de Uso de Streaming
• Analiza si tú Casos de Uso tiene una casuística Machine Learning
• Si has decidido que sí, habla con tus data scientist y vuelve a analizarlo.
• Dejar claro al cliente que los procesos de Machine Learning requieren mucho
tiempo de estudio de datos por parte humana.
• No deslumbrarnos con los algoritmos recién implementados en las librerías de
Machine Learning.
• Llevar a los data scientist a todas las demos con cliente.
Retos habituales y soluciones para no tirarse de los pelos
Casos de Uso de Machine Learning
Ruegos, preguntas e
historias de
programador
cebolleta
4
Ruegos preguntas e historias de programador cebolletas
¿Preguntas?
¡Esto es todo amigos!
MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO
people@stratio.com
WE ARE HIRING
@StratioBD
Codemotion 2016

Más contenido relacionado

Similar a Codemotion 2016

Agile fundamentals - Campus Party
Agile fundamentals  - Campus Party Agile fundamentals  - Campus Party
Agile fundamentals - Campus Party Tania Silva
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simplepsluaces
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learningnnakasone
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosCarlos Gustavo Ruiz
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfRicard Clau
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Presentación de Paradis
Presentación de ParadisPresentación de Paradis
Presentación de ParadisC-cube ITESMCQ
 
Empleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datosEmpleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datosAntonio Santos Ramos
 
Desarrollo web el mejor aliado del Marketing Digital
Desarrollo web el mejor aliado del Marketing DigitalDesarrollo web el mejor aliado del Marketing Digital
Desarrollo web el mejor aliado del Marketing DigitalMarta Soler
 
Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales atSistemas
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
Bigdataparaprincipiantes 140428183955-phpapp02-1
Bigdataparaprincipiantes 140428183955-phpapp02-1Bigdataparaprincipiantes 140428183955-phpapp02-1
Bigdataparaprincipiantes 140428183955-phpapp02-1Marta Navarro Gonzalez
 
Big data para principiantes
Big data para principiantesBig data para principiantes
Big data para principiantesCarlos Toxtli
 

Similar a Codemotion 2016 (20)

Agile fundamentals - Campus Party
Agile fundamentals  - Campus Party Agile fundamentals  - Campus Party
Agile fundamentals - Campus Party
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
 
Semana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUMSemana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUM
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Big data
Big dataBig data
Big data
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learning
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
 
Dm 01
Dm 01Dm 01
Dm 01
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Presentación de Paradis
Presentación de ParadisPresentación de Paradis
Presentación de Paradis
 
Empleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datosEmpleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datos
 
Softagile
SoftagileSoftagile
Softagile
 
Desarrollo web el mejor aliado del Marketing Digital
Desarrollo web el mejor aliado del Marketing DigitalDesarrollo web el mejor aliado del Marketing Digital
Desarrollo web el mejor aliado del Marketing Digital
 
Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales
 
Primer clase
Primer clasePrimer clase
Primer clase
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Bigdataparaprincipiantes 140428183955-phpapp02-1
Bigdataparaprincipiantes 140428183955-phpapp02-1Bigdataparaprincipiantes 140428183955-phpapp02-1
Bigdataparaprincipiantes 140428183955-phpapp02-1
 
Big data para principiantes
Big data para principiantesBig data para principiantes
Big data para principiantes
 

Más de Jorge Lopez-Malla

Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Jorge Lopez-Malla
 
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Jorge Lopez-Malla
 
Haz que tus datos sean sexys
Haz que tus datos sean sexysHaz que tus datos sean sexys
Haz que tus datos sean sexysJorge Lopez-Malla
 
Apache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataApache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataJorge Lopez-Malla
 
Meetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos MódulosMeetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos MódulosJorge Lopez-Malla
 

Más de Jorge Lopez-Malla (8)

Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
 
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
 
Haz que tus datos sean sexys
Haz que tus datos sean sexysHaz que tus datos sean sexys
Haz que tus datos sean sexys
 
Mesos con europa 2017
Mesos con europa 2017Mesos con europa 2017
Mesos con europa 2017
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
 
Spark web meetup
Spark web meetupSpark web meetup
Spark web meetup
 
Apache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataApache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own data
 
Meetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos MódulosMeetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos Módulos
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (13)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Codemotion 2016

  • 1. Como hacer óptimo un proyecto Big Data y no morir en el intento Noviembre 2016
  • 2. Jorge López-Malla Matute jlopezm@stratio.com @jorgelopezmalla ÍNDICE 1 2 3 Empecemos por el principio: conceptos Seleccionemos tecnología y afrontemos consecuencias Retos habituales y soluciones para no tirarse de los pelos 4 Ruegos, preguntas e historias de programador cebolletas
  • 3. Presentación Presentación JORGE LÓPEZ-MALLA Tras trabajar con algunas metodologías tradicionales empecé a centrarme en el mundo del Big Data, del cual me enamoré. Ahora soy arquitecto Big Data en Stratio y he puesto proyectos en producción en distintas partes del mundo. SKILLS
  • 5. Big Data • ¿Qué es el Big data? ○ Procesamiento de cantidades masivas de información que no pueden ser tratadas de manera tradicional en un tiempo y con un coste razonable • Pero, ¿qué conlleva técnicamente? ○ Cambios en la forma de afrontar los problemas buscando la escalabilidad horizontal ○ ¿Nuevos roles? Empezamos por el principio: Conceptos
  • 6. Escalabilidad horizontal • Un problema es escalable horizontalmente siempre y cuando el aumento del input se solucione con un aumento del número de recursos no de los propios recursos. Empezamos por el principio: Conceptos
  • 7. NoSQL • ¿Qué es NoSQL? ○ Nuevos sistemas de RDBMS que rompen con algunas reglas anteriores rompiendo, en muchos casos el ACID • Tipos (generales) ○ Clave/Valor -> Google Big Table, BerkleyDB ○ Columnar -> Apache Cassandra, Apache HBase ○ Grafos -> OrientDB, Neo4j ○ Documental -> Couchbase, MongoDb, ○ …. • No todas son válidas para el Big Data Empezamos por el principio: Conceptos
  • 9. Seleccionando tecnología y afrontando las consecuencias Big Data Boom • El Big Data tiene aproximadamente una década. • La casuística en esa década ha pasado de procesos ETL en Batch a complicados algoritmos de Machine Learning en Tiempo Real • Esto ha conllevado un boom tecnológico desmedido en los últimos años. • Muchas tecnologías válidas satisfacen problemas muy concretos de una manera muy eficiente • ¡Nunca dejarse llevar por el brillo de lo nuevo!
  • 10.
  • 11. Seleccionando tecnología y afrontando las consecuencias Pautas generales • Aunque la casuística puede ser tremendamente compleja nos debemos hacer las siguientes preguntas para hacer una buena selección de tecnología: ○ ¿Cual es mi volumen real de información? ○ ¿Como voy a consultar luego esa información? ○ ¿De qué tipo de origen obtenemos la información? • Valen respuestas a medias pero hay que afrontar consecuencias. • Esto NO es una guía definitiva.
  • 12. Seleccionando tecnología y afrontando las consecuencias Volumen • Si la respuesta a la primera pregunta es: No tanto: ○ NO TIENES UN PROBLEMA DE BIG DATA, SEGURAMENTE VAS A MATAR MOSCAS A CAÑONAZOS. ■ Tecnología sugerida: la que más experiencia tengas Oracle/MySQL. • Si la respuesta es lo suficiente para que Oracle no sea rentable ○ ¡Tienes un problema Big Data! ■ Tecnología sugerida: Dependerá del problema pero mira primero HDFS + Parquet.
  • 13. Seleccionando tecnología y afrontando las consecuencias Consulta • Si vamos a procesar FullScan ○ HDFS + Parquet ■ Buena compresión, coste de almacenamiento menor. ■ Mala consulta parcial. mucho coste de cargas incrementales, • Si vamos a hacer queries definidas de antemano ○ Base de Datos NoSQL columnar/clave valor ■ tiempo de búsqueda inmejorable, por clave, coste de almacenamiento intermedio. No delay en cargas incrementales ■ Mala consulta por algo distinto a la clave o full scan. ■ Nos obligan a que todas las queries sean por clave o que por lo menos contenga una igualdad. • Si vamos a hacer queries definidas de antemano ○ Base de Datos NoSQL Documental con agregación previa ■ Versatilidad, coste de almacenamiento máximo. No delay en cargas incrementales ■ Buena consulta por algo distinto a la clave o full scan, siempre que se construya un indice por ese campo.
  • 14. • Origen Estático ○ Usar procesos Batch ■ Recomendación: Apache Spark • Origen Streaming ○ Apache Kafka es casi una obligación. ○ Procesos ETL: ■ Si son sencillos -> Kafka Streams ■ Si hay procesado complejo -> Apache Storm, Apache Spark, Apache Flink ○ Resto de procesado ■ Recomendación: Apache Spark por madurez y comunidad. ● Seguramente Flink se adapte mejor pero está un poco verde Seleccionando tecnología y afrontando las consecuencias Tipo de Origen
  • 15. • Lamentablemente, en España se matan muchas moscas a cañonazos • No nos podemos dejar cegar por el brillo de nuevas versiones, requieren madurez. • No hay una tecnología de almacenamiento/ Procesamiento definitiva. • Si buscamos soluciones óptimas necesitamos sistemas híbridos. ○ Hay que duplicar la información. ○ No gusta en ninguna empresa, toca luchar o asumir pérdida de rendimiento • Solución de almacenamiento más habitual HDFS+Parquet, aunque esto hace prácticamente imposibles las queries en tiempo real. Seleccionando tecnología y afrontando las consecuencias Conclusiones
  • 16. Retos habituales y soluciones para no tirarse de los pelos 3
  • 17. • Aunque empiezan a dejar de ser POCs muchos proyectos Big Data no tienen definición cerrada. • Suelen incluir a muchos departamentos dentro de una empresa. • Pedir desde un primer momento la defición del usuario final. • Dejar clara las consecuencias de las decisiones técnicas desde el primer momento • Mostrar los avances al cliente lo más periódicamente posibles para poder tomar cambios de rumbo con sentido Retos habituales y soluciones para no tirarse de los pelos Indefinición de objetivos
  • 18. • El volumen de los datos es fundamental para llevar a buen puerto un proyecto Big Data • No es necesaria una cantidad exacta, saber si hablamos de GB o de Tb suele ser suficiente • Son necesarios tanto el volumen total como el volumen de ingesta. • La periodicidad de los datos marca fases críticas como la ingesta. Retos habituales y soluciones para no tirarse de los pelos Volumen y periodicidad de datos
  • 19. • En todos los proyectos es importante tener un buen entorno de pruebas. • La combinación de muchas tecnologías en constante evolución es el día a día de los proyectos Big Data. • Invertir tiempo en automatizar las pruebas de integración. • ¡Mucho ojo con las versiones y las compatibilidades!. Retos habituales y soluciones para no tirarse de los pelos Entornos de pruebas
  • 20. • Factor secundario, en el mejor de los casos, en la mayoría de tecnologías Big Data. • Preferencia por la seguridad perimetral • Al tener seguridad perimetral muchos de los Casos de Uso, sobre todo de explotación y representación de datos pueden quedar pequeños. • Kerberos es la solución casi universal. • Contar con la seguridad desde el principio es fundamental para no duplicar tecnologías. Retos habituales y soluciones para no tirarse de los pelos Seguridad
  • 21. • Usamos múltiples fuentes de distintos sistemas/organizaciones • Un dato malo no puede parar la ingesta de una fuente. • Nunca están tan “limpios” como prometen. • Invertir tiempo siempre en automatizar una fase de saneamiento del dato. • Cuidado con los DUMP de DataWarehouse. Retos habituales y soluciones para no tirarse de los pelos Ingesta de datos
  • 22. • La información casi siempre llega de manera incremental y de distintas fuentes • Si usamos una BD NoSQL no hay mayor problema. • Si usamos HDFS…. ○ Definir un dato que determine la unidad mínima de procesamiento ○ Definir un proceso por partes en base a esa unidad. ■ Usar carpetas temporales. ■ Si usamos tambien parquet: usar la carpetas como datos. ○ Cuidado con los errores en el procesado. Retos habituales y soluciones para no tirarse de los pelos Ingesta de datos
  • 23. • Analiza si tú Casos de Uso tiene una casuística Streaming • Si has decidido que sí, habla con la gente de sistemas de la empresa y vuelve a analizar. • Las fuentes de información suelen ser fuentes ya existentes y es muy difícil que te dejen tocar sistemas en producción. • Intentar ser lo menos intrusivo posible. • Si no se puede ninguna de las opciones, ver la viabilidad de un proceso batch cada X segundos Retos habituales y soluciones para no tirarse de los pelos Casos de Uso de Streaming
  • 24. • Analiza si tú Casos de Uso tiene una casuística Machine Learning • Si has decidido que sí, habla con tus data scientist y vuelve a analizarlo. • Dejar claro al cliente que los procesos de Machine Learning requieren mucho tiempo de estudio de datos por parte humana. • No deslumbrarnos con los algoritmos recién implementados en las librerías de Machine Learning. • Llevar a los data scientist a todas las demos con cliente. Retos habituales y soluciones para no tirarse de los pelos Casos de Uso de Machine Learning
  • 25. Ruegos, preguntas e historias de programador cebolleta 4
  • 26. Ruegos preguntas e historias de programador cebolletas ¿Preguntas?
  • 27. ¡Esto es todo amigos! MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO