El mundo Big Data y las APIs

45
El mundo Big Data y las APIs Marco Antonio Sanz

Transcript of El mundo Big Data y las APIs

El mundo Big Data y las APIs

Marco Antonio Sanz

Í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

¿Quienes somos?

Grupo de meetuphttp://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/

Patrocinadores

www.cloudappi.net¿qué nos ofrece?➢ know - how de apis➢ ejemplos de arquitecturas

PRÓXIMAMENTE

➢ Del internet de las cosas...

¿Cómo se van a conectar?

Internet de las APIs

¿Por qué unir Big Data y las Apis?

¿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…)

¿Qué es Big Data?

¿Qué es Big Data?

➢ Conjunto de tecnologías que permiten la acumulación masiva de datos.

Convirtiendo Big Data en Valor

The Four V’s

http://www.slideshare.net/BernardMarr/140228-big-data-slide-share

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/

Arquitecturas

Bases de datos noSQL

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.

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.

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.

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

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.

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.

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.

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.

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.

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

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/

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/

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/

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/

Storm

Procesamiento online

https://storm.apache.org/

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/

Batch Layer

Almacena en HDFS el dataset maestro que es inmutable y constantemente creceCrear 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/

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/

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/

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

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

Ejemplos: Twitter

Arquitectura de Apis

Ejemplos: NetFlix

Arquitectura de Apis

➢ Empresa que proporciona contenidos digitales

➢ Cerró su API en Marzo 2013

Ejemplos: NetFlix

Arquitectura de Apis

Ejemplos: QuickBlox

Arquitectura de Apis

➢ Es una solución PaaS diseñada para simplificar el desarrollo de aplicaciones móviles.

Ejemplos: QuickBlox

Arquitectura de Apis

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

¿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

Directorios de Apis

source: https://developers.bbva.com/

➢ Directorio de Apis Públicas○ ProgramableWeb○ apis.io○ http://api500.com/ (api rating

agency)○ Google :-)

Mashups

Principales categorías de Apis

source: http://www.slideshare.net/fullscreen/programmableweb/fastest-growing-web-api-categories-last-6-months/2

Mashups

Ruegos y preguntas

Contacta en:

Email: [email protected]

Web:

http://www.meetup.com/APIAddicts

Siguenos en:

Linkedin:ApiAddicts

Twitter: @apiaddicts

Facebook: APIAddicts

Meetup: APIAddicts

Contacta