Un pipeline de datos es una serie de pasos de procesamiento de datos. Si los datos no están cargados actualmente en la plataforma de datos, entonces se ingieren al principio del pipeline. Luego hay una serie de pasos en los que cada paso entrega una salida que es la entrada del siguiente paso. Esto continúa hasta que la canalización se completa. En algunos casos, se pueden ejecutar pasos independientes en paralelo.
Los pipelines de datos constan de tres elementos clave: una fuente, un paso o pasos de procesamiento y un destino. En algunos conductos de datos, el destino puede denominarse sumidero. Los pipelines de datos permiten el flujo de datos desde una aplicación a un almacén de datos, desde un lago de datos a una base de datos de análisis, o a un sistema de procesamiento de pagos, por ejemplo. Los pipelines de datos también pueden tener la misma fuente y el mismo sumidero, de manera que el pipeline se limita a modificar el conjunto de datos. Cada vez que los datos se procesan entre el punto A y el punto B (o los puntos B, C y D), hay una canalización de datos entre esos puntos.
A medida que las organizaciones buscan construir aplicaciones con pequeñas bases de código que sirvan para un propósito muy específico (este tipo de aplicaciones se llaman «microservicios»), están moviendo datos entre más y más aplicaciones, haciendo que la eficiencia de las canalizaciones de datos sea una consideración crítica en su planificación y desarrollo. Los datos generados en un sistema o aplicación de origen pueden alimentar múltiples conductos de datos, y esos conductos pueden tener otros múltiples conductos o aplicaciones que dependen de sus resultados.
Considere un solo comentario en los medios sociales. Este evento podría generar datos para alimentar un informe en tiempo real que cuente las menciones en los medios sociales, una aplicación de análisis de sentimientos que arroje un resultado positivo, negativo o neutral, o una aplicación que grafique cada mención en un mapa mundial. Aunque los datos provienen de la misma fuente en todos los casos, cada una de estas aplicaciones se basa en conductos de datos únicos que deben completarse sin problemas antes de que el usuario final vea el resultado.
Los pasos comunes en los conductos de datos incluyen la transformación de datos, el aumento, el enriquecimiento, el filtrado, la agrupación, la agregación y la ejecución de algoritmos contra esos datos.
¿Qué es un pipeline de Big Data?
A medida que el volumen, la variedad y la velocidad de los datos han crecido drásticamente en los últimos años, los arquitectos y desarrolladores han tenido que adaptarse a los «big data». El término «big data» implica que hay un enorme volumen con el que lidiar. Este volumen de datos puede abrir oportunidades para casos de uso como el análisis predictivo, los informes en tiempo real y las alertas, entre otros muchos ejemplos.
Al igual que muchos componentes de la arquitectura de datos, los pipelines de datos han evolucionado para dar soporte a los big data. Los pipelines de big data son pipelines de datos construidos para acomodar uno o más de los tres rasgos de big data. La velocidad de los big data hace que resulte atractiva la construcción de pipelines de datos en flujo para los big data. Así, los datos pueden ser capturados y procesados en tiempo real para que pueda producirse alguna acción. El volumen de los big data exige que las canalizaciones de datos sean escalables, ya que el volumen puede ser variable en el tiempo. En la práctica, es probable que haya muchos eventos de big data que se produzcan simultáneamente o muy próximos entre sí, por lo que la canalización de big data debe ser capaz de escalar para procesar volúmenes significativos de datos simultáneamente. La variedad de big data requiere que los pipelines de big data sean capaces de reconocer y procesar datos en muchos formatos diferentes: estructurados, no estructurados y semiestructurados.
Data Pipeline vs. ETL
ETL se refiere a un tipo específico de pipeline de datos. ETL significa «extraer, transformar, cargar». Es el proceso de mover los datos desde una fuente, como una aplicación, a un destino, normalmente un almacén de datos. «Extraer» se refiere a sacar los datos de una fuente; «transformar» consiste en modificar los datos para que puedan cargarse en el destino, y «cargar» consiste en insertar los datos en el destino.
ETL se ha utilizado históricamente para cargas de trabajo por lotes, especialmente a gran escala. Pero está surgiendo una nueva generación de herramientas ETL de streaming como parte del pipeline para datos de eventos de streaming en tiempo real.
Consideraciones sobre el pipeline de datos
Las arquitecturas del pipeline de datos requieren muchas consideraciones. Por ejemplo, ¿necesita su pipeline manejar datos en streaming? Qué tasa de datos espera? Cuánto y qué tipos de procesamiento deben ocurrir en el pipeline de datos? ¿Los datos se generan en la nube o en las instalaciones, y a dónde deben ir? ¿Planea construir la canalización con microservicios? ¿Existen tecnologías específicas en las que su equipo ya está bien versado en la programación y el mantenimiento?
Ejemplos de arquitectura
Los pipelines de datos pueden tener varias arquitecturas. Un ejemplo común es una tubería de datos basada en lotes. En ese ejemplo, usted puede tener una aplicación como un sistema de punto de venta que genera un gran número de puntos de datos que usted necesita para empujar a un almacén de datos y una base de datos de análisis. Este es un ejemplo de lo que sería:
Otro ejemplo es una canalización de datos en flujo. En una canalización de datos en flujo, los datos del sistema de punto de venta se procesarían a medida que se generan. El motor de procesamiento de flujo podría alimentar las salidas de la tubería a los almacenes de datos, aplicaciones de marketing y CRM, entre otras aplicaciones, así como de vuelta al propio sistema de punto de venta.
Un tercer ejemplo de canalización de datos es la Arquitectura Lambda, que combina canalizaciones de lotes y de flujo en una sola arquitectura. La arquitectura Lambda es popular en los entornos de big data porque permite a los desarrolladores tener en cuenta tanto los casos de uso de streaming en tiempo real como el análisis histórico por lotes. Un aspecto clave de esta arquitectura es que fomenta el almacenamiento de datos en formato sin procesar para poder ejecutar continuamente nuevas canalizaciones de datos para corregir cualquier error de código en canalizaciones anteriores, o para crear nuevos destinos de datos que permitan nuevos tipos de consultas.
Temas relacionados
Streaming ETL
Arquitectura Lambda
Procesamiento en flujo