Creacion de Datawarehouse desde sql dinámico y BIML

23.02.2014 19:22

Siguiendo los últimos artículos publicados sobre el lenguaje dinamico de generación de paquetes SSIS

presentamos esta utilidad para generar Datawarehouse dinámicamente a través de BIML y sql.

Para ello es necesario descargar la utilidad BIML desde la sihuiente dirección:

bidshelper.codeplex.com/releases/view/114725

Una vez instalado, nos aparecerá en el entorno BIDS (En este caso Visual Studio 2008) un nuevo menú

haciendo clic con el boton derecho sobre el archibo de Integration services.

Hacemos clic en "add new Biml file" lo que nos generara un archivo en la carpeta Miscellaneous

denomilado Bimlscript.biml.

Dentro de este archivo pegaremos el codigo generado por el script de sql dinamico adjunto al final de este articulo.

Este codigo realiza el recorrido a traves de un determinado dataset que podemos indicar filtrando las tablas o los esquemas

de la base da datos, añadiendo los filtros despues de:

 

...from sysobjects  INNER JOIN

[INFORMATION_SCHEMA].[TABLES]
ON TABLE_NAME=SYSOBJECTS.name
where type='U') as Tablas

añadir:

and table_name=(tablas a filtar)

o bien

and table_schema=(esquema a filtrar)

El script recorre las vistas de sistema information_schema.columns

generando el código necesario para crear las tablas de destino y omitiendo

los campos autoincrementales que pueden causar problemas  al crear un datawarehouse.

 

Finalmente para cada tabla se genera un contenedor dentro del cual aparece un apartado sql el cual genera la tabla

seguido de un dataflow:

 

Dentro del dataflow habrá para cada tabla un origen de datos desde el origen que hemos elegido

hasta nuestro dawarehouse, ambos parametrizados desde nuestro script.

 

Para que funcione debemos compilar el archivo BIML haciendo clic en Generate SSIS Packages

esto nos dará lugar a la aparición de un nuevo package con nuestro ETL listo para funcionar

Desde este link se puede descargar el codigo completo
Si

 GeneradordinamicoBIML.txt (4734)

Igualmente añadimos un nuevo archivo que generara las tablas la primera vez que se lance el script desde nuestro datawarehouse

Por tanto es necesario lanzar este script primero:

GeneradortablasBIML.txt (3835)