SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Una	
  visión	
  de	
  las	
  técnicas	
  y	
  
métodos	
  de	
  análisis	
  en	
  entornos	
  Big	
  
Data	
  u8lizando	
  tecnologías	
  de	
  
úl8ma	
  generación	
  	
  
Federico	
  Castanedo	
  
Chief	
  Data	
  Scien2st	
  @WiseAthena.com	
  	
  
twi9er	
  @overfit	
  
Índice	
  
1.	
  Introducción	
  a	
  los	
  problemas	
  de	
  big-­‐data	
  analy2cs	
  
	
  
2.	
  Algoritmos	
  aproximados	
  
	
  -­‐	
  Flajolet-­‐Mar2n.	
  Alon-­‐Ma2as-­‐Szegedy	
  Sketch	
  
	
  -­‐	
  Heavy	
  Hi9ers:	
  Space	
  Saving	
  Algorithm	
  
	
  -­‐	
  Bloom	
  Filter,	
  Count-­‐Min	
  Sketch	
  
	
  
3.	
  Tecnologías	
  de	
  procesamiento	
  distribuido	
  
	
  -­‐	
  Arquitecturas	
  Lambda	
  
	
  
4.	
  Casos	
  prác2cos	
  
Cuantos	
  más	
  datos,	
  mejor!	
  
Alon	
  Havely,	
  Peter	
  Norvig,	
  Fernando	
  Pereira.	
  The	
  Unreasonable	
  
Effec0veness	
  of	
  Data.	
  IEEE	
  Intelligent	
  Systems.	
  2009.	
  
	
  
"We	
  don’t	
  have	
  beAer	
  algorithms.	
  We	
  just	
  have	
  more	
  data."	
  
	
  
Talk:	
  h9p://youtu.be/yvDCzhbjYWs	
  
	
  
Michele	
  Banko	
  and	
  Eric	
  Brill.	
  Scaling	
  to	
  Very	
  Very	
  Large	
  Corpora	
  for	
  
Natural	
  Language	
  Disambigua0on.	
  ACL	
  2001	
  
	
  
Deep	
  Learning	
  @Google.	
  
Q.	
  V.	
  Lee.	
  et.	
  al.	
  Building	
  High-­‐level	
  Features	
  	
  
Using	
  Large	
  Scale	
  Unsupervised	
  Learning.	
  	
  
ICML	
  2012.	
  	
  	
  
	
  
Cuantos	
  más	
  datos,	
  ¿mejor?	
  
D.	
  Lazer,	
  R.	
  Kennedy,	
  G.	
  King	
  and	
  A.	
  Vespignani.	
  The	
  Parable	
  of	
  Google	
  Flu:	
  
Traps	
  in	
  Big	
  Data	
  Analysis.	
  Science.	
  13	
  March	
  2014.	
  
Declan	
  Butler.	
  When	
  Google	
  got	
  flu	
  wrong.	
  Nature.	
  13	
  Febrero	
  2103.	
  
h9p://www.tylervigen.com	
  	
  	
  	
  
Curva	
  de	
  aprendizaje	
  de	
  alta	
  varianza	
  (Over-­‐Fit)	
  
Depende	
  (sesgo	
  vs	
  varianza)	
  
-­‐	
  El	
  error	
  de	
  test	
  decrece	
  a	
  medida	
  que	
  m	
  crece.	
  Sugiere	
  que	
  un	
  
conjunto	
  más	
  grande	
  es	
  mejor.	
  
-­‐	
  Hay	
  un	
  gap	
  inicial	
  muy	
  grande	
  entre	
  el	
  error	
  en	
  entrenamiento	
  y	
  test	
  
-­‐	
  En	
  estas	
  situaciones	
  añadir	
  más	
  datos	
  ayuda.	
  
Depende	
  (sesgo	
  vs	
  varianza)	
  
Curva	
  de	
  aprendizaje	
  de	
  alto	
  Sesgo	
  (Under-­‐Fit)	
  
-­‐	
  Incluso	
  el	
  error	
  de	
  entrenamiento	
  es	
  muy	
  alto.	
  
-­‐	
  El	
  error	
  de	
  entrenamiento	
  y	
  test	
  convergen	
  a	
  valores	
  similares	
  pero	
  
no	
  muy	
  buenos.	
  
-­‐	
  En	
  estas	
  situaciones	
  añadir	
  más	
  datos	
  no	
  suele	
  ayudar.	
  
En	
  general	
  
-­‐	
  Más	
  datos	
  de	
  entrenamiento	
  à	
  Sol.	
  Alta	
  Varianza	
  
-­‐	
  Menos	
  features	
  à	
  Sol.	
  Alta	
  Varianza	
  
-­‐	
  Conjuto	
  grande	
  de	
  features	
  à	
  Sol.	
  Alto	
  Sesgo	
  
-­‐	
   Queremos	
   algoritmos	
   que	
   tengan	
   baja	
   varianza	
   y	
   bajo	
  
sesgo.	
  El	
  bajo	
  sesgo	
  se	
  consigue	
  con	
  muchas	
  features	
  y	
  la	
  
baja	
  varianza	
  con	
  muchos	
  datos	
  (Ej.	
  texto	
  vs	
  precios	
  casa)	
  
PERO......	
  
Más	
  datos	
  à	
  Mayor	
  coste	
  computacional	
  	
  
Medidas	
  de	
  Rendimiento	
  
1.	
  Tiempo	
  de	
  Procesamiento	
  
El	
  2empo	
  necesario	
  para	
  procesar	
  cada	
  elemento	
  desde	
  
que	
  se	
  recibe.	
  
2.	
  Tiempo	
  de	
  Computación	
  
El	
  2empo	
  necesario	
  para	
  calcular	
  las	
  funciones	
  en	
  los	
  
datos.	
  
3.	
  Tamaño	
  de	
  Almacenamiento	
  
El	
  espacio	
  u2lizado	
  para	
  almacenar	
  la	
  estructura	
  de	
  datos.	
  
Complejidad	
  Algoritmos	
  
Complejidad	
  de	
  Algoritmos	
  
Punto	
  de	
  Vista	
  Prác8co	
  
-­‐	
  Algoritmo	
  O(n^2)	
  solo	
  válido	
  para	
  Small	
  Data	
  
-­‐	
  Los	
  datos	
  caben	
  en	
  una	
  máquina:	
  Medium	
  Data	
  
-­‐	
  Los	
  datos	
  no	
  caben	
  en	
  una	
  máquina:	
  Big	
  Data	
  
	
  
Enlaces	
  de	
  Complejidad	
  
h9p://www.sco9aaronson.com/blog/?p=263	
  	
  
h9p://bigocheatsheet.com/	
  	
  
h9p://www.sor2ng-­‐algorithms.com/	
  	
  
	
  
Big	
  Data	
  !=	
  Hadoop	
  
•  Hadoop	
  es	
  una	
  gran	
  herramienta	
  pero	
  no	
  siempre	
  es	
  la	
  
mejor.	
  
•  Hadoop	
  es	
  ú2l	
  para	
  trabajos/procesos	
  en	
  modo	
  Batch	
  que	
  
no	
  tengan	
  requisitos	
  de	
  2empo	
  real.	
  (I/O	
  Bound)	
  
•  Cuando	
  se	
  requiere	
  trabajar	
  sobre	
  Streams	
  de	
  datos	
  son	
  
mejores	
  otras	
  tecnologías.	
  (Velocity	
  de	
  Big-­‐Data)	
  
•  Un	
  stream	
  de	
  datos	
  es	
  una	
  secuencia	
  de	
  elementos	
  que	
  
