SlideShare a Scribd company logo
1 of 31
Download to read offline
© GMV, 2016 Propiedad de GMV
Todos los derechos reservados
PYTHON Y FLINK
Madrid Python Meetup
Madrid Python Meetup 2016/03/10 Página 2
ÍNDICE INTRODUCCIÓN
APACHE FLINK
EXPERIENCIA PYTHON
CONCLUSIONES
¿QUIÉNES
SOMOS?
GMV
Madrid Python Meetup 2016/03/10 Página 4
UN GRUPO TECNOLÓGICO
GLOBAL
Grupo
multinacional
tecnológico
Fundado en
1984
Capital
privado
Sede principal
en España
(Madrid)
Oficinas en 10 países
Más de 1.100
empleados
Origen
vinculado
al sector
espacial y
defensa
Aeronáutica, Espacio, Defensa,
Seguridad, Sanidad, Transporte,
Banca y finanzas, y Tecnologías de la
Información y la Comunicación
Ingeniería, desarrollo
e integración de
sistemas, software,
hardware, servicios y
productos
especializados
QUIÉNES SOMOS
INTRODUCCIÓN
Madrid Python Meetup 2016/03/10 Página 8
ACLARACIONES
INTRODUCCIÓN
Apache Flink no es un
servidor web ni un jefe indio
No vamos a contar palabras
¿Qué sabéis de Big Data?
Madrid Python Meetup 2016/03/10 Página 9
MADUREZ DEL BIGDATA
¿POR QUÉ APACHE FLINK?
Descartar
Almacenar
Procesar
Streaming
Madrid Python Meetup 2016/03/10 Página 10
ARQUITECTURA TÍPICA
¿POR QUÉ APACHE FLINK?
Data
adquisition
Stream Processing Serving DB
• Es común almacenar también la información en crudo
• La base de la arquitectura suele ser un clúster con HDFS
Madrid Python Meetup 2016/03/10 Página 11
DESPLIEGUE
¿POR QUÉ APACHE FLINK?
W1
W2
W3
W4
Wn
M1
Clúster de HDFS + Flink
K1 K2 Kn
Clúster de Kafka
C3C1 C2
C5C4 C6
Clúster de Cassandra
W5
W6
¿PORQUÉ
APACHE
FLINK?
Madrid Python Meetup 2016/03/10 Página 13
APACHE FLINK
¿POR QUÉ APACHE FLINK?
El core de Flink es un motor
de procesamiento de flujos
de datos en streaming.
Proporciona distribución de los
datos, comunicación y tolerancia
a fallos para realizar
computación distribuida con
streams de datos.
Sobre ese core se han
desarollado dos API y varias
librerías en Scala, Java y Python
Madrid Python Meetup 2016/03/10 Página 14
VENTANAS
FLINK: CARACTERÍSTICAS DIFERENCIADORAS
5 2 6 3 7 5 3 8 2 1 9 4
5 2 6 3 7 5 3 8 2 1 9 4
5 2 6 3 7 5 3 8 2 1 9 4
5 2 6 3 7 5 3 8 2 1 9 4
Ventanas temporales
Ventanas deslizantes
16 23 16
16 21 23 14 16
1s2s
stream.timeWindowAll(Time.seconds(1)).
sum();
stream.timeWindowAll(Time.seconds(1),T
ime.milliseconds(500)).sum();
Madrid Python Meetup 2016/03/10 Página 15
(A,5) (A,6) (A,5) (A,1)
VENTANAS POR CLAVE
FLINK: CARACTERÍSTICAS DIFERENCIADORAS
(A,5) (B,2) (A,6) (C,3) (C,7) (A,5) (B,3) (C,8) (B,2) (A,1) (C,9) (B,4)
Ventanas fijas por clave
1s2s
(B,2) (B,3) (B,2) (B,4)
(C,3) (C,7) (C,8) (C,9)
(A,5) (A,6) (A,5) (A,1)
(B,2) (B,3) (B,2) (B,4)
(C,3) (C,7) (C,8) (C,9)
(A,11)(B,2)(C,3) (A,5)(B,3)(C,15) (A,1)(B,6)(C,9)
(A,11)(B,5) (C,10) (A,6) (C,17) (B,6)
Ventanas por número de elementos
stream.keyBy(0).timeWindow
(Time.seconds(1)).sum(1)
stream.keyBy(0).countWindow(
2).sum(1)
Madrid Python Meetup 2016/03/10 Página 16
TRIGGERS Y EVICTORS
DATASTREAM API
5 2 9 9 7 0 3 8 2 A 9 4
20 18
Pueden cancelar el procesado de los
elementos de una ventana
Permiten adelantar el procesado de una
ventana
5 2 9 9 7 -1 3 8 2 1 9 4
25 18 16
Podemos controlar los elementos que
llegan de las ventanas antes de
evaluarlos
Triggers
Evictors
7 3 8
Madrid Python Meetup 2016/03/10 Página 17
EL TIEMPO ES IMPORTANTE
DATASTREAM API
¿Qué tiempo utilizar para construir las ventanas?
El momento en el que se
generó el evento
El momento en que se
recibe el evento
El momento en que se
procesa el evento
Flink maneja relojes diferentes para cada
uno de ellos
Madrid Python Meetup 2016/03/10 Página 18
RENDIMIENTO
COMPARATIVA
• Lo deseable es mantener un alto caudal con una latencia baja
• Flink permite ajustar los tamaños de los buffers internos para
aumentar el caudal a costa de aumentar la latencia y
viceversa.
Madrid Python Meetup 2016/03/10 Página 19
FUNCIONALIDADES
COMPARATIVA
Streaming “true” mini batches “true”
API low-level high-level high-level
Fault tolerance tuple-level ACKs RDD-based (lineage) coarse checkpointing
State not built-in external internal
Exactly once at least once exactly once exactly once
Windowing not built-in restricted flexible
Latency low medium low
Throughput medium high high
EXPERIENCIA
CONPYTHON
Madrid Python Meetup 2016/03/10 Página 21
SEGÚN LA DOCUMENTACIÓN
EXPERIENCIA CON PYTHON
La mayoría de las API no están
disponibles.
¡¡No está disponible la API
para Streams!!
El API para procesado en batch
tiene todas las operaciones
(alguna más que en scala)
Los conectores de E/S son
muchos menos y con menos
opciones
Madrid Python Meetup 2016/03/10 Página 22
PRUEBA BÁSICA
EXPERIENCIA CON PYTHON
class Adder(GroupReduceFunction):
def reduce(self, iterator, collector):
count, event = iterator.next()
count += sum([x[0] for x in iterator])
collector.collect((event, count))
if __name__ == "__main__":
output_file = 'out.txt'
env = get_environment()
data =
env.read_csv("/home/jordi/Development/python-
flink/final-dataset.csv",
(INT, STRING, STRING, STRING, STRING, STRING,
STRING, STRING, BOOL, BOOL, INT, INT, INT, INT,
STRING, INT, INT, STRING, STRING, FLOAT, FLOAT,
STRING))
data 
.map(lambda x: (1, x[5])) 
.group_by(1) 
.reduce_group(Adder()) 
.map(lambda x: 'Event: %s. Freq: %s' % (x[0],x[1]))
.write_text(output_file,write_mode=WriteMode.OVERWRITE)
env.execute(local=True)
El rendimiento es más bajo que el
mismo programa en scala.
Levanta un intérprete Python que
envía el código al core de Flink
Madrid Python Meetup 2016/03/10 Página 23
POCA ACIVIDAD
EXPERIENCIA CON PYTHON
El último commit de la parte de Python fue hace varios meses:
En proporción, hay muy poco código Python:
Madrid Python Meetup 2016/03/10 Página 24
CONCLUSIONES
EXPERIENCIA CON PYTHON
www.gmv.es
www.facebook.com/infoGMV
@infoGMV_es
www.linkedin.com/company/gmv
GRACIAS
José Carlos Baquero (jcbaquero@gmv.com)
Pablo González (pagonzalez@gmv.com)
Jordi Redondo (jredondo@gmv.com)
BACKUP
SLIDES
GMV
Madrid Python Meetup 2016/03/10 Página 51
TERASORT
PERFORMANCE
Terasort es una prueba para medir el rendimiento de tecnologías
BigData. Se trata de ordenar 1 Tb de datos (o más) en el menor
tiempo posible
http://eastcirclek.blogspot.com.es/2015/06/terasort-for-spark-and-flink-with-range.html
Madrid Python Meetup 2016/03/10 Página 52
TERASORT
PERFORMANCE
http://eastcirclek.blogspot.com.es/2015/06/terasort-for-spark-and-flink-with-range.html
Madrid Python Meetup 2016/03/10 Página 53
STREAMING - YAHOO
PERFORMANCE
https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at
The job of the benchmark is to read various JSON events from Kafka, identify the
relevant events, and store a windowed count of relevant events per campaign
into Redis.
Madrid Python Meetup 2016/03/10 Página 54
STREAMING - YAHOO
PERFORMANCE
https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at
Madrid Python Meetup 2016/03/10 Página 55
STREAMING - YAHOO
PERFORMANCE
https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at
Madrid Python Meetup 2016/03/10 Página 56
CONSTRUCCIÓN DE VENTANAS
VENTANAS
http://data-artisans.com/how-apache-flink-enables-new-streaming-applications-part-1/
Madrid Python Meetup 2016/03/10 Página 57
CONSTRUCCIÓN DE VENTANAS
VENTANAS

More Related Content

What's hot

Exposición Python
Exposición PythonExposición Python
Exposición Pythondavidare
 
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]RootedCON
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Alberto Sanz Herrero
 

What's hot (6)

Exposición Python
Exposición PythonExposición Python
Exposición Python
 
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]
Pablo González - Jugando a lo Super Mario entre túneles y máquinas [rooted2018]
 
Interbloqueos salcedo carrero.doc
Interbloqueos salcedo carrero.docInterbloqueos salcedo carrero.doc
Interbloqueos salcedo carrero.doc
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
 
Ejercicios propuestos 10
Ejercicios propuestos 10Ejercicios propuestos 10
Ejercicios propuestos 10
 

Viewers also liked

¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...Jerry Chou
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOParadigma Digital
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsParadigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for DevelopersParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
How to integrate python into a scala stack
How to integrate python into a scala stackHow to integrate python into a scala stack
How to integrate python into a scala stackFliptop
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 
Communication between Java and Python
Communication between Java and PythonCommunication between Java and Python
Communication between Java and PythonAndreas Schreiber
 

Viewers also liked (20)

Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Kafka y python
Kafka y pythonKafka y python
Kafka y python
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEO
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projects
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
How to integrate python into a scala stack
How to integrate python into a scala stackHow to integrate python into a scala stack
How to integrate python into a scala stack
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Communication between Java and Python
Communication between Java and PythonCommunication between Java and Python
Communication between Java and Python
 
Python to scala
Python to scalaPython to scala
Python to scala
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
 

Similar to Python Flink Streaming

Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RFrancisco Palm
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Abel Alejandro Coronado Iruegas
 
Real-Time y Big Data: descubre el poder de tus datos
Real-Time y Big Data: descubre el poder de tus datosReal-Time y Big Data: descubre el poder de tus datos
Real-Time y Big Data: descubre el poder de tus datosEsri España
 
Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)jjimenezlopez
 
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...cricc
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Abel Alejandro Coronado Iruegas
 
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014Stratio
 
Primeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid MeetupPrimeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid Meetupdhiguero
 
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Daniel González Cerviño
 
Aula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftAula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftJulián Santiago Bruno
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de phpJulio Pari
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanishAjay Ohri
 
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...LibreCon
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 

Similar to Python Flink Streaming (20)

Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
 
Cloud Computing y MapReduce
Cloud Computing y MapReduceCloud Computing y MapReduce
Cloud Computing y MapReduce
 
Presentacion scraping
Presentacion scrapingPresentacion scraping
Presentacion scraping
 
Real-Time y Big Data: descubre el poder de tus datos
Real-Time y Big Data: descubre el poder de tus datosReal-Time y Big Data: descubre el poder de tus datos
Real-Time y Big Data: descubre el poder de tus datos
 
Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)Python vs Java (NotBarraLibreCamp)
Python vs Java (NotBarraLibreCamp)
 
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...
Mariluz Congosto (2019). Social network analysis: una herramienta para desenm...
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
 
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
 
Primeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid MeetupPrimeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid Meetup
 
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
 
