Crea un Look up dinamico en SSIS

Un truco poco conocido es poder crear un Look up dinamico en SSIS al escribir el query de conexión de un lookup task en full cache usando una variable. Esto permite que al momento de cargar la cache podamos reducir o definir el número de filas que se obtienen basado en un filtro que se puede modificar dinamicamente en cada ejecucion de nuestros paquetes

Dentro de nuestro Data Flow definimos el flujo de los datos: 

  1. Extraer desde origen de datos
  2. Buscar coincidencia
  3. Asignar valor de NO coincidencia
  4. Unir filas coincidentes y NO coincidentes
  5. Insertar datos en destino
ssis dinamic lookup

Abrimos la transformación de Look up para definir sus configuraciones. Para este caso las filas que NO coincidan las dirigimos hacia la salida de No match

ssis dinamic lookup option general no match

En la opción de Connection escogemos la conexión a utilizar y escribimos un query default de la tabla que utilizaremos para obtener los datos de comparación y conectamos las columnas a comparar

ssis dinamic look up option connection query

Dentro del control flow del paquete creamos dos variables que utilizaremos en el Look up, abrimos el Expression builder de la variable que contendrá el query

ssis dinamic lookup package variable query

Escribimos el query que utilizaremos en el Look up para reducir la cantidad de filas obtenidas usando una cláusula filtro WHERE

Una vez definido el query debemos asignarlo al Look up para que lo pueda utilizar. En el Control Flow, seleccionamos el Data Flow que lo contiene y en sus propiedades abrimos la propiedad Expressions

ssis dinamic look up data flow properties expressions

Dentro del Expressions Editor asignamos al SQLCommand del Look up que queremos que sea dinamico, la variable que contiene el query

ssis dinamic look up data flow property expressions sqlCommand

La próxima vez que ejecutemos el paquete el Look up obtendrá las filas basado en el query de la variable asignada y omitirá el query default escrito directamente y de esta forma quedara un Look up dinamico en nuestro paquete de SSIS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *