3. ¿QUÉ ES BIG DATA?
• Diferencia entre el marketing comercial y la necesidad de una realidad Big Data.
• No existe unanimidad en la definición de Big Data pero si un cierto consenso en la fuerza
que suponen los grandes volúmenes de datos y la necesidad de su captura, almacenamiento
y análisis.
• Def. 1: 2011 - Gartner “Big Data excede el alcance de los entornos de hardware de uso
común y herramientas de software para capturar, gestionar y procesar los datos dentro un
tiempo transcurrido tolerable para su población de usuarios”
• Def. 2: 2011 – McKinsey Global Institute: “Big Data se refiere a los conjuntos de datos cuyo
tamaño esta más allá de las capacidades de las herramientas típicas de software de base de
datos para capturar, almacenar, gestionar Y analiza”
@juanjodomenech
4. ¿QUÉ ES BIG DATA?
• Def. 3: IDC “Big Data es una nueva generación de tecnologías, arquitecturas y estrategias
diseñadas para capturar y analizar grandes volúmenes de datos provenientes de múltiples
Fuentes heterogéneas a una alta velocidad con el objeto de extraer valor económico de
ellos”
• Def. 4: Gartner “Big Data son los grandes conjuntos de datos que tiene tres características
principales: volumen(cantidad), velocidad(velocidad de creación y utilización) variedad(tipos
de fuentes de datos no estructurados tales como la interacción social, video, audio, etc.” =>
Grande + diverso = Infraesctructuras TI tradicionales rotas
Conclusión: dependiendo de las características de las empresas primará el volumen,
velocidad o variabilidad. Nos ayudará en la analítica predictiva y descriptiva
@juanjodomenech
9. SECTORES ESTRATÉGICOS
@juanjodomenech
• Sector de la salud de los Estados Unidos
• Administración del sector público de la Unión Europea
• Comercio minorista (retail) a nivel mundial
• Fabricación(manufacturing) a nivel mundial
• Datos de posiciones de personas (geolocalización) a nivel mundial
Representan el 40% del PIB global en 2010
10. OPEN DATA
@juanjodomenech
• Depende del autor Big Data y Open Data estarán relacionados o no tendrán nada
que ver.
• Para mi: cuando un conjunto de datos de diversos tipos son necesarios ser
consultados a una velocidad asumible por el usuario y de gran valor son Big Data.
En el caso de Open Data es el resultado de un Big Data expuestos de forma pública
de forma gratuita o un coste mínimo.
• Ejemplos: http://datos.gob.es/es https://datos.madrid.es/ https://data.gov.uk/
https://www.data.gov/
11. ARQUITECTURA OPEN DATA. EJEMPLO
@juanjodomenech
• Evitar conexiones punto a punto
• Conexión con otras configuraciones
• Tolerante a fallos y siempre actualizado
Posible solución: sistema basado en
mensaje. Apache Kafka
http://kafka.apache.org/intro
12. LA ARQUITECTURA DE BIG DATA
@juanjodomenech
• Se compone de dos grandes categorías: arquitectura y gobierno de la información
(normas, organización, estructuras y roles)
• Debe integrarse con las infraestructuras existentes y coexistir con las acciones del
gobierno de los datos tradicionales
• Primero: definir las diferentes capas de la arquitectura
• Segundo: seleccionar al proveedor que ofrezca la solución mediante las
distribuciones adecuada
16. HERRAMIENTAS. HADOOP
@juanjodomenech
• Apache Hadoop es unabiblioteca open source que soportar el procesamiento distribuido de grandes
conjuntos de datos en cluster. http://hadoop.apache.org/
• Surge de Google y Yahoo y su paradigma MapReduce.
• Incluye 4 módulos:
• Hadoop Common. Las utilidades típicas que soportar a los restantes módulos de Hadoop.
• Hadoop Distributed File System (HDFS). Un sistema de archivos distribuidos que proporciona acceso de alto
rendimiento a datos de aplicaciones.
• Hadoop YARN. Un framework para la planificación de trabajos y la gestión de recursos del cluster.
• Hadoop MapRecuce. Sistema basado en YARN para procesar en paralelo grandes conjuntos de datos.
• Multitud de proyectos relacionados con Hadoop: Avro, Cassandra, Chukwa, Hbase, Hive, Mahout, Pig,
Zookeeper
18. HERRAMIENTAS. DB ENGINE (I)
@juanjodomenech
• NoSQL: SQL sólo puede ser efectivo para grandes volúmenes de datos si son están
estructurados, de lo contrario necesitamos NoSQL (Not Only SQL).
• Tipos:
• Clave-Valor:
- Redis: almacena la estructura en memoria ya sea caché, base de datos o mensajes. https://redis.io/
- Memcached: almacena en memoria de forma distribuida resultados de llamadas a bases d datos,
API o renderizado de páginas http://memcached.org/
- Azure Cosmos DB: (pago) base de datos multimodelo (clave-valor, columnas o grafos), eslacalble y
siempre disponible https://docs.microsoft.com/es-es/azure/cosmos-db/
- Hazelcast: (pago) almacena en memoria, de fomra distribuida y con ejecución en paralelo
https://hazelcast.com
19. HERRAMIENTAS. DB ENGINE (II)
@juanjodomenech
• Columnas:
- Cassandra: escalable, de alta disponibilidad, tolerante a fallos (información se replica de forma
automática), descentralizada, son soporte para HDFS http://cassandra.apache.org/
- Hbase: Hadoop dataase, open source, distribuida y escalable. Big Table de Google.
https://hbase.apache.org/
• Documentos:
- MongoDB: open source, guarda estructura similar al JSON (BSON), facilitando la integración con
ciertas aplicaciones, escalable https://www.mongodb.com/es
- Amazon DynamoDB: (pago) soporta clave-valor, flexible, escalable, dispone de caché (Accelerator)
para reducir tiempos https://aws.amazon.com/es/dynamodb/
- Couchbase: (pago) basada en JSON, alta disponibilidad, datos distrbuidos y cero downtime
https://www.couchbase.com
- CouchBD: implementa el Couch Replication Protocol que permite sincronizar documentos JSON
entre 2 peers sobre http. http://couchdb.apache.org
20. HERRAMIENTAS. DB ENGINE (III)
@juanjodomenech
• Grafos:
- Neo4j: plataforma para el trabajo con grafos https://neo4j.com/
- OrientDB: open source, multimodelo https://orientdb.com/why-orientdb/
- Titan: escalable, distribuida, soporte para Cassandra, Hbase e integración con las plataformas
Spark, Giraph, Hadoop, Solr, Lucene, Elastic Search http://titan.thinkaurelius.com/
• Triplestores/RDF (resource description language) :
- Apache Jena: open source framework en Java para construir aplicaciones de tipo Web
Semántica y Linked Data https://jena.apache.org/
- Virtuoso: https://virtuoso.openlinksw.com/
21. HERRAMIENTAS. DB ENGINE (IV)
@juanjodomenech
• Native XML DBMS (NXD– sistemas de gestión de base de datos cuyo modelo
corresponde a documentos XML pero no necesariamente los almacena como tal,
usando otros formatos para una mejor eficiencia):
- Marklogic: https://www.marklogic.com/
- Oracle Barkeley DB: http://www.oracle.com/technetwork/database/database-
technologies/berkeleydb/overview/index.html
- Virtuoso: https://virtuoso.openlinksw.com/
• Buscadores:
- Lucene: librería open source, escrita en Java enfocada a un alto rendimiento para indexación y
búsqueda https://lucene.apache.org/core/
- Solr: servidor de búsqueda de alto rendimiento construido usando Lucene con XML/HTTP y
JSON/Python/Ruby APIs http://lucene.apache.org/solr/features.html
- ElasticSearch: servidor de búsqueda open source y basado en Lucene https://www.elastic.co/
22. HERRAMIENTAS. DB ENGINE (V)
@juanjodomenech
• SQL en Hadoop:
- Hive: http://hive.apache.org/
- Imapala: https://impala.apache.org/
- Phoenix: https://phoenix.apache.org/
• Time Series DBMS (sistemas de gestión de base de datos optimizados para manejar
datos en el tiempo: cada entrada es asociada con un timestamp. Ej.: IoT alta frecuencia
de envíos):
- InfluxDB: (pago) https://www.influxdata.com/
- RRDtool (round-robin database tool): https://oss.oetiker.ch/rrdtool/
- Graphite: https://graphiteapp.org/
- OpenTSDB: http://opentsdb.net/
23. HERRAMIENTAS. DATA STORE
@juanjodomenech
• Almacenamiento de objetos:
- HDFS
- AWS S3: https://aws.amazon.com/es/s3
- Google Cloud Storage: https://cloud.google.com/storage/?hl=es
24. HERRAMIENTAS. MENSAJERÍA (I)
@juanjodomenech
• Cuando tenemos aplicaciones desacopladas en bloques pequeños e independientes
(para facilitar su desarrollo, implementación y mantenimiento), las colas de
mensajes proporcionan la comunicación y coordinación necesarias para este
entorno distribuido.
• Permiten a las diferentes partes comunicarse y procesar operaciones de forma
asíncrona.
25. HERRAMIENTAS. MENSAJERÍA (II)
@juanjodomenech
• Herramientas:
• Apache Kafka: construida para real-time, escalable, tolerante a fallos
https://kafka.apache.org/
• RabbitMQ: https://www.rabbitmq.com/
• Apache ActiveMQ: http://activemq.apache.org/
• ZeroMQ: http://zeromq.org/
26. HERRAMIENTAS. PROCESAMIENTO Y ANÁLISIS
@juanjodomenech
• Apache Flink: framework para el proceso de flujos de datos distribuidos, con alto
rendimiento y siempre disponible https://flink.apache.org
• Apache Storm: sistema en tiempo real para el análisis, machine learning, computación
continua, etc. http://storm.apache.org/
• Apache Samza: framework para procesar flujos distribuidos. Usa Kafka para los mensajes y
YARN para la tolerancia a fallos, seguridad y gestión de recursos http://samza.apache.org/
• MapReduce: mediante el módulo que proporciona Hadoop http://hadoop.apache.org/
27. HERRAMIENTAS. PROCESAMIENTO Y ANÁLISIS
@juanjodomenech
• Apache Spark: plataforma de computación en clúster diseñado para ser rápido y de
propósito general, extendiendo MapReduce https://spark.apache.org/
• Apache Pig: lenguaje de alto nivel y framework para el análisis d grandes conjuntos
de datos https://pig.apache.org/
• Druid: ofrece almacenamiento y exploración de datos, con foco en la baja latencia,
puede funcionar entre la aplicación y Spark http://druid.io/
28. HERRAMIENTAS. GESTIÓN DE RECURSOS
@juanjodomenech
• YARN: módulo de Hadoop que se caracteriza por ser un sistema operativo distribuido a gran
escala. https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
• Apache Mesos: basado en los principios de Linux, se ejecuta en cada nodo del cluster y
provee aplicaciones (ej. Hadoop, Spark, Kafka, Elasticsearch) con APIs para el manejo de
recursos y planificación de tareas del datacenter http://mesos.apache.org/
• Apache Zookeeper: ofrece una infraestructura centralizada y de servicios que pueden ser
utilizados por aplicaciones para asegurirar de que los procesos a través del clúster sean
serializados o sincronizados https://zookeeper.apache.org/
29. HERRAMIENTAS. SEGURIDAD
@juanjodomenech
• Protección de datos:
- SSL/TLS: cuidado con las versiones antiguas de OpenSSL -> http://heartbleed.com/
- SASL: es un framework para autenticación y autorización en protocolos de Internet
• Autenticación:
- Apache Knox: proporciona un punto de acceso único (SSO) para todas las intereacciones REST y HTTP dentro
con los clusters Hadoop.
- LDAP
- Active Directory
- Kerberos: basado en SSO usa el concepto de tickets
• Autorización:
- Apache Ranger: ofrece un enfoque integral de seguridad en Hadoop. Proporciona una plataforma centralizada
para definir,a dminsitrar y manejar las políticas de seguridad https://ranger.apache.org/
- Apache Sentry: módlulo de autorización basada en roles a nivel granular para Hadoop
https://sentry.apache.org/
35. REFERENCIAS
@juanjodomenech
• Big Data. Análisis de grandes volúmenes de datos en organizaciones. Luis Joyanes Aguilar. Editorial Alfaomega.
• Apache Software Foundation https://projects.apache.org/
• Apache Big Data category: https://projects.apache.org/projects.html?category
• Compute Patterns http://www.computepatterns.com/
• PDF ”Introducción a las bases de datos RDF” http://renzoangles.net/files/libro.pdf
• Amazon Web Services https://aws.amazon.com/
• Google Cloud https://cloud.google.com/
IBM Añade la 4ª V de veracidad
Se expande a 5V de forma generalizada con Valor.
Dentro de la variedad están: estructurados (relacionales), no estructurados (sms, audios, vídeos) y semi-estructurados (logs, xml, json, html).
IBM Añade la 4ª V de veracidad
Se expande a 5V de forma generalizada con Valor.
Dentro de la variedad están: estructurados (relacionales), no estructurados (sms, audios, vídeos) y semi-estructurados (logs, xml, json, html).
Avro – para la serialización de datos
Cassandra - BD NoSQL sin punto de fallos
Chukwa – un sistema de colecciones de datos para la ingestión de grandes sistemas distribuidos
Hbase – BD distribuida y escalable que soporta almacenamiento de datos estrcuturados para tablas grandes
Hive – una infraestructura de almacén de datos que proporciona la lectura, escritura y gestión de datos y las consultas ad-hoc usando SQL
Mahout – una máquina escalable de aprendizaje y una biblioteca de minería de datos
Pig – lenguaje de alto nivel y framework para la computación paralela
Zookeeper - un servicio de coordinación de alto rendimiento para aplicaciones distribuidas