Aula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de MicrosoftAula Virtual utilizando utilizando Conference XP de Microsoft
Aula Virtual utilizando utilizando Conference XP de Microsoft
 
Construyendo un proyecto_de_iot
Construyendo un proyecto_de_iotConstruyendo un proyecto_de_iot
Construyendo un proyecto_de_iot
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de php
 
Rackio framework
Rackio frameworkRackio framework
Rackio framework
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanish
 
[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)
[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)
[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)
 
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...
Inteligencia del dato aplicada al negocio de las telecomunicaciones - LibreCo...
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 

More from Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 

More from Paradigma Digital (14)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
Seminario Apache Solr
Seminario Apache SolrSeminario Apache Solr
Seminario Apache Solr
 

Recently uploaded

FORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOFORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOsecundariatecnica891
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxYoladsCabarcasTous
 
Países por velocidad de sus misiles hipersónicos (2024).pdf
Países por velocidad de sus misiles hipersónicos  (2024).pdfPaíses por velocidad de sus misiles hipersónicos  (2024).pdf
Países por velocidad de sus misiles hipersónicos (2024).pdfJC Díaz Herrera
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILeluniversocom
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería yocelynsanchezerasmo
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiatongailustraconcienc
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptxSergiothaine2
 
Mapa de riesgos de un cine, equipo 4.pdf
Mapa de riesgos de un cine, equipo 4.pdfMapa de riesgos de un cine, equipo 4.pdf
Mapa de riesgos de un cine, equipo 4.pdfhees071224mmcrpna1
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotessald071205mmcnrna9
 
stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino moraYessicaBrigithArdila
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptxccordovato
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOReluniversocom
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docxmarthaarroyo16
 
Las familias más ricas dentro del sionismo (2024).pdf
Las familias más ricas dentro del sionismo (2024).pdfLas familias más ricas dentro del sionismo (2024).pdf
Las familias más ricas dentro del sionismo (2024).pdfJC Díaz Herrera
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024eluniversocom
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoSantiagoRodriguezLoz
 
El guion museográfico. definición. componentes. parte 1.pptx
El guion museográfico. definición. componentes. parte 1.pptxEl guion museográfico. definición. componentes. parte 1.pptx
El guion museográfico. definición. componentes. parte 1.pptxAngelaMarquez27
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 

Recently uploaded (20)

FORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOFORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASO
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptx
 
Países por velocidad de sus misiles hipersónicos (2024).pdf
Países por velocidad de sus misiles hipersónicos  (2024).pdfPaíses por velocidad de sus misiles hipersónicos  (2024).pdf
Países por velocidad de sus misiles hipersónicos (2024).pdf
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologia
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptx
 
Mapa de riesgos de un cine, equipo 4.pdf
Mapa de riesgos de un cine, equipo 4.pdfMapa de riesgos de un cine, equipo 4.pdf
Mapa de riesgos de un cine, equipo 4.pdf
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotes
 
stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino mora
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
 
Las familias más ricas dentro del sionismo (2024).pdf
Las familias más ricas dentro del sionismo (2024).pdfLas familias más ricas dentro del sionismo (2024).pdf
Las familias más ricas dentro del sionismo (2024).pdf
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
 
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
 
El guion museográfico. definición. componentes. parte 1.pptx
El guion museográfico. definición. componentes. parte 1.pptxEl guion museográfico. definición. componentes. parte 1.pptx
El guion museográfico. definición. componentes. parte 1.pptx
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 

