(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo usar la actividad Lookup en Azure Data Factory

João Barros 08 de July de 2026 4 min de lectura

La actividad Lookup en Azure Data Factory permite obtener valores de una tabla o archivo y usarlos para controlar el resto del pipeline — por ejemplo, leer la fecha de la última carga o la lista de tablas a procesar. En lugar de escribir valores fijos dentro de las actividades, el pipeline decide qué hacer a partir de los propios datos. Dominar esta actividad es lo que separa un pipeline rígido de uno que se adapta solo a los datos.

Requisitos previos

  • Una instancia de Azure Data Factory ya creada.
  • Un Linked Service y un Dataset que apunten al origen (por ejemplo, Azure SQL Database).
  • Una tabla de control con datos para leer (p. ej., fechas de carga o una lista de tablas).
  • Permisos para crear y publicar pipelines en ADF Studio.

Paso 1: Preparar la tabla de origen

La actividad Lookup siempre lee desde un Dataset. En este ejemplo usaremos una pequeña tabla de control en Azure SQL Database que guarda la lista de tablas a cargar — un patrón muy común en escenarios de ETL. Si la tabla aún no existe, créela y rellénela con una query sencilla:

CREATE TABLE dbo.LoadList (
    SchemaName NVARCHAR(50),
    TableName  NVARCHAR(100),
    Enabled    BIT
);

INSERT INTO dbo.LoadList VALUES
('dbo','Clientes',1),
('dbo','Encomendas',1),
('dbo','Produtos',0);

Nos quedamos con dos tablas activas (Enabled = 1) y una desactivada. Así podemos mostrar, más adelante, cómo devolver solo las filas que interesan.

Paso 2: Añadir la actividad Lookup al pipeline

En ADF Studio, abra la pestaña Author y cree un nuevo pipeline con el botón +. En el panel Activities de la izquierda, expanda la categoría General y busque Lookup. Arrastre la actividad al lienzo y asígnele un nombre claro, como LookupTables. Lookup vive en la categoría General porque no mueve datos — solo los lee para tomar decisiones.

Paso 3: Configurar el origen y la query

Seleccione la actividad Lookup y abra la pestaña Settings. En Source dataset, elija el Dataset que apunta a Azure SQL Database. Después, en el campo Use query, seleccione Query en lugar de Table — así controla exactamente qué columnas y filas se devuelven, lo que es más eficiente que leer la tabla completa:

SELECT SchemaName, TableName
FROM dbo.LoadList
WHERE Enabled = 1;

Por último, desactive la opción First row only. Cuando está activada, Lookup devuelve solo la primera fila, ideal para leer un único valor (como una fecha). Cuando está desactivada, devuelve todas las filas en un array — exactamente lo que necesitamos para recorrer varias tablas.

La actividad Lookup devuelve como máximo 5000 filas y 4 MB de datos. Para volúmenes mayores, filtre en la query o divida el procesamiento en lotes.

Paso 4: Usar el resultado en otras actividades

El resultado de Lookup está disponible como una expresión. Para leer un único valor (con First row only activado) usaría:

@activity('LookupTables').output.firstRow.TableName

Como desactivamos esa opción, tenemos un array en output.value y el recuento en output.count. Añada a continuación una actividad ForEach y, en el campo Items, escriba:

@activity('LookupTables').output.value

Dentro del ForEach, cada iteración expone la fila actual. Para acceder al nombre de la tabla de esa iteración, use @item().TableName. Tenga en cuenta que el nombre entre comillas en @activity('LookupTables') debe coincidir exactamente con el nombre que dio a la actividad; de lo contrario, la expresión falla en la validación.

Verificar el resultado

Haga clic en Debug para ejecutar el pipeline sin publicar. En la pestaña Output, pase el ratón sobre la actividad LookupTables y haga clic en el icono de salida: debería ver un objeto JSON con count igual a 2 y un array value con las dos tablas activas. Si el ForEach se ejecuta dos veces, todo funciona.

Conclusión

Con la actividad Lookup ya alimenta el pipeline a partir de datos reales en lugar de valores fijos — el primer paso hacia pipelines verdaderamente dinámicos y reutilizables. Como siguiente paso, pruebe a activar First row only para leer una fecha de watermark y hacer cargas incrementales. ¿Qué valor de su tabla de control le gustaría dejar de escribir a mano en el pipeline?