se	
  reciben	
  en	
  2empo	
  real	
  de	
  forma	
  con8nua	
  y	
  ordenada	
  
(bien	
  de	
  forma	
  explícita	
  por	
  el	
  2mestamp	
  o	
  implícita	
  por	
  
la	
  posición).	
  
•  Siendo	
  estrictos,	
  además	
  es	
  imposible	
  controlar	
  el	
  orden	
  
en	
   que	
   se	
   reciben	
   los	
   elementos	
   y	
   tampoco	
   es	
   posible	
  
almacenar	
  el	
  stream	
  completo	
  de	
  forma	
  local.	
  
Funciones	
  Hash	
  
Mapeo	
  h	
  de	
  un	
  dominio	
  X	
  a	
  un	
  rango	
  
entero	
  [1,...,N]	
  
Una	
  función	
  hash	
  h()	
  que	
  toma	
  una	
  
clave-­‐hash	
  como	
  argumento	
  y	
  genera	
  
un	
  número	
  bucket	
  como	
  resultado.	
  
El	
  bucket	
  es	
  un	
  entero,	
  normalmente	
  
entre	
  0	
  a	
  B-­‐1,	
  donde	
  B	
  es	
  el	
  número	
  
de	
  buckets.	
  
	
  
	
  
Obje8vo:	
  Obtener	
  una	
  distribución	
  uniforme.	
  Para	
  ser	
  precisos	
  
si	
  las	
  claves-­‐hash	
  se	
  ob2enen	
  de	
  una	
  distribución	
  uniforme.	
  La	
  
función	
   h()	
   asignará	
   el	
   mismo	
   número	
   de	
   claves-­‐hash	
   a	
   cada	
  
uno	
  de	
  los	
  buckets.	
  
	
  
Tenemos	
  un	
  Stream	
  de	
  m	
  items	
  xi	
  
	
  
	
  
Queremos	
  calcular	
  las	
  estadís2cas	
  de	
  los	
  mismos	
  
1.	
  #m	
  pequeña	
  (pocos	
  millones	
  items)	
  
Trivial	
  de	
  calcular:	
  contadores	
  agregados	
  (diccionario)	
  
Memoria	
  O(m)	
  
Coste	
  computacional	
  O(log	
  m)	
  para	
  almacenamiento	
  &	
  
búsqueda	
  
2.	
  #m	
  grande	
  
Almacenamiento	
  exacto	
  de	
  elementos:	
  imposible	
  
Prueba	
  exacta	
  de	
  elementos	
  previos:	
  imposible	
  
Son	
  necesarios	
  algoritmos	
  y	
  EDD	
  aproximadas	
  
	
  
Ejemplo	
  Calentamiento	
  
Buscando	
  el	
  elemento	
  que	
  falta	
  
Sequencia	
  de	
  N	
  instancias	
  [1..N]	
  
Se	
  observan	
  en	
  un	
  orden	
  arbitrario	
  y	
  un	
  elemento	
  falta	
  
→	
  Buscar	
  cuál	
  es	
  (con	
  el	
  menor	
  número	
  de	
  bits).	
  
Algoritmo	
  
	
  
	
  
Calcular	
  la	
  suma	
  
Para	
  cada	
  elemento	
  decrementar	
  s	
  
Al	
  final	
  tenemos	
  el	
  elemento	
  que	
  falta	
  
	
  
¿Cuantos	
  bits	
  necesitamos	
  para	
  almacenar?	
  	
  
	
  O(N),	
  O(2LogN)	
  bits	
  	
  
Faltan	
  hasta	
  K	
  elementos	
  
Secuencia	
  de	
  [1..N]	
  
Hasta	
  k	
  de	
  ellos	
  faltan.	
  ¿como	
  iden2ficarlos?	
  
Algoritmo	
  
	
  
Calcular	
  la	
  suma	
  de	
  p	
  hasta	
  k	
  
	
  
Para	
  cada	
  elemento	
  decrementar	
  Sp	
  	
  
	
  
Iden2ficar	
  los	
  elementos	
  que	
  faltan	
  solucionando	
  un	
  
sistema	
  de	
  polinomios.	
  
	
  
Algoritmo	
  Flajolet-­‐Mar2n	
  
Algoritmo	
  Flajolet-­‐Mar2n	
  
Asume	
  funciones	
  hash	
  perfectas	
  que	
  2enen	
  la	
  siguiente	
  
propiedad	
  
Algoritmo	
  
1.	
  Calculamos	
  el	
  hash	
  como	
  un	
  string	
  binario.	
  
2.	
  Obtenemos	
  la	
  posición	
  del	
  0	
  más	
  a	
  la	
  derecha;	
  o	
  el	
  
número	
  de	
  0s	
  después	
  del	
  úl2mo	
  1.	
  
3.	
  El	
  valor	
  J	
  más	
  grande	
  es	
  la	
  es8mación	
  del	
  número	
  del	
  
elementos	
  dis8ntos.	
  
	
  
F-­‐M	
  Bounds	
  
De	
  forma	
  intui2va	
  esperamos	
  
Repe2ciones	
  del	
  mismo	
  elemento	
  no	
  afectan	
  
Necesitamos	
  O(log	
  log	
  |X|)	
  bits	
  para	
  almacenar	
  el	
  
contador	
  (2^2^32	
  en	
  el	
  caso	
  de	
  32	
  bits)	
  
Con	
  gran	
  probabilidad	
  la	
  aproximación	
  está	
  en	
  el	
  rango:	
  
	
  
Alon-­‐Ma2as-­‐Szegedy	
  Sketch	
  
Paper	
  1996.	
  [AMS1996]	
  	
  
Ganador	
  2005	
  Gödel	
  Prize.	
  
Generaliza	
  el	
  algoritmo	
  de	
  Flajolet-­‐Mar2n	
  para	
  funciones	
  hash	
  
independientes	
  2-­‐way.	
  Permite	
  calcular	
  momentos	
  de	
  orden	
  K	
  
(FK).	
  	
   0	
  num	
  elementos	
  dis2ntos	
  
1	
  num	
  total	
  de	
  elementos	
  (trivial)	
  
2	
  Varianza	
  
3	
  Asímetria	
  
	
  
Extrayendo	
  Buenas	
  Muestras	
  
Obje2vo:	
  Mantener	
  las	
  propiedades	
  del	
  dataset	
  completo	
  en	
  la	
  
muestra.	
  
Algoritmo	
  Naive:	
  Elegir	
  cada	
  elemento	
  del	
  stream	
  con	
  una	
  cierta	
  
probabilidad.	
  
Algoritmo	
  "Reservoir	
  Sampling":	
  Dado	
  un	
  conjunto	
  de	
  datos	
  de	
  
longitud	
  desconocida,	
  elegir	
  un	
  elemento	
  del	
  stream	
  de	
  forma	
  
que	
   cada	
   elemento	
   único	
   tenga	
   la	
   misma	
   probabilidad	
   de	
  
aparecer	
  
Heavy	
  Hi9ers:	
  Space	
  Saving	
  
[MAE2005]	
  Obje2vo:	
  Buscar	
  los	
  k	
  elementos	
  más	
  frecuentes	
  
(pesados)	
  
Algoritmo	
  
-­‐Inicializamos	
  k	
  pares	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  en	
  la	
  lista	
  T	
  
-­‐	
  Obervamos	
  una	
  instancia	
  
-­‐	
  If	
  x	
  está	
  	
  en	
  T,	
  incrementamos	
  el	
  contador	
  
-­‐	
  else	
  buscamos	
  la	
  e2queta	
  con	
  el	
  menor	
  contador	
  y	
  la	
  
actualizamos	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  con	
  
	
  