Python Flink Streaming

  • 1. © GMV, 2016 Propiedad de GMV Todos los derechos reservados PYTHON Y FLINK Madrid Python Meetup
  • 2. Madrid Python Meetup 2016/03/10 Página 2 ÍNDICE INTRODUCCIÓN APACHE FLINK EXPERIENCIA PYTHON CONCLUSIONES
  • 4. Madrid Python Meetup 2016/03/10 Página 4 UN GRUPO TECNOLÓGICO GLOBAL Grupo multinacional tecnológico Fundado en 1984 Capital privado Sede principal en España (Madrid) Oficinas en 10 países Más de 1.100 empleados Origen vinculado al sector espacial y defensa Aeronáutica, Espacio, Defensa, Seguridad, Sanidad, Transporte, Banca y finanzas, y Tecnologías de la Información y la Comunicación Ingeniería, desarrollo e integración de sistemas, software, hardware, servicios y productos especializados QUIÉNES SOMOS
  • 6. Madrid Python Meetup 2016/03/10 Página 8 ACLARACIONES INTRODUCCIÓN Apache Flink no es un servidor web ni un jefe indio No vamos a contar palabras ¿Qué sabéis de Big Data?
  • 7. Madrid Python Meetup 2016/03/10 Página 9 MADUREZ DEL BIGDATA ¿POR QUÉ APACHE FLINK? Descartar Almacenar Procesar Streaming
  • 8. Madrid Python Meetup 2016/03/10 Página 10 ARQUITECTURA TÍPICA ¿POR QUÉ APACHE FLINK? Data adquisition Stream Processing Serving DB • Es común almacenar también la información en crudo • La base de la arquitectura suele ser un clúster con HDFS
  • 9. Madrid Python Meetup 2016/03/10 Página 11 DESPLIEGUE ¿POR QUÉ APACHE FLINK? W1 W2 W3 W4 Wn M1 Clúster de HDFS + Flink K1 K2 Kn Clúster de Kafka C3C1 C2 C5C4 C6 Clúster de Cassandra W5 W6
  • 11. Madrid Python Meetup 2016/03/10 Página 13 APACHE FLINK ¿POR QUÉ APACHE FLINK? El core de Flink es un motor de procesamiento de flujos de datos en streaming. Proporciona distribución de los datos, comunicación y tolerancia a fallos para realizar computación distribuida con streams de datos. Sobre ese core se han desarollado dos API y varias librerías en Scala, Java y Python
  • 12. Madrid Python Meetup 2016/03/10 Página 14 VENTANAS FLINK: CARACTERÍSTICAS DIFERENCIADORAS 5 2 6 3 7 5 3 8 2 1 9 4 5 2 6 3 7 5 3 8 2 1 9 4 5 2 6 3 7 5 3 8 2 1 9 4 5 2 6 3 7 5 3 8 2 1 9 4 Ventanas temporales Ventanas deslizantes 16 23 16 16 21 23 14 16 1s2s stream.timeWindowAll(Time.seconds(1)). sum(); stream.timeWindowAll(Time.seconds(1),T ime.milliseconds(500)).sum();
  • 13. Madrid Python Meetup 2016/03/10 Página 15 (A,5) (A,6) (A,5) (A,1) VENTANAS POR CLAVE FLINK: CARACTERÍSTICAS DIFERENCIADORAS (A,5) (B,2) (A,6) (C,3) (C,7) (A,5) (B,3) (C,8) (B,2) (A,1) (C,9) (B,4) Ventanas fijas por clave 1s2s (B,2) (B,3) (B,2) (B,4) (C,3) (C,7) (C,8) (C,9) (A,5) (A,6) (A,5) (A,1) (B,2) (B,3) (B,2) (B,4) (C,3) (C,7) (C,8) (C,9) (A,11)(B,2)(C,3) (A,5)(B,3)(C,15) (A,1)(B,6)(C,9) (A,11)(B,5) (C,10) (A,6) (C,17) (B,6) Ventanas por número de elementos stream.keyBy(0).timeWindow (Time.seconds(1)).sum(1) stream.keyBy(0).countWindow( 2).sum(1)
  • 14. Madrid Python Meetup 2016/03/10 Página 16 TRIGGERS Y EVICTORS DATASTREAM API 5 2 9 9 7 0 3 8 2 A 9 4 20 18 Pueden cancelar el procesado de los elementos de una ventana Permiten adelantar el procesado de una ventana 5 2 9 9 7 -1 3 8 2 1 9 4 25 18 16 Podemos controlar los elementos que llegan de las ventanas antes de evaluarlos Triggers Evictors 7 3 8
  • 15. Madrid Python Meetup 2016/03/10 Página 17 EL TIEMPO ES IMPORTANTE DATASTREAM API ¿Qué tiempo utilizar para construir las ventanas? El momento en el que se generó el evento El momento en que se recibe el evento El momento en que se procesa el evento Flink maneja relojes diferentes para cada uno de ellos
  • 16. Madrid Python Meetup 2016/03/10 Página 18 RENDIMIENTO COMPARATIVA • Lo deseable es mantener un alto caudal con una latencia baja • Flink permite ajustar los tamaños de los buffers internos para aumentar el caudal a costa de aumentar la latencia y viceversa.
  • 17. Madrid Python Meetup 2016/03/10 Página 19 FUNCIONALIDADES COMPARATIVA Streaming “true” mini batches “true” API low-level high-level high-level Fault tolerance tuple-level ACKs RDD-based (lineage) coarse checkpointing State not built-in external internal Exactly once at least once exactly once exactly once Windowing not built-in restricted flexible Latency low medium low Throughput medium high high
  • 19. Madrid Python Meetup 2016/03/10 Página 21 SEGÚN LA DOCUMENTACIÓN EXPERIENCIA CON PYTHON La mayoría de las API no están disponibles. ¡¡No está disponible la API para Streams!! El API para procesado en batch tiene todas las operaciones (alguna más que en scala) Los conectores de E/S son muchos menos y con menos opciones
  • 20. Madrid Python Meetup 2016/03/10 Página 22 PRUEBA BÁSICA EXPERIENCIA CON PYTHON class Adder(GroupReduceFunction): def reduce(self, iterator, collector): count, event = iterator.next() count += sum([x[0] for x in iterator]) collector.collect((event, count)) if __name__ == "__main__": output_file = 'out.txt' env = get_environment() data = env.read_csv("/home/jordi/Development/python- flink/final-dataset.csv", (INT, STRING, STRING, STRING, STRING, STRING, STRING, STRING, BOOL, BOOL, INT, INT, INT, INT, STRING, INT, INT, STRING, STRING, FLOAT, FLOAT, STRING)) data .map(lambda x: (1, x[5])) .group_by(1) .reduce_group(Adder()) .map(lambda x: 'Event: %s. Freq: %s' % (x[0],x[1])) .write_text(output_file,write_mode=WriteMode.OVERWRITE) env.execute(local=True) El rendimiento es más bajo que el mismo programa en scala. Levanta un intérprete Python que envía el código al core de Flink
  • 21. Madrid Python Meetup 2016/03/10 Página 23 POCA ACIVIDAD EXPERIENCIA CON PYTHON El último commit de la parte de Python fue hace varios meses: En proporción, hay muy poco código Python:
  • 22. Madrid Python Meetup 2016/03/10 Página 24 CONCLUSIONES EXPERIENCIA CON PYTHON
  • 23. www.gmv.es www.facebook.com/infoGMV @infoGMV_es www.linkedin.com/company/gmv GRACIAS José Carlos Baquero (jcbaquero@gmv.com) Pablo González (pagonzalez@gmv.com) Jordi Redondo (jredondo@gmv.com)
  • 25. Madrid Python Meetup 2016/03/10 Página 51 TERASORT PERFORMANCE Terasort es una prueba para medir el rendimiento de tecnologías BigData. Se trata de ordenar 1 Tb de datos (o más) en el menor tiempo posible http://eastcirclek.blogspot.com.es/2015/06/terasort-for-spark-and-flink-with-range.html
  • 26. Madrid Python Meetup 2016/03/10 Página 52 TERASORT PERFORMANCE http://eastcirclek.blogspot.com.es/2015/06/terasort-for-spark-and-flink-with-range.html
  • 27. Madrid Python Meetup 2016/03/10 Página 53 STREAMING - YAHOO PERFORMANCE https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at The job of the benchmark is to read various JSON events from Kafka, identify the relevant events, and store a windowed count of relevant events per campaign into Redis.
  • 28. Madrid Python Meetup 2016/03/10 Página 54 STREAMING - YAHOO PERFORMANCE https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at
  • 29. Madrid Python Meetup 2016/03/10 Página 55 STREAMING - YAHOO PERFORMANCE https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at
  • 30. Madrid Python Meetup 2016/03/10 Página 56 CONSTRUCCIÓN DE VENTANAS VENTANAS http://data-artisans.com/how-apache-flink-enables-new-streaming-applications-part-1/
  • 31. Madrid Python Meetup 2016/03/10 Página 57 CONSTRUCCIÓN DE VENTANAS VENTANAS