Procesamiento por lotes en Apache Flink — PyFlink Parte 2

En el blog anterior, discutimos la arquitectura de Apache Flink, en este, veremos cómo Apache Flink procesa datos por lotes en la práctica.

Empecemos

El procesamiento por lotes es un método popular para analizar y procesar grandes cantidades de datos en una vez. Cuando los datos no son sensibles al tiempo y se pueden procesar en tiempo no real, normalmente se utiliza el procesamiento por lotes.

Apache Flink es un potente marco de procesamiento de flujo de código abierto con capacidades de procesamiento por lotes.

Esta publicación de blog analizará el procesamiento por lotes en Apache Flink.

El procesamiento por lotes es un tipo de procesamiento de datos que implica procesar grandes cantidades de datos a la vez.

Los datos se recopilan durante un período de tiempo determinado y luego se procesan como un lote en procesamiento por lotes.

Después del procesamiento, los datos se guardan o transmiten para su posterior procesamiento.

El procesamiento por lotes es una forma eficiente de procesar grandes cantidades de datos porque se puede completar en un solo paso.

El procesamiento por lotes se utiliza en una variedad de aplicaciones, incluido el procesamiento de pedidos de clientes, la generación de informes mensuales y el análisis de datos del mercado de valores.

El API de conjuntos de datos se utiliza en Apache Flink para el procesamiento por lotes.

El API de conjuntos de datos es una API de alto nivel que proporciona un conjunto de operadores para el procesamiento por lotes de grandes cantidades de datos.

El API de conjuntos de datos proporciona potentes operadores para la transformación, el filtrado, la agrupación y la agregación de datos y admite varias fuentes de datos.

Las etapas involucradas en el procesamiento por lotes con Apache Flink son las siguientes:

Fuente de datos: La elección de la fuente de datos es la etapa inicial en el procesamiento por lotes. Los archivos, las bases de datos y las transmisiones son solo algunas de las numerosas fuentes de datos compatibles con Apache Flink.

Transformación de datos: El siguiente paso es transformar los datos después de identificar la fuente de datos. Mapear, filtrar, unirse y el grupo son solo algunos de los muchos operadores de transformación de datos que ofrece Apache Flink.

Sumidero de datos: Cuando se han cambiado los datos, los datos procesados ​​deben guardarse en un receptor de datos como último paso. Los archivos, las bases de datos y las secuencias son solo algunos de los muchos sumideros de datos que admite Apache Flink.

from pyflink.dataset import ExecutionEnvironment
from pyflink.datastream import StreamExecutionEnvironment
from pyflink.dataset import DataSet
from pyflink.common import Row

# create a Batch Execution Environment
b_env = ExecutionEnvironment.get_execution_environment()

# define a source
input_data = [("apple", 1), ("banana", 2), ("apple", 3), ("banana", 4), ("apple", 5)]
input_ds = b_env.from_collection(input_data)

# apply transformations
result_ds = input_ds
.group_by(0)
.sum(1)

# define a sink
result_ds.print()

# execute the program
b_env.execute()

Explicación

En este ejemplo, primero creamos un entorno de ejecución por lotes utilizando el ExecutionEnvironment clase. Luego definimos una fuente de datos input_ds creando un DataSet a partir de una colección de Python. aplicamos un group_by transformación para agrupar los datos por el primer elemento de la tupla, y luego usar una sum transformación para calcular la suma del segundo elemento de la tupla para cada grupo.

Finalmente, definimos un sumidero llamando al print en el DataSet resultante, que imprime el resultado en la consola. Luego ejecutamos el programa llamando al execute método en el entorno de ejecución por lotes.

El procesamiento por lotes en Apache Flink proporciona varios beneficios, entre ellos:

Escalabilidad: Apache Flink está diseñado para ser altamente escalable, lo que lo hace ideal para procesar grandes volúmenes de datos en un lote.

Tolerancia a fallos: Apache Flink está diseñado para ser tolerante a fallas, lo que significa que puede recuperarse de fallas automáticamente.

Flexibilidad: Apache Flink es un marco versátil para una variedad de aplicaciones, ya que admite una amplia gama de fuentes de datos y sumideros de datos.

Actuación: Debido a que Apache Flink está diseñado para ser muy rápido, es perfecto para el procesamiento por lotes de grandes cantidades de datos.

El procesamiento por lotes en Apache Flink es una técnica poderosa para el procesamiento en tiempo no real de grandes volúmenes de datos.

Apache Flink ofrece una variedad de operadores para la transformación, el filtrado, la agrupación y la agregación de datos, lo que lo hace adecuado para una amplia gama de aplicaciones de procesamiento por lotes.

Además, Apache Flink es altamente escalable, tolerante a fallas, flexible y de alto rendimiento, lo que lo convierte en un marco sólido para el procesamiento de big data.

Profundizaremos en Apache Flink en el próximo blog.

Sígueme para más blogs de este tipo y aplaude si te gusta este blog.

Cómprame un café

[post_relacionado id=»1219″]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio