Menú
Técnicas

Definición declarativa para pipelines de datos

Published: May 19, 2020
Last Updated: Oct 28, 2020
Oct 2020
Probar?

Muchos pipelines de datos se definen en un script largo, más o menos imperativo, escrito en Python o Scala. El script contiene tanto la lógica con los pasos individuales así como el código que enlaza los pasos entre sí. Cuando encontramos situaciones similares en pruebas de Selenium, los equipos de desarrollo descubrieron el patrón Objeto de Página (Page Object), y luego, varios frameworks para el desarrollo dirigido por comportamientos (BDD) implementaron una división entre las definiciones de pasos y su composición. Algunos equipos están aún experimentando para traer el mismo razonamiento a la ingeniería de datos. Una definición declarativa para pipelines de datos separada, escrita tal vez en YAML, contiene únicamente la declaración y la secuencia de pasos. En esta se declaran los conjuntos de datos de entrada y salida pero se recurre a los scripts si y cuando se requiere de lógica más compleja. A La Mode es una herramienta relativamente nueva que toma un enfoque de DSL para realizar la definición de pipelines, pero airflow-declarative, una herramienta que convierte directamente los grafos acíclicos en YAML en tareas programadas para Airflow, parece tener mayor impulso en este espacio.

May 2020
Evaluar?

Muchos pipelines de datos se definen usando secuencias de comandos largas, en forma de código, más o menos, imperativo, escritas en Python o Scala. Estos códigos contienen tanto la lógica de los pasos individuales como la lógica que enlaza los pasos entre sí. Cuando los desarrolladores se enfrentaron a una situación similar con las pruebas de Selenium, descubrieron el patrón “Page Object”, y posteriormente muchos frameworks dirigidos por comportamiento, BDD por sus siglas en inglés, implementaron una división entre definición de los pasos y su composición. Algunos equipos están experimentando con la aplicación del mismo enfoque en ingeniería de datos. Una definición declarativa de pipeline de datos separada, tal vez escrita en YAML, contiene únicamente la declaración y la secuencia de pasos. Declara los tipos de datos de entrada y salida pero puede ejecutar comandos imperativos en otros archivos cuando se necesita una lógica más compleja. Con A La Mode, vemos a la primera herramienta de código abierto que aparece en este espacio.