Mapping Data Flows en ADF: transformaciones ETL visuales sin código
João Barros
07 de February de 2025
1 min de lectura
Los Mapping Data Flows en Azure Data Factory permiten construir transformaciones ETL complejas a través de una interfaz visual, sin escribir código Spark. La ejecución se realiza en un clúster Spark gestionado por Microsoft, con escalabilidad automática.
Anatomía de un Data Flow
Source → [Transformaciones] → Sink
Transformaciones disponibles:
Select / Rename — seleccionar y renombrar columnas
Filter — filtrar filas por condición
Derived Column — crear/modificar columnas con expresiones
Aggregate — GROUP BY con funciones de agregación
Join / Lookup — unir datasets
Conditional Split — dividir el flujo por condición
Flatten — desnormalizar estructuras JSON anidadas
Window — funciones de ventana (ROW_NUMBER, LAG, etc.)
Sink — destino de escritura
Expresión en Derived Column
// Calcular margen y normalizar país
margen_pct: toDecimal((ingresos - coste) / ingresos * 100, 2)
pais_norm: upper(trim(pais))
fecha_carga: currentTimestamp()
anio_mes: toString(year(fecha_venta)) + '-' + lpad(toString(month(fecha_venta)), 2, '0')
Aggregate — GROUP BY con múltiples métricas
Group by: pais_norm, anio_mes
Aggregates:
ingresos_total: sum(ingresos)
num_transacciones: count(1)
ticket_medio: avg(ingresos)
max_venta: max(ingresos)
Debug y rendimiento
// Activar el debug cluster (tarda ~2 min en arrancar)
// Preview de datos en cada transformación — esencial para validar
// Optimizaciones:
- Source: enable partition → paralelismo en la lectura
- Sink: set batch size = 10000 para SQL
- Evitar Cartesian joins (sin condición de join)
- Use Broadcast para dimensiones pequeñas (< 1GB)
Conclusión
Los Mapping Data Flows hacen accesibles las transformaciones ETL complejas a ingenieros sin experiencia en Spark. Para equipos con analistas SQL, la sintaxis de expresiones es familiar. El trade-off es el arranque lento del clúster Spark — úselos para batches, no para micro-batches frecuentes.