Aprende qué es una Pipeline de Datos

Última actualización: 29/07/2023

Crear nuestras propias pipelines de datos es más sencillo que nunca. En esta entrada exploraremos los conceptos básicos y aprenderemos qué es una pipeline de datos y cómo implementarla. ¡No te lo pierdas!

Pipelines de Datos

¿Qué es una Pipeline de Datos?

Una pipeline de datos es una construcción lógica que representa un proceso dividido en fases. Las pipelines de datos se caracterizan por definir el conjunto de pasos o fases y las tecnologías involucradas en un proceso de movimiento o procesamiento de datos.

Las pipelines de datos son necesarias ya que no debemos analizar los datos en los mismos sistemas donde se crean. El proceso de analítica es costoso computacionalmente, por lo que se separa para evitar perjudicar el rendimiento del servicio. De esta forma, tenemos sistemas OLTP, encargados de capturar y crear datos, y sistemas OLAP, encargados de analizar los datos.

Por ejemplo, un sistema OLTP puede ser un CRM, mientras que un sistema OLAP será un Data Warehouse.

Los movimientos de datos entre estos sistemas forman pipelines de datos y son procesos que no debemos obviar, y que involucran varias fases, estrategias y metodologías.

Ejemplo de Pipeline de Datos

Como ejemplo, podemos pensar en las APIs de ingesta para obtener los datos. Esta API es el punto de partida, y podría enviar los datos a un topic de Apache Kafka. Kafka actúa aquí como un buffer para el siguiente paso.

Después, una tecnología de procesamiento, que puede ser streaming o batch, leerá los datos de nuestro buffer. Por ejemplo, Apache Spark realizará analítica sobre estos datos.

Por último, la pipeline termina con el resultado almacenado de forma persistente en una base de datos como HBase o en un sistema de ficheros distribuido como HDFS.

Una vez que nuestros datos están persistidos se encuentran listos para ser usados. Podríamos implementar una aplicación web que muestra estos datos en un dashboard como Grafana o consultarlos con herramientas de visualización y BI.

Esquema de pipeline de datos
Ejemplo esquemático de una pipeline de datos

Todo este proceso es lo que se denomina una pipeline de datos.

Partiendo de una pipeline de datos sencilla, como la que he comentado en los párrafos anteriores, podemos ir aprendiendo nuevas tecnologías para cada una de las fases. En nuestra pipeline de datos de ejemplo hemos usado Apache Kafka, Apache Spark y HDFS. Os invito a explorar las alternativas y opciones disponibles que existen para cada una de estas fases (conexión, buffering, framework de procesamiento, almacenamiento y visualización).

A continuación, voy a listar algunas de las tecnologías y herramientas de data pipelines que podrían ir en cada uno de estos bloques.

Buffering / Cache / Colas de Mensajería

Frameworks de procesamiento

Almacenamiento

Seguridad en una Pipeline de Datos

Cuando implementamos una pipeline de datos debemos tener en cuenta la seguridad de cada uno de los componentes. Una buena idea es compartimentar las tecnologías para evitar que los problemas de seguridad afecten a un gran número de sistemas, por ejemplo usando security groups en AWS.

También, debemos poner cuidado en dar solamente acceso a los recursos necesarios en cada caso, tanto en las herramientas de conexión como en las de visualización. Podemos usar firewalls para delimitar el tráfico entre zonas y establecer reglas de conexión entre servicios.

Además, debemos implementar mecanismos de autenticación seguros como Kerberos entre las herramientas de nuestra pipeline y usar certificados SSL para cifrar las comunicaciones y las transmisiones de datos.

Pipeline ETL

Las pipelines ETL se refieren a los procesos con las fases de extracción de datos de una fuente, su posterior transformación o filtrado y su carga en un sistema destino, como puede ser una base de datos o un data warehouse para su uso en procesos analíticos.

Esquema con las tres fases ETL: Extract, Transform, Load
Esquema con las tres fases ETL: Extract, Transform, Load

Machine Learning Pipeline

Cuando implementamos y ejecutamos algoritmos de machine learning, tenemos varias fases diferenciadas. Estas fases comprenden el preprocesamiento de los datos, la extracción de características, el ajuste de los modelos y la validación.

Por ejemplo, MLlib para Spark nos permite implementar pipelines de machine learning como una secuencia de pasos a través de su API. Nos da la capacidad de implementar dos tipos de fases: transformador y estimador. Con el transformador podemos generar datasets diferentes a partir de los originales. Por otro lado, los estimadores se entrenan con un dataset para producir los modelos finales. Un ejemplo de estimador podría ser la regresión lineal.

Cómo crear una Pipeline de Datos en Cloud

Para diseñar e implementar una pipeline de datos en la nube debemos empezar seleccionando las herramientas y servicios que necesitaremos. Tanto AWS como Azure ponen a nuestra disposición varias opciones para cada una de las fases de nuestra pipeline.

Amazon Data Pipeline es un servicio de AWS que nos permite mover y procesar datos entre diversas fuentes y destinos, por ejemplo S3 o EMR. Está pensado para implementar pipelines ETL de forma escalable y distribuida. También, ofrece una interfaz gráfica a través de la que es muy sencillo conectar fuentes de datos con destinos. Otro servicio que nos permite implementar ETLs en AWS es Glue.

El servicio de Azure pensado para implementar pipelines de datos es Azure Data Factory. Este servicio es serverless y tampoco es necesario el uso de código para implementar nuestra solución. Está perfectamente integrado con otros servicios de Azure.

Formación y Cursos de Data Pipelines

Aprende más sobre cómo implementar pipelines de datos con diferentes tecnologías con estos tres cursos que tienes disponibles para hacer online desde tu casa, muy recomendados:

Paso 1:

Curso de Apache NiFi

Apache NiFi desde cero: La guía esencial

Al final del curso de Apache NiFi, serás capaz de diseñar e implementar perfectamente tus propias pipelines de movimiento, transformación de datos y sistemas de ingesta. Aprenderás a desenvolverte en un entorno profesional e implementar soluciones que manejen datos en muy poco tiempo y paso a paso.

Paso 2:

Curso ETL pipelines Coursera

ETLs y Pipelines de datos con Shell, Airflow y Kafka

Con este curso ofrecido por IBM en Coursera podrás aprender a implementar pipelines de datos y ETLs como soluciones completas. Lo completarás en unas 13 horas en las que se incluye un proyecto final para poner en práctica todo lo aprendido.

Paso 3:

Curso Apache Airflow

Aprende a crear, programar y monitorizar pipelines de datos con Apache Airflow

Por último, te recomiendo este curso de Apache Airflow, un orquestador muy potente usado en entornos empresariales para programar y monitorizar pipelines de datos.

Preguntas Frecuentes Pipeline de Datos – FAQ

¿Las pipelines de datos son lo mismo que ETL?

Aunque a menudo se intercambian estos términos, no significan lo mismo. Las ETLs son un caso particular de pipeline de datos que involucran las fases de extracción, transformación y carga de datos. Las pipelines de datos son cualquier proceso que involucre el movimiento de datos entre sistemas.


A continuación, el vídeo-resumen. ¡No te lo pierdas!


Esta entrada tiene un comentario

  1. William Rotavisky

    Buen dia

    POdemos decir que un Pipeline de datos es como el concepto general donde es un proceso que pemrite mover y procesara datos y los conceptos como Pipeline de ETL y PIpeline de Machine learnig es algo mas especifico.

Deja una respuesta