Parametrización avanzada en ADF: pipelines genéricos y reutilizables
João Barros
04 de July de 2025
1 min de lectura
El error más común en Azure Data Factory es crear un pipeline separado por tabla. La parametrización permite crear pipelines genéricos que reciben configuración en runtime, reduciendo drásticamente el número de artefactos a mantener.
Tipos de parámetros en ADF
Pipeline Parameters: definidos en el pipeline, pasados en runtime
Dataset Parameters: hacen los datasets dinámicos (schema, table, path)
Linked Service Params: credenciales dinámicas por entorno
Global Parameters: constantes compartidas por todos los pipelines
Variables: estado interno durante la ejecución del pipeline
Dataset parametrizado
// Dataset: DS_SQL_Generic
Parameters:
p_schema: string = "dbo"
p_table: string
Properties → Table:
Schema: @{dataset().p_schema}
Table: @{dataset().p_table}
// Usar en el Copy Activity:
Source Dataset: DS_SQL_Generic
p_schema: "ventas"
p_table: @{pipeline().parameters.source_table}
Pipeline metadata-driven
-- Tabla de configuración
CREATE TABLE adf_config.ingest_tables (
id INT IDENTITY PRIMARY KEY,
source_schema VARCHAR(50),
source_table VARCHAR(200),
sink_path VARCHAR(500),
watermark_col VARCHAR(100),
is_active BIT DEFAULT 1
);
-- ADF Pipeline:
1. Lookup → SELECT * FROM adf_config.ingest_tables WHERE is_active = 1
2. ForEach → items: @{activity('LookupConfig').output.value}
3. Execute Pipeline: PL_Copy_Generic
p_source_schema: @{item().source_schema}
p_source_table: @{item().source_table}
p_sink_path: @{item().sink_path}
p_wm_column: @{item().watermark_col}
Expresiones dinámicas útiles
// Fecha de hoy para particionamiento
@{formatDateTime(pipeline().TriggerTime, 'yyyy/MM/dd')}
// Nombre dinámico de archivo
@{concat(pipeline().parameters.table_name, '_', formatDateTime(utcNow(),'yyyyMMdd_HHmmss'), '.parquet')}
// Condición de filtro incremental
@{concat('updated_at > ', string(activity('LookupWatermark').output.firstRow.last_wm))}
Conclusión
Un pipeline metadata-driven con 1 pipeline + 1 dataset + 1 tabla de configuración sustituye 50 pipelines individuales. Es la diferencia entre un ADF de 300 artefactos imposible de mantener y uno de 20 elegantes.