Guía para diseñar un pipeline de datos eficiente
El diseño de un pipeline de datos confiable es fundamental para automatizar la recolección, la transformación y la entrega de datos para asegurar su calidad y disponibilidad.
El diseño de un pipeline de datos confiable es fundamental para automatizar la recolección, la transformación y la entrega de datos para asegurar su calidad y disponibilidad.
POR EDITH MONTES, DATA ENGINEER -DATASCOUTS
A la hora de construir un lago de datos (datalake) y/o un datawarehouse es importante diseñar y construir pipelines de datos confiables que se encuentren totalmente automatizados, que sean escalables y que se puedan estar monitoreando fácilmente.
Dicha tarea queda a cargo del equipo de ingeniería de datos y puede volverse una tarea compleja si no se toman en cuenta los componentes esenciales que los conforman.
Un pipeline o canalización de datos hace referencia al proceso de mover datos de un lugar a otro de forma automatizada.
A pesar de que esta definición parezca algo sencilla, este proceso conlleva por detrás todo un análisis a realizar, ya que de ello dependerá la calidad de los datos a entregar.
Veamos a continuación los pasos para desarrollar un pipeline de datos eficiente:
Primeramente es necesario identificar el origen de los datos (datasource) y el tipo de datos que se van a mover (si son estructurados, semi-estructurados, no estructurados). Para ello, podemos realizar preguntas como:
El siguiente paso es determinar la frecuencia y el volumen en el que se moverá la información y preguntarse: ¿se requiere en tiempo real o puede tener una latencia (ej. mes/semana/día/hora)? De lo anterior, podemos deducir si el pipeline será por lotes (batches) o streaming.
Una vez definido lo anterior es necesario establecer la serie de transformaciones que se le aplicarán a los datos conforme al requerimiento solicitado. Este es uno de los puntos más importantes de analizar, ya que de ello dependerá el tipo de procesamiento o enfoque a realizar a la hora de mover los datos:
Dentro de las transformaciones antes mencionadas encontramos agregaciones (sumatorias, totales, promedios, etc.), generación de nuevos datasets a partir de relaciones entre diferentes orígenes de datos (joins), filtrado de información, limpieza de datos, etc.
Como siguiente punto debemos establecer el destino final de los datos y su acceso (permisos):
Una vez concretado todo lo anterior, debemos generar el flujo de tareas y el orden (secuencia) en el que se ejecutarán, así como programar su ejecución, de manera que todo se encuentre automatizado.
Finalmente, se debe contar con validaciones que permitan asegurar el correcto traslado de los datos y su constante monitoreo para una rápida respuesta a fallos.
Tomando en cuenta los puntos anteriores, el diseño de un pipeline de datos nos asegurará una correcta implementación, además de que también evitaremos desperdiciar tiempo durante el proceso de desarrollo del mismo.