Salida:	
  Lista	
  ordenada	
  con	
  dos	
  índices	
  (e2queta,	
  contador)	
  
Heavy	
  Hi9ers:	
  Space	
  Saving	
  
El	
  error	
  está	
  acotado	
  al	
  número	
  de	
  simbolos	
  observados	
  (n)	
  
entre	
  el	
  número	
  de	
  bins	
  (k):	
  
Más	
  allá	
  de	
  Heavy	
  Hi9ers	
  
-­‐	
  Comprobar	
  elementos	
  vistos	
  previamente:	
  
	
  	
  Pero	
  no	
  mantener	
  contadores,	
  solo	
  su	
  existencia.	
  
-­‐	
  Comprobar	
  la	
  es2mación	
  de	
  frecuencia:	
  
	
  	
  	
  Pero,	
  no	
  queremos	
  almacenar	
  e2quetas.	
  
	
  	
  	
  Pero,	
  queremos	
  es2mar	
  todos	
  los	
  items	
  (no	
  solo	
  HH)	
  
	
  	
  	
  Pero,	
  queremos	
  ser	
  capaces	
  de	
  agregarlos.	
  
	
  
Algoritmos:	
  Bloom	
  Filters,	
  Count-­‐Min	
  Sketch,	
  Counter	
  
Braids	
  
	
  
Bloom	
  Filters	
  
Array	
  de	
  bits	
  b	
  de	
  longitud	
  n	
  
-­‐	
  insert(x):	
  para	
  todo	
  i	
  set	
  bit	
  b[h(x,i)]	
  =	
  1	
  
-­‐	
  query(x):	
  devolvemos	
  TRUE	
  si	
  para	
  todo	
  i	
  b[h(x,i)]	
  =	
  1	
  
	
  
-­‐	
  Solo	
  devuelve	
  TRUE	
  si	
  todos	
  los	
  k	
  bits	
  están	
  a	
  1	
  
	
  
-­‐	
  No	
  hay	
  falsos	
  nega2vos	
  (si	
  no	
  está,	
  no	
  ha	
  aparecido),	
  pero	
  
si	
  puede	
  haber	
  falsos	
  posi2vos.	
  
	
  
Bloom	
  Filters	
  
Probabilidad	
  que	
  un	
  bit	
  arbitrario	
  se	
  ac2ve	
  
	
  
	
  
	
  
Probabilidad	
  de	
  Falsos	
  Posi2vos	
  
	
  
	
  
	
  
Ejemplos	
  de	
  uso:	
  
HBase:	
  	
  
h9p://bigdataanaly2csnews.com/bloom-­‐filters-­‐hbase-­‐chrome/	
  	
  
	
  
Cassandra:	
  
h9p://wiki.apache.org/cassandra/ArchitectureOverview	
  	
  
	
  
Tutorial	
  en	
  la	
  web:	
  
h9p://billmill.org/bloomfilter-­‐tutorial/	
  	
  
Bloom	
  Filters:	
  aplicaciones	
  
Unión	
  de	
  dos	
  conjuntos	
  por	
  OR	
  
	
  
	
  
	
  
	
  
	
  
-­‐Construcción	
  paralela	
  de	
  Bloom	
  Filters	
  
	
  
-­‐Agregación	
  dependiente	
  del	
  2empo	
  (ventanas	
  temporales)	
  
	
  
-­‐Unión	
  de	
  conjuntos	
  de	
  forma	
  aproximada	
  y	
  rápida	
  	
  
(operaciones	
  de	
  bitmap	
  en	
  lugar	
  de	
  operaciones	
  de	
  conjuntos)	
  
	
  
-­‐También	
  se	
  u2liza	
  para	
  dividir	
  la	
  resolución	
  de	
  los	
  bits	
  de	
  un	
  
Bloom	
  Filter	
  
	
  
Bloom	
  Filters:	
  aplicaciones	
  
Intersección	
  de	
  conjuntos	
  con	
  AND	
  
	
  
	
  
	
  
	
  
	
  
	
  
-­‐	
  No	
  hay	
  falsos	
  nega2vos	
  
	
  
-­‐	
  Más	
  falsos	
  posi2vos	
  que	
  sin	
  la	
  intersección	
  
	
  
Coun2ng	
  Bloom	
  Filters	
  
Bloom	
  filter	
  por	
  defecto	
  no	
  permite	
  eliminar	
  elementos:	
  
-­‐	
  insert(x):	
  para	
  todo	
  i	
  set	
  bit	
  b[h(x,i)]	
  =	
  1.	
  No	
  sabemos	
  si	
  ya	
  
ha	
  sido	
  ac2vado	
  antes.	
  
-­‐	
  query(x):	
  return	
  TRUE	
  si	
  para	
  todo	
  i	
  b[h(x,i)]	
  =	
  1	
  
	
  
Coun2ng	
  Bloom	
  Filter	
  recuerda	
  los	
  inserts:	
  
	
  
query(x):	
  return	
  TRUE	
  if	
  for	
  all	
  i	
  b[h(x,i)]	
  >	
  0	
  
insert(x):	
  if	
  query(x)	
  =	
  FALSE	
  (no	
  lo	
  insertamos	
  doble)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  for	
  all	
  i	
  increment	
  b[h(x,i)]	
  =	
  b[h(x,i)]	
  +	
  1	
  
remove(x):	
  if	
  query(x)	
  =	
  TRUE	
  (no	
  lo	
  eliminamos)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  for	
  all	
  i	
  decrement	
  b[h(x,i)]	
  =	
  b[h(x,i)]	
  –	
  1	
  
	
  
Solo	
  necesitamos	
  log	
  log	
  m	
  bits	
  
	
  
Count-­‐Min	
  Sketch	
  
Similar	
  a	
  Bloom	
  filters	
  pero	
  con	
  contadores	
  (Modelo	
  Turns2le).	
  
Una	
  fila	
  por	
  hash	
  func2on.	
  [CM2005].	
  
h9ps://sites.google.com/site/countminsketch/	
  	
  
	
  
3.	
  Tecnologías	
  de	
  Procesamiento	
  	
  
Distribuido	
  
Propiedades	
  Deseables	
  de	
  un	
  	
  
Sistema	
  de	
  Big	
  Data	
  
1.  Robusto	
  y	
  tolerante	
  a	
  fallos:	
  En	
  un	
  sistema	
  en	
  producción	
  es	
  
inevitable	
  que	
  alguien	
  cometa	
  un	
  fallo	
  en	
  algún	
  momento.	
  
2.  Baja	
   latencia	
   de	
   lectura	
   y	
   actualización:	
   Es	
   necesario	
  
proporcionar	
   latencias	
   bajas	
   de	
   lectura	
   y	
   actualización	
   sin	
  
comprometer	
  la	
  robustez	
  del	
  sistema.	
  
3.  Escalable:	
  Capacidad	
  para	
  mantener	
  el	
  rendimiento	
  a	
  medida	
  
que	
  crecen	
  los	
  datos	
  de	
  entrada.	
  
4.  General:	
   Un	
   sistema	
   debería	
   soportar	
   diferentes	
   2pos	
   de	
  
aplicaciones.	
  
5.  Extensible:	
   Permite	
   añadir	
   nueva	
   funcionalidad	
   con	
   bajo	
  
coste.	
  
6.  Permi8r	
  queries	
  ad-­‐hoc:	
  Consultas	
  no	
  definidas.	
  
7.  Mínimo	
  mantenimiento	
  
8.  Depurable	
  
Problemas	
  
