Manual-Libro Sobre SSIS PDF
Manual-Libro Sobre SSIS PDF
Manual-Libro Sobre SSIS PDF
Cuando doy clases, conferencias, demostraciones de SQL Server Integration Services, los
espectadores se emocionan mucho de la potencia que tienen estas herramientas visuales. Sin
embargo, no siempre es tan fácil como en la demostración el uso.
Varios de mis alumnos se han quejado que la herramienta se cuelga muy seguido, que no es
muy estable y que con cien mil datos o más, comienza a colgarse.
Entre algunos consejos que puedo dar para mejorar el rendimiento y estabilidad he encontrado
lo siguiente:
SSIS necesita una buena cantidad de Memoria RAM. Mínimo 2 GB para que sea estable. Esas
máquinas virtuales de 1 GB se cuelgan frecuentemente. No vale la pena usarlas ni siquiera en
proyectos pequeños.
En los siguientes links existen consejos para mantener en buen estado los SSISs siguiendo las
buenas prácticas:
http://www.mssqltips.com/sqlservertip/1840/sql-server-integration-services-ssis-best-practices/
http://sqlcat.com/sqlcat/b/top10lists/archive/2008/10/01/top-10-sql-server-integration-services-
best-practices.aspx
http://blogs.msdn.com/b/ashvinis/archive/2005/09/27/474563.aspx
En SQL Server Integration Services (SSIS), mucha gente aprende, pero le cuesta llegar a
poder recibir parámetros. En este ejemplo voy a copiar datos de una tabla origen a una tabla
destino especificando el ID como parámetro. Luego voy a llamar al paquete desde el cmd (la
línea de comandos y pasarle el parámetro).
Para este ejemplo, estoy usando la base de datos adventureworks, pero usted puede adaptar
el ejemplo a cualquier tabla de cualquier base de datos.
El paquete es un simple Data Flow y dentro del Data Flow se tiene un OLE DB Source y un
OLE DB Destination:
Vamos a tener una variable con el valor del ID a especificar y la otra variable contendrá la
expresión con la sentencia..
La expresión adjuntará la consulta a un parámetro. En este caso la consulta es la siguiente:
FROM [HumanResources].[Employee]
Donde User Variable es la otra variable que contiene el ID. Estamos mostrando el
BusinessEntityID y el NationalIDNumber de la tabla Employee cuyo BusinessEntityID es igual a
una variable.
En el source hay que utilizar, SQL command from variable para recibir variables en los
comandos. Es decir que el comando o la sentencia select permita recibir parámetros. Para eso
se usa una variable.
El resto es crear la tabla destino.
Migrar datos
Con SSIS se puede migrar inicios de sesión o logins de una instancia a otra, también se pueden
exportar datos de Oracle a Excel o viceversa. Es una herramienta muy versátil por la cantidad
de herramientas que contiene.
Para poder importar o exportar datos se usa el SQL Server Business Intelligence y se abre un
proyecto de Integration Services.
El control flow permite determinar que tareas hacer. Dentro del control flow arrastramos la
tarea de dataflow usada para importar y exportar datos.
Luego en control flow, especificamos los datos de origen (OLEDB que muestra los datos de una
tabla SQL Server) y el destino (un archivo plano txt).
Si alguien tiene más dudas sobre importación y exportación de datos, escriba a este blog.
Para eso voy a utilizar un proyecto de Integration Services. Integration services se crea desde
el SQL Server Business Intelligence Development Studio. Para crear un proyecto, lo primero
que hay que hacer es ir a Archivo-Nuevo-Proyecto y escoger un proyecto de Integration
Services.
La variable Contador es un contador que se irá incrementando hasta llegar a 4. Para crear
Variables vaya al Menú y busque SSIS>Variables
Ahora, para utilizar las variables, se van a cambiar las propiedades del for loop container. Las
propiedades del for loop container debería verse parecidas a la siguiente imagen:
Luego se deben editar las propiedades de la tarea de execución de sentencias SQL, las
propiedades deben establecer una conexión a la base de datos, y lo más importante es el sql
statement:
Donde ? es el contador que se creó como variable. Estamos creando ahí las bases de datos
dbase1, dbase2, dbase3, etc.
Para asignar el parámetro contador a nuestra tarea hacemos algo similar a la siguiente imagen:
Donde Nombre de parámetro es 0, que significa que el primer parámetro es contador. En este
caso solo hay un ?. Por lo que solo se usa el nombre de parámetro 0. Si hubiesen más variables
se usaría el 0, 1, 2, 3, etc.
Lo último que queda es ejecutar el package. Si todo salió bien, 4 bases de datos se deberían
haber ejecutado.