Ú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!


Contenidos
¿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.


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
- Batch (Hadoop, Apache Spark)
- Streaming (Flink, Kafka Streams, Spark Streaming)
Almacenamiento
- Bases de datos Relacionales (MySQL / Oracle / Postgresql)
- Almacenamiento de objetos (S3 / Azure Blob)
- Data Lakes / Data Warehouses
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.


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:


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:
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:
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!
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.