¿Como	
  escalar	
  algoritmos	
  en	
  más	
  de	
  un	
  maquina?	
  
	
  Precisión	
  (memoria	
  limitada)	
  
	
  Tolerancia	
  a	
  fallos	
  
	
  Escalabilidad	
  (más	
  datos	
  de	
  entrada)	
  
Herramientas:	
  Consistent-­‐Hashing	
  (Dividir	
  las	
  claves	
  X	
  
entre	
  un	
  pool	
  de	
  maquinas	
  M)	
  
	
  Proporciona	
  Balanceo	
  de	
  carga	
  
	
  Se	
  puede	
  extender	
  para	
  proporcionar	
  tolerancia	
  a	
  
	
  fallos	
  
Idea:	
  
-­‐Asignar	
  keys	
  solo	
  a	
  un	
  conjunto	
  de	
  maquinas	
  
-­‐Sobre-­‐replicarlas	
  para	
  la	
  fiabilidad	
  
-­‐Sobre-­‐replicarlas	
  para	
  el	
  paralelismo	
  de	
  queries	
  
	
  
-­‐Insertar	
  en	
  K	
  maquinas	
  a	
  la	
  vez	
  
-­‐Procesar	
  pe2ciones	
  de	
  K'	
  <	
  K	
  maquinas	
  a	
  la	
  vez	
  
(usar	
  set	
  hashing	
  en	
  C(x)	
  con	
  Cliente	
  ID)	
  
	
  
	
  
Consistent	
  Set	
  Hashing	
  
Ejemplo	
  AutoTagging	
  
Auto	
  clasificador	
  de	
  imágenes	
  @Flickr	
  
Ejemplo	
  AutoTagging	
  
10.000	
  mappers	
  
1.000	
  reducers	
  
Pocos	
  miles	
  de	
  clasificadores	
  in	
  6	
  horas	
  
	
  
Mejoras:	
  
-­‐	
  Actualizar	
  los	
  modelos	
  de	
  forma	
  incremental	
  según	
  llegan	
  nuevos	
  
datos	
  
	
  
Solución:	
  
-­‐	
  Batch	
  processing	
  con	
  Hadoop	
  
-­‐	
  Stream	
  processing	
  con	
  Storm	
  
Arquitecturas	
  
Lambda	
  
Arquitectura	
  Lambda	
  
-­‐	
  Término	
  acuñado	
  por	
  Nathan	
  Marz.	
  
-­‐	
  Descompone	
  el	
  problema	
  de	
  calcular	
  funciones	
  arbitrarias	
  
en	
  conjuntos	
  de	
  datos	
  arbitrarios	
  usando	
  3	
  capas:	
  (1)	
  Capa	
  
Batch,	
  (2)	
  Capa	
  Serving	
  y	
  (3)	
  Capa	
  Speed.	
  
Storm	
  
Sistema	
  de	
  computación	
  distribuido	
  para	
  procesar	
  streams	
  de	
  datos	
  
en	
  2empo	
  real	
  y	
  tolerante	
  a	
  fallos.	
  h9p://storm.incubator.apache.org/	
  
	
  
Tuplas:	
  Unidad	
  atómica	
  de	
  trabajo	
  
Topology:	
  Grafo	
  de	
  Bolts	
  y	
  Spouts	
  
Spouts:	
  La	
  fuente	
  de	
  datos.	
  "Emite"	
  Tuplas.	
  
Bolts:	
  Pequeños	
  programas	
  que	
  procesan	
  los	
  datos.	
  	
  
TopologyBuilder	
  builder	
  =	
  new	
  TopologyBuilder();	
  
builder.setSpout(“words”,	
  new	
  TestWordSpout(),	
  10);	
  
builder.setBolt(“exclaim1”,	
  new	
  Exclama2onBolt(),	
  3)	
  
	
  .shuffleGrouping(“words”);	
  
Builder.setBolt(“exclaim2”,	
  new	
  Exclama2onBolt(),	
  2)	
  
	
  .shuffleGrouping(“exclaim1”);	
  
Predicción	
  Churn	
  
Predic2ng	
   Customer	
   Churn	
   in	
   a	
   Telecommunica2ons	
   Network	
  
Environment.	
  Patent	
  Pending.	
  US.	
  61/985,671	
  
Conclusiones	
  
No	
  todo	
  Big	
  Data	
  es	
  Hadoop-­‐ish.	
  
	
  
No	
  siempre	
  más	
  datos	
  es	
  mejor.	
  Depende	
  del	
  problema.	
  
Cuando	
  2enes	
  muchos	
  datos,	
  prác2camente	
  cualquier	
  
patrón	
  puede	
  aparece	
  (signal/noise)	
  
	
  
Muy	
  importante	
  tener	
  en	
  cuenta	
  la	
  complejidad	
  de	
  los	
  
algoritmos	
  u2lizados.	
  
	
  
Escalar	
  los	
  procesos/sistemas	
  de	
  forma	
  inteligente.	
  (ala	
  
Consistent	
  Hashing)	
  
	
  
La	
  principal	
  ventaja	
  en	
  los	
  modelos	
  predic2vos/ML	
  suele	
  
venir	
  por	
  el	
  esfuerzo	
  en	
  "Feature	
  Engineering"	
  
	
  
¡Gracias!
We	
  are	
  Hiring!	
  
fcastanedo@wiseathena.com	
  
Referencias	
  

Más contenido relacionado

Destacado

Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia Design
Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia DesignGuida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia Design
Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia DesignLuca Mengoni
 
Correcta ejecución del trabajo abdominal i
Correcta ejecución del trabajo abdominal iCorrecta ejecución del trabajo abdominal i
Correcta ejecución del trabajo abdominal igerman0024
 
Growth Hacking: Hack your mind. Process your growth
Growth Hacking: Hack your mind. Process your growthGrowth Hacking: Hack your mind. Process your growth
Growth Hacking: Hack your mind. Process your growthYufi Eko Firmansyah
 
Taller 10 propuesta proyecto innovador
Taller 10   propuesta proyecto innovadorTaller 10   propuesta proyecto innovador
Taller 10 propuesta proyecto innovadorJARVY
 
Informe de gestion_consejo_local_flb_2014
Informe de gestion_consejo_local_flb_2014Informe de gestion_consejo_local_flb_2014
Informe de gestion_consejo_local_flb_2014Upyd Fuenlabrada
 
Webinar sobre Pages de Jordi Hernandez para SEMRush
Webinar sobre Pages de Jordi Hernandez para SEMRushWebinar sobre Pages de Jordi Hernandez para SEMRush
Webinar sobre Pages de Jordi Hernandez para SEMRushJordi Hernández
 
De masi.esame int.design Esame corso interior design annuale progetto finale ...
De masi.esame int.design Esame corso interior design annuale progetto finale ...De masi.esame int.design Esame corso interior design annuale progetto finale ...
De masi.esame int.design Esame corso interior design annuale progetto finale ...NAD Nuova Accademia del Design
 
Managing time human services
Managing time human servicesManaging time human services
Managing time human servicesezook
 
Pasos básicos para una buena lectura
Pasos básicos para una buena lecturaPasos básicos para una buena lectura
Pasos básicos para una buena lecturaLisette Rios
 
Shell case study: Enabling straight-through touchless processing of 500,000 i...
Shell case study: Enabling straight-through touchless processing of 500,000 i...Shell case study: Enabling straight-through touchless processing of 500,000 i...
Shell case study: Enabling straight-through touchless processing of 500,000 i...sharedserviceslink.com
 
ISO 22320 Gestión de Emergencias. Aucalsa
ISO 22320 Gestión de Emergencias. AucalsaISO 22320 Gestión de Emergencias. Aucalsa
ISO 22320 Gestión de Emergencias. AucalsaAENOR
 
Curso de torneiro mecanico
Curso de torneiro mecanicoCurso de torneiro mecanico
Curso de torneiro mecanicoMaracaju Vip
 
Efficient Running with Pose Method
Efficient Running with Pose MethodEfficient Running with Pose Method
Efficient Running with Pose Methodsuzyhgoodwin
 

Destacado (20)

Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia Design
Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia DesignGuida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia Design
Guida Joomla! 2.5 per principianti - by Hagen Graaf - Traduzione Cinzia Design
 
Correcta ejecución del trabajo abdominal i
Correcta ejecución del trabajo abdominal iCorrecta ejecución del trabajo abdominal i
Correcta ejecución del trabajo abdominal i
 
Growth Hacking: Hack your mind. Process your growth
Growth Hacking: Hack your mind. Process your growthGrowth Hacking: Hack your mind. Process your growth
Growth Hacking: Hack your mind. Process your growth
 
Taller 10 propuesta proyecto innovador
Taller 10   propuesta proyecto innovadorTaller 10   propuesta proyecto innovador
Taller 10 propuesta proyecto innovador
 
Ramon Morato
Ramon MoratoRamon Morato
Ramon Morato
 
Informe de gestion_consejo_local_flb_2014
Informe de gestion_consejo_local_flb_2014Informe de gestion_consejo_local_flb_2014
Informe de gestion_consejo_local_flb_2014
 
Transplantes
TransplantesTransplantes
Transplantes
 
Luxury destination
Luxury destinationLuxury destination
Luxury destination
 
Clear Channel Outdoor
Clear Channel OutdoorClear Channel Outdoor
Clear Channel Outdoor
 
Emin sg chance sistema anclaje
Emin sg chance sistema anclajeEmin sg chance sistema anclaje
Emin sg chance sistema anclaje
 
Webinar sobre Pages de Jordi Hernandez para SEMRush
Webinar sobre Pages de Jordi Hernandez para SEMRushWebinar sobre Pages de Jordi Hernandez para SEMRush
Webinar sobre Pages de Jordi Hernandez para SEMRush
 
De masi.esame int.design Esame corso interior design annuale progetto finale ...
De masi.esame int.design Esame corso interior design annuale progetto finale ...De masi.esame int.design Esame corso interior design annuale progetto finale ...
De masi.esame int.design Esame corso interior design annuale progetto finale ...
 
Mocion urgente comunidad gitana asperones julio 2016
Mocion urgente comunidad gitana asperones   julio 2016Mocion urgente comunidad gitana asperones   julio 2016
Mocion urgente comunidad gitana asperones julio 2016
 
Managing time human services
Managing time human servicesManaging time human services
Managing time human services
 
Pasos básicos para una buena lectura
Pasos básicos para una buena lecturaPasos básicos para una buena lectura
Pasos básicos para una buena lectura
 
Shell case study: Enabling straight-through touchless processing of 500,000 i...
Shell case study: Enabling straight-through touchless processing of 500,000 i...Shell case study: Enabling straight-through touchless processing of 500,000 i...
Shell case study: Enabling straight-through touchless processing of 500,000 i...
 
ISO 22320 Gestión de Emergencias. Aucalsa
ISO 22320 Gestión de Emergencias. AucalsaISO 22320 Gestión de Emergencias. Aucalsa
ISO 22320 Gestión de Emergencias. Aucalsa
 
Curso de torneiro mecanico
Curso de torneiro mecanicoCurso de torneiro mecanico
Curso de torneiro mecanico
 
La intolerancia religiosa
La intolerancia religiosa La intolerancia religiosa
La intolerancia religiosa
 
Efficient Running with Pose Method
Efficient Running with Pose MethodEfficient Running with Pose Method
Efficient Running with Pose Method
 

Similar a Una visión de las técnicas y métodos de análisis en entornos Big Data utilizando tecnologías de última generación

Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaIrvingMoran4
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosFranklin Parrales Bravo
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Fundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAFundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAJose Luis Dorao
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneositatitat
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busquedaGonzalo Retamal
 
Fundamentos de Data Mining con R
Fundamentos de Data Mining con RFundamentos de Data Mining con R
Fundamentos de Data Mining con RSoftware Guru
 
Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Sergio Ormeño
 
Unidad 1
Unidad 1Unidad 1
Unidad 1Ana
 

Similar a Una visión de las técnicas y métodos de análisis en entornos Big Data utilizando tecnologías de última generación (20)

Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Bus99
Bus99Bus99
Bus99
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
 
analisis de los algoritmos
analisis de los algoritmosanalisis de los algoritmos
analisis de los algoritmos
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Fundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAFundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADA
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
 
Semana 1 - Informàtica
Semana 1 - InformàticaSemana 1 - Informàtica
Semana 1 - Informàtica
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 
Complejidad de-los-algoritmos
Complejidad de-los-algoritmosComplejidad de-los-algoritmos
Complejidad de-los-algoritmos
 
Fundamentos de Data Mining con R
Fundamentos de Data Mining con RFundamentos de Data Mining con R
Fundamentos de Data Mining con R
 
Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Más de Victoria López

Alan turing uva-presentationdec-2019
Alan turing uva-presentationdec-2019Alan turing uva-presentationdec-2019
Alan turing uva-presentationdec-2019Victoria López
 
Seminar UvA 2018- socialbigdata
Seminar UvA  2018- socialbigdataSeminar UvA  2018- socialbigdata
Seminar UvA 2018- socialbigdataVictoria López
 
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALES
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALESBIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALES
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALESVictoria López
 
ICCES'2016 BIG DATA IN HEALTHCARE AND SOCIAL SCIENCES
ICCES'2016  BIG DATA IN HEALTHCARE AND SOCIAL SCIENCESICCES'2016  BIG DATA IN HEALTHCARE AND SOCIAL SCIENCES
ICCES'2016 BIG DATA IN HEALTHCARE AND SOCIAL SCIENCESVictoria López
 
Presentación Gupo G-TeC en Social Big Data
Presentación Gupo G-TeC en Social Big DataPresentación Gupo G-TeC en Social Big Data
Presentación Gupo G-TeC en Social Big DataVictoria López
 
Big data systems and analytics
Big data systems and analyticsBig data systems and analytics
Big data systems and analyticsVictoria López
 
Big Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoBig Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoVictoria López
 
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...Victoria López
 
G te c sesion1a-bioinformatica y big data
G te c sesion1a-bioinformatica y big dataG te c sesion1a-bioinformatica y big data
G te c sesion1a-bioinformatica y big dataVictoria López
 
G te c sesion1b-casos de uso
G te c sesion1b-casos de usoG te c sesion1b-casos de uso
G te c sesion1b-casos de usoVictoria López
 
G te c sesion2a-data collection
G te c sesion2a-data collectionG te c sesion2a-data collection
G te c sesion2a-data collectionVictoria López
 
G tec sesion2b-host-cloud y cloudcomputing
G tec sesion2b-host-cloud y cloudcomputingG tec sesion2b-host-cloud y cloudcomputing
G tec sesion2b-host-cloud y cloudcomputingVictoria López
 
G te c sesion3a-bases de datos modernas
G te c sesion3a-bases de datos modernasG te c sesion3a-bases de datos modernas
G te c sesion3a-bases de datos modernasVictoria López
 
G te c sesion3b- mapreduce
G te c sesion3b- mapreduceG te c sesion3b- mapreduce
G te c sesion3b- mapreduceVictoria López
 
G te c sesion4a-bigdatasystemsanalytics
G te c sesion4a-bigdatasystemsanalyticsG te c sesion4a-bigdatasystemsanalytics
G te c sesion4a-bigdatasystemsanalyticsVictoria López
 
G te c sesion4b-complejidad y tpa
G te c sesion4b-complejidad y tpaG te c sesion4b-complejidad y tpa
G te c sesion4b-complejidad y tpaVictoria López
 
Open Data para Smartcity-Facultad de Estudios Estadísticos
Open Data para Smartcity-Facultad de Estudios EstadísticosOpen Data para Smartcity-Facultad de Estudios Estadísticos
Open Data para Smartcity-Facultad de Estudios EstadísticosVictoria López
 
Deep Learning + R by Gabriel Valverde
Deep Learning + R by Gabriel ValverdeDeep Learning + R by Gabriel Valverde
Deep Learning + R by Gabriel ValverdeVictoria López
 
Fortune Time Institute: Big Data - Challenges for Smartcity
Fortune Time Institute: Big Data - Challenges for SmartcityFortune Time Institute: Big Data - Challenges for Smartcity
Fortune Time Institute: Big Data - Challenges for SmartcityVictoria López
 

Más de Victoria López (20)

Alan turing uva-presentationdec-2019
Alan turing uva-presentationdec-2019Alan turing uva-presentationdec-2019
Alan turing uva-presentationdec-2019
 
Seminar UvA 2018- socialbigdata
Seminar UvA  2018- socialbigdataSeminar UvA  2018- socialbigdata
Seminar UvA 2018- socialbigdata
 
Jornada leiden short
Jornada leiden shortJornada leiden short
Jornada leiden short
 
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALES
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALESBIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALES
BIG DATA EN CIENCIAS DE LA SALUD Y CIENCIAS SOCIALES
 
ICCES'2016 BIG DATA IN HEALTHCARE AND SOCIAL SCIENCES
ICCES'2016  BIG DATA IN HEALTHCARE AND SOCIAL SCIENCESICCES'2016  BIG DATA IN HEALTHCARE AND SOCIAL SCIENCES
ICCES'2016 BIG DATA IN HEALTHCARE AND SOCIAL SCIENCES
 
Presentación Gupo G-TeC en Social Big Data
Presentación Gupo G-TeC en Social Big DataPresentación Gupo G-TeC en Social Big Data
Presentación Gupo G-TeC en Social Big Data
 
Big data systems and analytics
Big data systems and analyticsBig data systems and analytics
Big data systems and analytics
 
Big Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoBig Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamiento
 
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...
APLICACIÓN DE TÉCNICAS DE OPTIMIZACIÓN Y BIG DATA AL PROBLEMA DE BÚSQUEDA...
 
G te c sesion1a-bioinformatica y big data
G te c sesion1a-bioinformatica y big dataG te c sesion1a-bioinformatica y big data
G te c sesion1a-bioinformatica y big data
 
G te c sesion1b-casos de uso
G te c sesion1b-casos de usoG te c sesion1b-casos de uso
G te c sesion1b-casos de uso
 
G te c sesion2a-data collection
G te c sesion2a-data collectionG te c sesion2a-data collection
G te c sesion2a-data collection
 
G tec sesion2b-host-cloud y cloudcomputing
G tec sesion2b-host-cloud y cloudcomputingG tec sesion2b-host-cloud y cloudcomputing
G tec sesion2b-host-cloud y cloudcomputing
 
G te c sesion3a-bases de datos modernas
G te c sesion3a-bases de datos modernasG te c sesion3a-bases de datos modernas
G te c sesion3a-bases de datos modernas
 
G te c sesion3b- mapreduce
G te c sesion3b- mapreduceG te c sesion3b- mapreduce
G te c sesion3b- mapreduce
 
G te c sesion4a-bigdatasystemsanalytics
G te c sesion4a-bigdatasystemsanalyticsG te c sesion4a-bigdatasystemsanalytics
G te c sesion4a-bigdatasystemsanalytics
 
G te c sesion4b-complejidad y tpa
G te c sesion4b-complejidad y tpaG te c sesion4b-complejidad y tpa
G te c sesion4b-complejidad y tpa
 
Open Data para Smartcity-Facultad de Estudios Estadísticos
Open Data para Smartcity-Facultad de Estudios EstadísticosOpen Data para Smartcity-Facultad de Estudios Estadísticos
Open Data para Smartcity-Facultad de Estudios Estadísticos
 
Deep Learning + R by Gabriel Valverde
Deep Learning + R by Gabriel ValverdeDeep Learning + R by Gabriel Valverde
Deep Learning + R by Gabriel Valverde
 
Fortune Time Institute: Big Data - Challenges for Smartcity
Fortune Time Institute: Big Data - Challenges for SmartcityFortune Time Institute: Big Data - Challenges for Smartcity
Fortune Time Institute: Big Data - Challenges for Smartcity
 

Último

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Último (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

Una visión de las técnicas y métodos de análisis en entornos Big Data utilizando tecnologías de última generación

  • 1. Una  visión  de  las  técnicas  y   métodos  de  análisis  en  entornos  Big   Data  u8lizando  tecnologías  de   úl8ma  generación     Federico  Castanedo   Chief  Data  Scien2st  @WiseAthena.com     twi9er  @overfit  
  • 2. Índice   1.  Introducción  a  los  problemas  de  big-­‐data  analy2cs     2.  Algoritmos  aproximados    -­‐  Flajolet-­‐Mar2n.  Alon-­‐Ma2as-­‐Szegedy  Sketch    -­‐  Heavy  Hi9ers:  Space  Saving  Algorithm    -­‐  Bloom  Filter,  Count-­‐Min  Sketch     3.  Tecnologías  de  procesamiento  distribuido    -­‐  Arquitecturas  Lambda     4.  Casos  prác2cos  
  • 3.
  • 4. Cuantos  más  datos,  mejor!   Alon  Havely,  Peter  Norvig,  Fernando  Pereira.  The  Unreasonable   Effec0veness  of  Data.  IEEE  Intelligent  Systems.  2009.     "We  don’t  have  beAer  algorithms.  We  just  have  more  data."     Talk:  h9p://youtu.be/yvDCzhbjYWs     Michele  Banko  and  Eric  Brill.  Scaling  to  Very  Very  Large  Corpora  for   Natural  Language  Disambigua0on.  ACL  2001     Deep  Learning  @Google.   Q.  V.  Lee.  et.  al.  Building  High-­‐level  Features     Using  Large  Scale  Unsupervised  Learning.     ICML  2012.        
  • 5. Cuantos  más  datos,  ¿mejor?   D.  Lazer,  R.  Kennedy,  G.  King  and  A.  Vespignani.  The  Parable  of  Google  Flu:   Traps  in  Big  Data  Analysis.  Science.  13  March  2014.   Declan  Butler.  When  Google  got  flu  wrong.  Nature.  13  Febrero  2103.   h9p://www.tylervigen.com        
  • 6. Curva  de  aprendizaje  de  alta  varianza  (Over-­‐Fit)   Depende  (sesgo  vs  varianza)   -­‐  El  error  de  test  decrece  a  medida  que  m  crece.  Sugiere  que  un   conjunto  más  grande  es  mejor.   -­‐  Hay  un  gap  inicial  muy  grande  entre  el  error  en  entrenamiento  y  test   -­‐  En  estas  situaciones  añadir  más  datos  ayuda.  
  • 7. Depende  (sesgo  vs  varianza)   Curva  de  aprendizaje  de  alto  Sesgo  (Under-­‐Fit)   -­‐  Incluso  el  error  de  entrenamiento  es  muy  alto.   -­‐  El  error  de  entrenamiento  y  test  convergen  a  valores  similares  pero   no  muy  buenos.   -­‐  En  estas  situaciones  añadir  más  datos  no  suele  ayudar.  
  • 8. En  general   -­‐  Más  datos  de  entrenamiento  à  Sol.  Alta  Varianza   -­‐  Menos  features  à  Sol.  Alta  Varianza   -­‐  Conjuto  grande  de  features  à  Sol.  Alto  Sesgo   -­‐   Queremos   algoritmos   que   tengan   baja   varianza   y   bajo   sesgo.  El  bajo  sesgo  se  consigue  con  muchas  features  y  la   baja  varianza  con  muchos  datos  (Ej.  texto  vs  precios  casa)   PERO......   Más  datos  à  Mayor  coste  computacional    
  • 9.
  • 10. Medidas  de  Rendimiento   1.  Tiempo  de  Procesamiento   El  2empo  necesario  para  procesar  cada  elemento  desde   que  se  recibe.   2.  Tiempo  de  Computación   El  2empo  necesario  para  calcular  las  funciones  en  los   datos.   3.  Tamaño  de  Almacenamiento   El  espacio  u2lizado  para  almacenar  la  estructura  de  datos.  
  • 12. Complejidad  de  Algoritmos   Punto  de  Vista  Prác8co   -­‐  Algoritmo  O(n^2)  solo  válido  para  Small  Data   -­‐  Los  datos  caben  en  una  máquina:  Medium  Data   -­‐  Los  datos  no  caben  en  una  máquina:  Big  Data     Enlaces  de  Complejidad   h9p://www.sco9aaronson.com/blog/?p=263     h9p://bigocheatsheet.com/     h9p://www.sor2ng-­‐algorithms.com/      
  • 13. Big  Data  !=  Hadoop   •  Hadoop  es  una  gran  herramienta  pero  no  siempre  es  la   mejor.   •  Hadoop  es  ú2l  para  trabajos/procesos  en  modo  Batch  que   no  tengan  requisitos  de  2empo  real.  (I/O  Bound)   •  Cuando  se  requiere  trabajar  sobre  Streams  de  datos  son   mejores  otras  tecnologías.  (Velocity  de  Big-­‐Data)   •  Un  stream  de  datos  es  una  secuencia  de  elementos  que   se  reciben  en  2empo  real  de  forma  con8nua  y  ordenada   (bien  de  forma  explícita  por  el  2mestamp  o  implícita  por   la  posición).   •  Siendo  estrictos,  además  es  imposible  controlar  el  orden   en   que   se   reciben   los   elementos   y   tampoco   es   posible   almacenar  el  stream  completo  de  forma  local.  
  • 14. Funciones  Hash   Mapeo  h  de  un  dominio  X  a  un  rango   entero  [1,...,N]   Una  función  hash  h()  que  toma  una   clave-­‐hash  como  argumento  y  genera   un  número  bucket  como  resultado.   El  bucket  es  un  entero,  normalmente   entre  0  a  B-­‐1,  donde  B  es  el  número   de  buckets.       Obje8vo:  Obtener  una  distribución  uniforme.  Para  ser  precisos   si  las  claves-­‐hash  se  ob2enen  de  una  distribución  uniforme.  La   función   h()   asignará   el   mismo   número   de   claves-­‐hash   a   cada   uno  de  los  buckets.    
  • 15.
  • 16. Tenemos  un  Stream  de  m  items  xi       Queremos  calcular  las  estadís2cas  de  los  mismos   1.  #m  pequeña  (pocos  millones  items)   Trivial  de  calcular:  contadores  agregados  (diccionario)   Memoria  O(m)   Coste  computacional  O(log  m)  para  almacenamiento  &   búsqueda   2.  #m  grande   Almacenamiento  exacto  de  elementos:  imposible   Prueba  exacta  de  elementos  previos:  imposible   Son  necesarios  algoritmos  y  EDD  aproximadas     Ejemplo  Calentamiento  
  • 17. Buscando  el  elemento  que  falta   Sequencia  de  N  instancias  [1..N]   Se  observan  en  un  orden  arbitrario  y  un  elemento  falta   →  Buscar  cuál  es  (con  el  menor  número  de  bits).   Algoritmo       Calcular  la  suma   Para  cada  elemento  decrementar  s   Al  final  tenemos  el  elemento  que  falta     ¿Cuantos  bits  necesitamos  para  almacenar?      O(N),  O(2LogN)  bits    
  • 18. Faltan  hasta  K  elementos   Secuencia  de  [1..N]   Hasta  k  de  ellos  faltan.  ¿como  iden2ficarlos?   Algoritmo     Calcular  la  suma  de  p  hasta  k     Para  cada  elemento  decrementar  Sp       Iden2ficar  los  elementos  que  faltan  solucionando  un   sistema  de  polinomios.    
  • 20. Algoritmo  Flajolet-­‐Mar2n   Asume  funciones  hash  perfectas  que  2enen  la  siguiente   propiedad   Algoritmo   1.  Calculamos  el  hash  como  un  string  binario.   2.  Obtenemos  la  posición  del  0  más  a  la  derecha;  o  el   número  de  0s  después  del  úl2mo  1.   3.  El  valor  J  más  grande  es  la  es8mación  del  número  del   elementos  dis8ntos.    
  • 21. F-­‐M  Bounds   De  forma  intui2va  esperamos   Repe2ciones  del  mismo  elemento  no  afectan   Necesitamos  O(log  log  |X|)  bits  para  almacenar  el   contador  (2^2^32  en  el  caso  de  32  bits)   Con  gran  probabilidad  la  aproximación  está  en  el  rango:    
  • 22. Alon-­‐Ma2as-­‐Szegedy  Sketch   Paper  1996.  [AMS1996]     Ganador  2005  Gödel  Prize.   Generaliza  el  algoritmo  de  Flajolet-­‐Mar2n  para  funciones  hash   independientes  2-­‐way.  Permite  calcular  momentos  de  orden  K   (FK).     0  num  elementos  dis2ntos   1  num  total  de  elementos  (trivial)   2  Varianza   3  Asímetria    
  • 23. Extrayendo  Buenas  Muestras   Obje2vo:  Mantener  las  propiedades  del  dataset  completo  en  la   muestra.   Algoritmo  Naive:  Elegir  cada  elemento  del  stream  con  una  cierta   probabilidad.   Algoritmo  "Reservoir  Sampling":  Dado  un  conjunto  de  datos  de   longitud  desconocida,  elegir  un  elemento  del  stream  de  forma   que   cada   elemento   único   tenga   la   misma   probabilidad   de   aparecer  
  • 24. Heavy  Hi9ers:  Space  Saving   [MAE2005]  Obje2vo:  Buscar  los  k  elementos  más  frecuentes   (pesados)   Algoritmo   -­‐Inicializamos  k  pares                                                    en  la  lista  T   -­‐  Obervamos  una  instancia   -­‐  If  x  está    en  T,  incrementamos  el  contador   -­‐  else  buscamos  la  e2queta  con  el  menor  contador  y  la   actualizamos                                                                      con     Salida:  Lista  ordenada  con  dos  índices  (e2queta,  contador)  
  • 25. Heavy  Hi9ers:  Space  Saving   El  error  está  acotado  al  número  de  simbolos  observados  (n)   entre  el  número  de  bins  (k):  
  • 26. Más  allá  de  Heavy  Hi9ers   -­‐  Comprobar  elementos  vistos  previamente:      Pero  no  mantener  contadores,  solo  su  existencia.   -­‐  Comprobar  la  es2mación  de  frecuencia:        Pero,  no  queremos  almacenar  e2quetas.        Pero,  queremos  es2mar  todos  los  items  (no  solo  HH)        Pero,  queremos  ser  capaces  de  agregarlos.     Algoritmos:  Bloom  Filters,  Count-­‐Min  Sketch,  Counter   Braids    
  • 27. Bloom  Filters   Array  de  bits  b  de  longitud  n   -­‐  insert(x):  para  todo  i  set  bit  b[h(x,i)]  =  1   -­‐  query(x):  devolvemos  TRUE  si  para  todo  i  b[h(x,i)]  =  1     -­‐  Solo  devuelve  TRUE  si  todos  los  k  bits  están  a  1     -­‐  No  hay  falsos  nega2vos  (si  no  está,  no  ha  aparecido),  pero   si  puede  haber  falsos  posi2vos.    
  • 28. Bloom  Filters   Probabilidad  que  un  bit  arbitrario  se  ac2ve         Probabilidad  de  Falsos  Posi2vos         Ejemplos  de  uso:   HBase:     h9p://bigdataanaly2csnews.com/bloom-­‐filters-­‐hbase-­‐chrome/       Cassandra:   h9p://wiki.apache.org/cassandra/ArchitectureOverview       Tutorial  en  la  web:   h9p://billmill.org/bloomfilter-­‐tutorial/    
  • 29. Bloom  Filters:  aplicaciones   Unión  de  dos  conjuntos  por  OR             -­‐Construcción  paralela  de  Bloom  Filters     -­‐Agregación  dependiente  del  2empo  (ventanas  temporales)     -­‐Unión  de  conjuntos  de  forma  aproximada  y  rápida     (operaciones  de  bitmap  en  lugar  de  operaciones  de  conjuntos)     -­‐También  se  u2liza  para  dividir  la  resolución  de  los  bits  de  un   Bloom  Filter    
  • 30. Bloom  Filters:  aplicaciones   Intersección  de  conjuntos  con  AND               -­‐  No  hay  falsos  nega2vos     -­‐  Más  falsos  posi2vos  que  sin  la  intersección    
  • 31. Coun2ng  Bloom  Filters   Bloom  filter  por  defecto  no  permite  eliminar  elementos:   -­‐  insert(x):  para  todo  i  set  bit  b[h(x,i)]  =  1.  No  sabemos  si  ya   ha  sido  ac2vado  antes.   -­‐  query(x):  return  TRUE  si  para  todo  i  b[h(x,i)]  =  1     Coun2ng  Bloom  Filter  recuerda  los  inserts:     query(x):  return  TRUE  if  for  all  i  b[h(x,i)]  >  0   insert(x):  if  query(x)  =  FALSE  (no  lo  insertamos  doble)                    for  all  i  increment  b[h(x,i)]  =  b[h(x,i)]  +  1   remove(x):  if  query(x)  =  TRUE  (no  lo  eliminamos)                    for  all  i  decrement  b[h(x,i)]  =  b[h(x,i)]  –  1     Solo  necesitamos  log  log  m  bits    
  • 32. Count-­‐Min  Sketch   Similar  a  Bloom  filters  pero  con  contadores  (Modelo  Turns2le).   Una  fila  por  hash  func2on.  [CM2005].   h9ps://sites.google.com/site/countminsketch/      
  • 33.
  • 34. 3.  Tecnologías  de  Procesamiento     Distribuido  
  • 35. Propiedades  Deseables  de  un     Sistema  de  Big  Data   1.  Robusto  y  tolerante  a  fallos:  En  un  sistema  en  producción  es   inevitable  que  alguien  cometa  un  fallo  en  algún  momento.   2.  Baja   latencia   de   lectura   y   actualización:   Es   necesario   proporcionar   latencias   bajas   de   lectura   y   actualización   sin   comprometer  la  robustez  del  sistema.   3.  Escalable:  Capacidad  para  mantener  el  rendimiento  a  medida   que  crecen  los  datos  de  entrada.   4.  General:   Un   sistema   debería   soportar   diferentes   2pos   de   aplicaciones.   5.  Extensible:   Permite   añadir   nueva   funcionalidad   con   bajo   coste.   6.  Permi8r  queries  ad-­‐hoc:  Consultas  no  definidas.   7.  Mínimo  mantenimiento   8.  Depurable  
  • 36. Problemas   ¿Como  escalar  algoritmos  en  más  de  un  maquina?    Precisión  (memoria  limitada)    Tolerancia  a  fallos    Escalabilidad  (más  datos  de  entrada)   Herramientas:  Consistent-­‐Hashing  (Dividir  las  claves  X   entre  un  pool  de  maquinas  M)    Proporciona  Balanceo  de  carga    Se  puede  extender  para  proporcionar  tolerancia  a    fallos  
  • 37. Idea:   -­‐Asignar  keys  solo  a  un  conjunto  de  maquinas   -­‐Sobre-­‐replicarlas  para  la  fiabilidad   -­‐Sobre-­‐replicarlas  para  el  paralelismo  de  queries     -­‐Insertar  en  K  maquinas  a  la  vez   -­‐Procesar  pe2ciones  de  K'  <  K  maquinas  a  la  vez   (usar  set  hashing  en  C(x)  con  Cliente  ID)       Consistent  Set  Hashing  
  • 38. Ejemplo  AutoTagging   Auto  clasificador  de  imágenes  @Flickr  
  • 39. Ejemplo  AutoTagging   10.000  mappers   1.000  reducers   Pocos  miles  de  clasificadores  in  6  horas     Mejoras:   -­‐  Actualizar  los  modelos  de  forma  incremental  según  llegan  nuevos   datos     Solución:   -­‐  Batch  processing  con  Hadoop   -­‐  Stream  processing  con  Storm  
  • 41. Arquitectura  Lambda   -­‐  Término  acuñado  por  Nathan  Marz.   -­‐  Descompone  el  problema  de  calcular  funciones  arbitrarias   en  conjuntos  de  datos  arbitrarios  usando  3  capas:  (1)  Capa   Batch,  (2)  Capa  Serving  y  (3)  Capa  Speed.  
  • 42.
  • 43.
  • 44. Storm   Sistema  de  computación  distribuido  para  procesar  streams  de  datos   en  2empo  real  y  tolerante  a  fallos.  h9p://storm.incubator.apache.org/     Tuplas:  Unidad  atómica  de  trabajo   Topology:  Grafo  de  Bolts  y  Spouts   Spouts:  La  fuente  de  datos.  "Emite"  Tuplas.   Bolts:  Pequeños  programas  que  procesan  los  datos.     TopologyBuilder  builder  =  new  TopologyBuilder();   builder.setSpout(“words”,  new  TestWordSpout(),  10);   builder.setBolt(“exclaim1”,  new  Exclama2onBolt(),  3)    .shuffleGrouping(“words”);   Builder.setBolt(“exclaim2”,  new  Exclama2onBolt(),  2)    .shuffleGrouping(“exclaim1”);  
  • 45. Predicción  Churn   Predic2ng   Customer   Churn   in   a   Telecommunica2ons   Network   Environment.  Patent  Pending.  US.  61/985,671  
  • 46. Conclusiones   No  todo  Big  Data  es  Hadoop-­‐ish.     No  siempre  más  datos  es  mejor.  Depende  del  problema.   Cuando  2enes  muchos  datos,  prác2camente  cualquier   patrón  puede  aparece  (signal/noise)     Muy  importante  tener  en  cuenta  la  complejidad  de  los   algoritmos  u2lizados.     Escalar  los  procesos/sistemas  de  forma  inteligente.  (ala   Consistent  Hashing)     La  principal  ventaja  en  los  modelos  predic2vos/ML  suele   venir  por  el  esfuerzo  en  "Feature  Engineering"    
  • 47. ¡Gracias! We  are  Hiring!   fcastanedo@wiseathena.com