Aprende qué es una Pipeline de Datos

Última actualización: 22/07/2021

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 cuatro cursos que tienes disponibles en Udemy, recomendados:

Paso 1:

Curso conceptos básicos de Pipelines de datos con SQL, Python y Spark

Conceptos básicos de Pipelines de datos con SQL, Python y Spark

Empezamos con un curso de 39 horas orientado a ingenieros de datos que quieren aprender todos los conceptos básicos de pipelines de datos con las tecnologías SQL, Python y Spark.

Paso 2:

Curso diseña y construye pipelines de datos con Hadoop, MongoDB, Pig, Sqoop y Flume

Diseña y construye pipelines de datos con Hadoop, MongoDB, Pig, Sqoop y Flume

Con este curso podrás aprender a implementar pipelines de datos con herramientas del ecosistema Hadoop y MongoDB. Es un curso más corto que te permitirá implementar soluciones completas.

Paso 3:

Curso data Factory desde cero para configurar pipelines de datos automatizadas hacia y desde Azure

Data Factory desde cero para configurar pipelines de datos automatizadas hacia y desde Azure

También deberás aprender a automatizar las pipelines de datos en la nube. Para ello, este curso te enseñará desde cero todo lo que necesitas saber de Azure Data Factory.

Paso 4:

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!


Deja una respuesta