Upgrade to Pro — share decks privately, control downloads, hide ads and more …

El mundo Big Data y las APIs

El mundo Big Data y las APIs

Charla impartida por Marco Antonio Sanz Molina Prados, Fundador de CloudAppi, que repasa las tecnologías más habituales del mundo Big Data y su aplicación en el desarrollo de las Apis.

En la ponencia se tratan os siguientes puntos:
• Arquitectura Lambda
• Arquitectura de APIs
• Bases de datos noSQL
• Datawarehouses Big Data
• Ejemplos de arquitecturas

Big Data Spain

May 29, 2015
Tweet

More Decks by Big Data Spain

Other Decks in Technology

Transcript

  1. Índice ❏ ¿Quienes somos? ❏ ¿Por qué unir Big Data

    y las Apis? ❏ ¿Qué es Big Data? ❏ Las 4 Vs ❏ Bases de datos noSQL ❏ Datawarehouses Big Data ❏ Arquitectura Lambda ❏ Arquitectura de Apis ❏ Ejemplos ❏ Mashups
  2. ¿Quienes somos? Grupo de meetup http://www.meetup.com/API-Addicts/ Meetups realizados ❏ MADA.

    Metodología ágil de definición de APIs ❏ Taller de definición de APIs ❏ Desarrolla tu primera API ❏ Seguridad en las APIs ❏ Las Apis como modelo de negocio ❏ El Mundo Cloud y las APis Marco Antonio Sanz:http://es.linkedin.com/pub/marco-antonio-sanz-molina-prados/18/335/97/
  3. Patrocinadores www.cloudappi.net ¿qué nos ofrece? ➢ know - how de

    apis ➢ ejemplos de arquitecturas PRÓXIMAMENTE
  4. ➢ Del internet de las cosas... ¿Cómo se van a

    conectar? Internet de las APIs ¿Por qué unir Big Data y las Apis?
  5. ¿Qué se hacía antes del Big Data? ¿Qué es Big

    Data? ➢ Clusters ➢ Optimización de servidores de aplicaciones (cacheo, …) ➢ Optimización de servidores de base de datos (vistas, vistas materializadas..) ➢ Data Warehouses (OBI, Mondrian…) ➢ ETLs (OBI, Kettle…)
  6. ¿Qué es Big Data? ¿Qué es Big Data? ➢ Conjunto

    de tecnologías que permiten la acumulación masiva de datos.
  7. CAP • Consistencia fuerte (la C en ACID y CAP).

    • Disponibilidad o Availability (la A de CAP pero no en ACID). • Tolerancia a fallos (la P en CAP, en inglés Partition Tolerance). Bases de datos noSQL https://eamodeorubio.wordpress.com/2010/05/17/nosql-2-no-necesitas-acid/
  8. Llave / Valor Bases de datos noSQL La arquitectura Llave/Valor

    consta en una llave como “Colonia” que se asocia con un valor “Centro”. Estas estructuras pueden ser utilizadas como colecciones, diccionarios, arreglos asociados o caches. Las búsquedas realizadas en este tipo de estructuras son rápidas ya que funcionan bajo el concepto de tablas hash. Considerando la ausencia de índices, este tipo de estructuras no son útiles para realizar operaciones complejas con los datos, solo soportan sentencias simples de creación, lectura, actualización y eliminación.
  9. Llave / Valor - Cassandra Bases de datos noSQL Apache

    Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su plataforma. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P con lo que la redundancia es máxima. Cassandra está desarrollada por Apache Software Foundation.
  10. Llave / Valor - Redis Bases de datos noSQL Redis

    es Open Source, con licencia BSD, que permite el almacenamiento clave valor tanto en memoria como en disco. Las claves pueden contener texto, hashes, listas, conjuntos, bitmaps o hyperlogs. Permite suscribirse a la información, por lo que n clientes pueden recibir la información al momento.
  11. Orientadas a Documentos Bases de datos noSQL La arquitectura basada

    en documentos utiliza una estructura compleja de datos denominada documento para almacenar los campos de cada registro. Se pueden generar arreglos de registros o anidamientos de documentos. Estas estructuras de datos son del tipo JavaScript Object Notation (JSON), XML o BSON o del tipo binario como PDF
  12. MongoDB Bases de datos noSQL Sistema de base de datosNoSQL

    orientado a documentos, desarrollado bajo el concepto de código abierto. MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida. Posee algunas características de las bases de datos tradicionales, como transaccionalidad a nivel de documento, índices… Además, permite un escalamiento horizontal.
  13. Columnar Bases de datos noSQL El modelo de columnar utiliza

    el esquema de llave/valor para almacenar la información pero introduce un patrón de jerarquías y un semi-esquema para ordenar y almacena los datos, generando las columnas por la que es llamada esta arquitectura. Las filas contenidas en esta base de datos pueden variar, es decir pueden contener un número diferente de campos ya que es una propiedad de los registros llave/valor. Las tablas de estas bases de datos deben ser declaradas, lo cual amarra a este tipo de bases a la presencia de esquemas definidos para trabajar los datos.
  14. Columnar - DynamoDB Bases de datos noSQL Amazon DynamoDB es

    un servicio de base de datos NoSQL rápido y flexible para todas las aplicaciones que requiren latencias de milisegundos de un solo dígito constantes a cualquier escala. Se trata de una base de datos totalmente gestionada compatible con modelos de datos de valor de clave y de documentos. Su modelo de datos flexible y su rendimiento fiable la convierten en una herramienta ideal para móviles, web, juegos, tecnología publicitaria, Internet de las cosas (IoT) y muchas otras aplicaciones.
  15. Grafos Bases de datos noSQL Las bases de datos de

    grafos reconocen entidades en un negocio o dominio, y explícitamente siguen las relaciones entre estas. Las entidades reciben el nombre de nodos y las relaciones el nombre de aristas. Nuevas aristas pueden ser agregadas en cualquier momento, permitiendo relaciones uno a muchos o muchos a muchos de una manera sencilla, evitando el uso de tablas intermedias para la representación de esta unión, como será en el caso en una base de datos relacional. Estas bases de datos se enfocan más en las relaciones de los datos, más que en las características de sus valores.
  16. Grafos - neo4j Bases de datos noSQL Neo4j es altamente

    escalable, robusta base de datos orientada a grafos (full ACID) . Es utilizada por miles de startups, compañías y gobiernos. Sus características principales son las siguiente: ➢ Alto rendimiento para datos altamente conectados. ➢ Alta disponibilidad en Clúster. ➢ Cypher, un lenguaje de queries para grafos. ➢ ETL, fácil importar a través de un CSV ➢ Backups en caliente y monitorización avanzada.
  17. Big Query ➢ Big Query permite que los datos puedan

    ser consumidos y utilizados utilizando SQL - like queries que utilizan la infraestructura de Google para realizar computación paralela. DWS Big Data https://cloud.google.com/bigquery/what-is-bigquery
  18. Amazon Redshift ➢ Amazon Redshift es una solución rápida y

    totalmente gestionada de almacén de datos a escala de petabytes que permite analizar todos los datos empleando de forma sencilla y rentable las herramientas de inteligencia empresarial de que ya disponga. DWS Big Data http://aws.amazon.com/es/redshift/
  19. Hadoop ➢ Es una framework que permite la computación de

    dataset con gran cantidad de datos usando modelos de programación simple. ➢ Está diseñado para escalar hasta ciento de máquinas. ➢ La arquitectura está diseñada para detectar y manejar fallos en la capa de aplicación. Procesando los datos http://hadoop.apache.org/
  20. AWS Elastic Map Reduce ➢ Es un web service que

    hace más fácil el proceso de ingentes cantidades de datos. Amazon EMR usas Hadoop, para distribuir los datos a través del clúster formado por Amazon EC2. ➢ También puede ejecutar otros frameworks como Spark y Presto. Procesando batch http://aws.amazon.com/elasticmapreduce/
  21. Storm Es una tecnología open source que permite el procesamiento

    en tiempo real de datos. El funcionamiento es simple, va procesando millones de tuplas por segundo, en una arquitectura escalable, orientada a fallos que garantiza que tus datos van a ser procesados Procesamiento online https://storm.apache.org/
  22. Descripción Es un conjunto de principios para una arquitectura de

    sistemas Big Data en Tiempo Real. Tres capas: ❏ Batch layer ❏ Serving layer ❏ Speed layer Arquitectura Lambda https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en- tiempo-real/
  23. Batch Layer Almacena en HDFS el dataset maestro que es

    inmutable y constantemente crece Crear vistas arbitrarias desde este dataset vía MapReduce (Hive, Pig,…). Arquitectura Lambda https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en- tiempo-real/
  24. Serving Layer Se encarga de indexar y exponer las vistas

    para que puedan ser consultadas. Como las Vistas Batch son estáticas esta Capa sólo necesita proveer lecturas y para eso puede usar Impala, Stinger,… Arquitectura Lambda https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en- tiempo-real/
  25. Speed Layer Computa Vistas cuando llegan los datos. Esta Capa

    sirve para compensar la alta latencia de la Capa Batch generando vistas en tiempo real usando pj Storm Arquitectura Lambda https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en- tiempo-real/
  26. Al desarrollar una API ➢ Selección de la base de

    datos noSQL según el teorema CAP. Pueden coexistir bases de datos noSQL con SQL. ➢ Utilizar el mundo cloud como base. ➢ Utilizar las tecnologías que mejor se ajusten a tu negocio (tener en cuenta arquitectura Lambda). ➢ Usar formato ligeros de datos (por ejemplo, peticiones rest). ➢ No utilizar sesión en las peticiones. ➢ Al invocar servicios de terceros se deben realizar siempre de forma asíncrona Arquitectura de Apis
  27. Ejemplos: Twitter Arquitectura de Apis ➢ Red social que permite

    dejar mensajes de 140 caracteres. source:http://www.slideshare.net/raffikrikorian/qcon-nyc-2012-twitters-real-time-architecture
  28. Ejemplos: QuickBlox Arquitectura de Apis ➢ Es una solución PaaS

    diseñada para simplificar el desarrollo de aplicaciones móviles.
  29. Ejemplos: Linkedin Arquitectura de Apis ➢ Obtener distancia entre usuarios

    Source: https://engineering.linkedin.com/real-time-distributed-graph/using-set-cover-algorithm-optimize-query-latency-large-scale-distributed
  30. ¿qué son? ➢ Aplicación web que usa contenido de más

    de una fuente y que generalmente ➢ Su principal característica es combinación, visualización y agregación source: http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29 Mashups
  31. Directorios de Apis source: https://developers.bbva.com/ ➢ Directorio de Apis Públicas

    ◦ ProgramableWeb ◦ apis.io ◦ http://api500.com/ (api rating agency) ◦ Google :-) Mashups