thesolidqjournal business intelligence 16 The SolidQ™ Journal, Abril 2011 – www.solidq.com/sqj Generación de paquetes SSIS progra máticam ente (Parte I) Introducción S egún la tendencia que hemos detectado por el tipo de proyectos que llevamos a cabo y que queda contrastado en periódicos digitales como Finan- zas.com, una de las profesiones más demandadas tanto actualmente como en un futuro inmediato es la consultoría avanzada en inteligencia de negocio. Parece claro por tanto, que disponer de herramientas potentes, sencillas y fácilmente amoldables a nue- stros requerimientos cambiantes va a propiciar un auge en la calidad de nuestros servicios. Como cualquier lector sabe, Solid Quality Mentors es el líder de soluciones global en tecnología Microsoft de la plataforma de datos, plataforma de datos que nos provee de entre otras herramientas y tecnologías, las que vamos a discutir en este artículo: SQL Server Inte- gration Services (a partir de ahora nos referiremos a él como SSIS). Como sabemos, todo proyecto de inteligencia de negocio lleva consigo irremediablemente la consolida- ción de información eficiente. Dicho proceso de con- solidación se consigue con SSIS y su diseño es tan personalizado como potencialmente “similar” en todos los escenarios en los que hemos trabajado, que es una buena idea el automatizar su creación. Desde SolidQ nos hemos percatado que en muchas ocasiones el cliente duplica bases de datos con la misma estructura para proporcionar lo que ellos deno- minan “particiones”, que no es más que un tipo de “Sharding” manual, o directamente tablas renombrán- dolas para tratar de conseguir particionado. Todo esto, no hace más que añadir complejidad al proceso de cre- ación del Datawarehouse, que es donde debe residir la información unificada y “limpia” para poder explotarla correctamente. Además de dicha complejidad añadida, en la ejecu- ción de un proyecto de inteligencia de negocios en la que se involucran la creación de paquetes SSIS, se da la circunstancia que por tratarse de proyectos “vivos” y típicamente de media duración, los objetos fuente (tablas) en ocasiones son modificados para añadir columnas, cambiar tipos de datos, eliminar columnas,…con lo que en ocasiones obliga a rehacer t rabajo en SSIS que como sabemos es fuertemente tipado. En este artículo sentaremos las bases para poder entender cómo crear paquetes SSIS con los que con- seguir que fácilmente podamos unificar toda la infor- mación a base prácticamente de 2 clics de ratónJ. Además, gracias a que utilizando dichas librerías no realizaremos intervención humana directa en la crea- ción del paquete SSIS, un cambio en los objetos fuente o destino de nuestros paquetes, solo requerirán darle de nuevo al botón “generar” de nuestro generador J. Por mi experiencia, si nuestro sistema pasa de las 50 o Existe un viejo adagio que dice que cuando necesites escribir código, deberías considerar en su lugar escribir código que generase código. Los usuarios experimentados de SSIS generan paquetes repetitivos programáticamente y de esa forma, aprenden a regenerar- los rápidamente cuando surge la necesidad de un cambio. Este artículo es la primera par- te de una corta serie que le mostrará cómo crear paquetes SSIS mediante programación. Por Enrique Catala
9
Embed
Generacion de Paquetes SSIS Programaticamente Parte 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
5/14/2018 Generacion de Paquetes SSIS Programaticamente Parte 1 - slidepdf.com
The SolidQ™ Journal, Abril 2011 – www.solidq.com/sqj
Generación de paquetes SSISprogramáticamente (Parte I)
Introducción
S egún la tendencia que hemos detectado por el
tipo de proyectos que llevamos a cabo y que
queda contrastado en periódicos digitales como Finan-
zas.com, una de las profesiones más demandadas
tanto actualmente como en un futuro inmediato es la
consultoría avanzada en inteligencia de negocio.
Parece claro por tanto, que disponer de herramientas
potentes, sencillas y fácilmente amoldables a nue-
stros requerimientos cambiantes va a propiciar un
auge en la calidad de nuestros servicios. Como
cualquier lector sabe, Solid Quality Mentors es el líder
de soluciones global en tecnología Microsoft de la
plataforma de datos, plataforma de datos que nos
provee de entre otras herramientas y tecnologías, las
que vamos a discutir en este artículo: SQL Server Inte-gration Services (a partir de ahora nos referiremos a él
como SSIS).
Como sabemos, todo proyecto de inteligencia de
negocio lleva consigo irremediablemente la consolida-
ción de información eficiente. Dicho proceso de con-
solidación se consigue con SSIS y su diseño es tan
personalizado como potencialmente “similar” en
todos los escenarios en los que hemos trabajado, que
es una buena idea el automatizar su creación.
Desde SolidQ nos hemos percatado que en muchas
ocasiones el cliente duplica bases de datos con la
misma estructura para proporcionar lo que ellos deno-
minan “particiones”, que no es más que un tipo de
“Sharding” manual, o directamente tablas renombrán-
dolas para tratar de conseguir particionado. Todo esto,
no hace más que añadir complejidad al proceso de cre-
ación del Datawarehouse, que es donde debe residir la
información unificada y “limpia” para poder explotarla
correctamente.
Además de dicha complejidad añadida, en la ejecu-
ción de un proyecto de inteligencia de negocios en la
que se involucran la creación de paquetes SSIS, se da la
circunstancia que por tratarse de proyectos “vivos” y
típicamente de media duración, los objetos fuente
(tablas) en ocasiones son modificados para añadir
columnas, cambiar tipos de datos, eliminar columnas,…con
lo que en ocasiones obliga a rehacer trabajo en SSIS quecomo sabemos es fuertemente tipado.
En este artículo sentaremos las bases para poder
entender cómo crear paquetes SSIS con los que con-
seguir que fácilmente podamos unificar toda la infor-
mación a base prácticamente de 2 clics de ratónJ.
Además, gracias a que utilizando dichas librerías no
realizaremos intervención humana directa en la crea-
ción del paquete SSIS, un cambio en los objetos fuente
o destino de nuestros paquetes, solo requerirán darle
de nuevo al botón “generar” de nuestro generador J.
Por mi experiencia, si nuestro sistema pasa de las 50 o
Existe un viejo adagio que dice que cuando necesites escribir código, deberías considerar
en su lugar escribir código que generase código. Los usuarios experimentados de SSIS
generan paquetes repetitivos programáticamente y de esa forma, aprenden a regenerar-los rápidamente cuando surge la necesidad de un cambio. Este artículo es la primera par-
te de una corta serie que le mostrará cómo crear paquetes SSIS mediante programación.
Por Enrique Catala
5/14/2018 Generacion de Paquetes SSIS Programaticamente Parte 1 - slidepdf.com
http://slidepdf.com/reader/full/generacion-de-paquetes-ssis-programaticamente-parte-1The SolidQ™ Journal, Abril 2011 – www.solidq.com/sqj
60 tablas ya se ahorra tiempo haciéndolo de esta forma
si tenemos que repetir el proceso solamente una vezporque al final nos damos cuenta de un detalle (pequeño
o no) con la mitad de las tablas ya habríamos ahorrado
tiempo escribiendo este código.
En resumen lo que vamos a ver es como crear una
aplicación de Consola C# que va a generar paquetes de
SSIS sin intervención humana (obviamente en algun
momento le tendremos que indicar el origen y el des-
tino, pero nada más).
Requisitos para reproducir el artículo
Para la reproducción del artículo se recomienda dispo-
ner de los siguientes requisitos:
• Visual Studio 2010: La versión Express debería
ser suficiente
• SQL Server 2008 R2 (como mínimo será necesa-
rio versión standard para disponer de SSIS y pro-
bar nuestros paquetes generados)
• Conocimientos de SSIS: Se parte de la base de
que el lector conoce como crear paquetes SSIS,
desplegarlos y utilizarlos.
• Conocimientos altos en programac ión C# y
manejo de Visual Studio 2010
• Se parte de la base de que el lector conoce
metodologías de programación orientadas a
objetos y posee conocimientos en el manejo de
Visual Studio 2010
Adicionalmente, en el site de solidq, puedes
encontrar el código de la solución para descarga.
Pincha aquí.
El paquete dtsx
Antes de nada, hay que tener claro que el proceso degeneración por código de paquetes SSIS no está bien
documentado, por lo que mucho de lo que aquí vas a leer
proviene tanto de prueba-error, como de ingeniería inversa
analizando el comportamiento de objetos y el xml resul-
tante. Con ello no quiero decir que haya violado ningún
copyright, simplemente estoy diciendo que para saber
cómo funciona correctamente un método, en ocasiones
he tenido que ver qué generaba y compararlo con uno que
había generado mediante la interfaz de Visual Studio.
Recuerda además, que un paquete de integration ser-
vices, no es más que un XML que contiene la meta infor-
mación necesaria para que el proceso dtexec.exe sea
capaz de realizar lo que hemos indicado en él.
Para nuestro ejemplo usaremos la BBDD Adventu-
reWorks y lo que haremos será mover información a
una BBDD nueva a la que llamaremos Staging.
Figura 1
Figura 0
Figura 2
5/14/2018 Generacion de Paquetes SSIS Programaticamente Parte 1 - slidepdf.com