SQL Server Integration Services … en muy pocas palabras, un caso sencillo.

En la base del trabajo con Inteligencia de Negocio desde MS SQL Server se encuentran los Servicios de Integración, cuya función principal se puede resumir en las tres palabras que le dieron nombre a sus antecesores: Extracción – Transformación – Carga (Load), los ETL.

Aunque estos Servicios van mucho más allá, permitiéndonos realizar un grupo de tareas de Administración de Base de datos, de momento vamos a centrarnos en los paquetes de ETL.

Sin entrar en muchas definiciones, digamos que nuestro objetivo será importar datos que nos llegan de orígenes diversos con estructuras de datos variopintas y que debemos conseguir realizar transformaciones sobre ellos de forma tal que sean compatibles con la estructura que tenemos en nuestras BBDD o el destino que deseamos para nuestros datos.

La siguiente figura muestra un ejemplo de un paquete, con una única Tarea de Flujo de datos cuyo objetivo es importar la Columna 1 de un archivo plano, renombrarla como “Nombres” y transformarla. Esta columna que recibimos es de tipo varchar(50) y hemos de convertirla a varchar(15) para que se corresponda con la estructura en nuestro destino. Nos enfrentamos a la posible pérdida de datos y debemos decidir qué hacer. Puede ser que no nos interesen aquellas cadenas cuya longitud sobrepasa los 15 admitidos o puede que nos interesen sus primeros 15 caracteres, aunque perdamos el resto. En cualquier caso, es aconsejable, guardar todos los datos para una posterior depuración.

SSISCasoTruncadas1A

Esta es la imagen del primer caso, además de las conexiones con origen y destino, utilizamos una transformación Conversión de datos que nos vale tanto para convertir un tipo de dato en otro, por ejemplo FechaHora en el nuevo tipo de dato Fecha, o para cambiar el tamaño de una columna manteniendo el tipo de dato. Esta transformación admite Salida de error (en color rojo) y en nuestro caso es imprescindible, para controlar las filas que se trunquen como resultado de la transformación, estas filas van a otro destino, no entran en la tabla SQL, de esta forma garantizamos que el paquete, o mejor dicho esta tarea se ejecuta sin errores, y que no se pierde ninguna información, porque podemos analizarlas luego en detalle, o devolverlas al suministrador para que limite sus datos a la longitud que necesitamos.

SSISCasoTruncadas1B

Al destino entran las 209 filas con la longitud correcta, el resto no se tienen en cuenta. Es arriesgado perder tantos datos. Otro día hablaremos de cómo podríamos solucionarlo, hoy ya nos vamos despidiendo,

Hasta otra,

Saludos,

Ana María Bisbé York

www.amby.net