Tuesday, November 08, 2005
Data Transformation Services
- Transformación de datos.
- Copia de objetos de base de datos: tablas, índices, etc.
- Importación y exportación de datos entre dos orígenes de datos.
- Ejecución de instrucciones de Transact-SQL.
Podemos pensar en nuestro día a día como programadores, en algunas ocasiones nos encontramos con sistemas un poco antiguos que hemos heredado y a los cuales debemos darles mantenimiento o migrar sus datos en forma parcial o total, o en ocaciones integrar dos sistemas con origenes de datos totalmente diferentes. Pues los DTS’s nos dan la posibilidad de mover, copiar, modificar y trabajar con orígenes de datos iguales o diferentes.
Por medio de un DTS se pueden copiar y transformar desde y hacia múltiples orígenes de datos, entre ellos:
- Dbase III, IV y V.
- Access
- Excel
- Archivos de Texto
- Paradox
- OLE DB (SQL Server, Oracle)
- Exchange Server
- Y otros orígenes de datos proporcionados por terceros (Oracle, Sybase, Adaptive Server Anywhere 9.0, y otros)
Iniciando:
La forma más común de iniciar la creación de un DTS es entrando por medio del SQL Server-Enterprise Manager y seleccionando la opción Wizards… del menú Tools y seleccionando del árbol de selección la opción de Data Transformation Services, también lo podemos hacer desde la consola de comandos del sistema ejecutando el archivo dtswiz.exe, otra forma es, posicionándonos en una base de datos y presionando el botón derecho, seleccionamos Todas las tareas del menú contextual y la opción Importar datos o exportar datos dependiendo de la tarea que vamos a realizar.
Repasemos los pasos que debemos seguir:
1. La primera pantalla del wizard que nos aparece es meramente informativa donde se nos indica para que sirve un DTS, presionamos el botón next -aquí es donde empieza la acción- veremos una pantalla como la imagen que vemos a continuación. En esta seleccionamos el origen de los datos (Data Source). En esta pantalla seleccionamos un origen de datos (donde estan los datos que necesitamos transferir). Esta pantalla puede cambiar su apariencia en función de los opciones que vayamos selecionando. Aparecerá pre-seleccionada la opción de SQL Server del que queremos extraer datos, por defecto esta seleccionado el servidor local (si tenemos SQL Server instalado localmente). Seleccionamos la forma en que nos auntenticaremos en el servidor SQL Server seleccionado. Luego la bases de datos de donde queremos extraer los datos. Una vez configurada la pantalla Elegir un origen de datos pulsamos siguiente.
2. La siguiente pantalla elegir un destino de datos (Destination) es identica a la anterior, con las mismas opciones, pero en este caso las opciones que estamos seleccionando son las de destino de los datos.
3. En la tercera pantalla que nos aparece debemos Elegir la tabla o consulta(Query) de donde queremos obtener los datos, aquí hay tres opciones dependiendo del modo en que queramos copiar los datos. Según sea el origen de datos seleccionado puede que se activen o se desactiven opciones en esta pantalla.

Copiar tablas y vistas desde el origen de datos: Si seleccionamos copiar las tablas y vistas de la base de datos de origen nos encontraremos con la siguiente pantalla en la tendremos que seleccionar las tablas y/o vistas que trasladaremos a la base de datos destino, si se selecciona una tabla y se pulsa el botón (…), en la columna transformar aparece una pantalla para modificar las opciones de traspaso de esa tabla, si la tabla no existe en el destino, ésta se creará pero si existe tenemos la posibilidad de borrarla o hacer un "append" a los datos ya existentes.
Usar consulta para especificar los datos a transferir: Esta opción permite crear una consulta SQL para definir los datos que vamos a transferir, así podriamos filtrar solamente los datos deseados.
Como se puede apreciar en la pantalla anterior tenemos un botón con la etiqueta "Query Builder" que nos llevara a otra pantalla donde podremos seleccionar las tablas o vistas a partir de las cuales podremos extraer los datos requeridos e ir contruyendo nuestra consulta paso a paso.
Copiar objetos y datos entre bases de datos SQL Server: Si lo que se necesita hacer es una transferencia entre servidores, ya sea porque necesitamos mover una Base de Datos o crear una copia en otro servidor, esta es la opción que debemos seleccionar. Como vemos en la siguiente pantalla podemos elegir los objetos que deseamos copiar, tales como: Procedimientos almacenados, vistas, tablas, restricciones, defaults, reglas, funciones definidas por el usuario, etc. También podemos seleccionar opciones para sobrescribir o agregar datos, copiar todos los objetos de la base de datos o seleccionarlos de una lista.
4. En la siguiente pantalla vamos a decidir que queremos hacer con el DTS, si lo que estamos haciendo es una tarea que solo la necesitamos una vez, puede ser que no sea necesario guardarla en la base de datos (consejo: es mejor guardarlo porque a veces las cosas no funcionan como queremos en la primera, asi eventualmente podríamos modificar el DTS).
En esta pantalla podemos decidir cuando y como ejecutar el DTS, podemos ejecutarlo en el mismo momento o programarlo como una tarea y/o salvarlo como un paquete DTS, procedimiento almacenado o como un módulo de Visual Basic.
Si decidimos salvarlo nos encontraremos con una pantalla como la sieguiente imagen:

En esta pantalla podemos ponerle un nombre adecuado al DTS el cual como siempre debe ser descriptivo, en el campo "Description" podemos escribir una descripción que aclare el propósito del DTS, si queremos podemos inclusive proteger el paquete con una palabra clave para evitar su modificación y se debe definir la base de datos donde se grabara el DTS y la la forma en que nos conectaremos a este servidor.
Y en la última pantalla lo que se presenta es información del proceso que se va a realizar, dependiendo de las opciones seleccionadas en las pantallas previas.
Como se ha descubierto en este documento crear, ejecutar o programar la ejecución de un DTS es una tarea bastante sencilla y potente que puede ser muy útil a la hora de transferir datos entre servidores remotos o entre diferentes fuentes de datos. Los DTS también pueden ser creados desde código Visual Basic, Visual C++, .Net y otros, usando los objetos que estan disponibles atravez de esos lenguajes de programación, por ejemplo desde Visual Basic se deben utilizar las librerías “Microsoft DTSDataPump Scripting Object Library” (dtspump.dll) y “Microsoft DTSPackage Object Library” (dtspkg.dll).
Además un DTS puede ser ejecutado desde la línea de comando o bien ser ejecutado desde cualquier otro lenguaje como PowerBuilder por ejemplo, pero esto es otra historia que veremos en proximas entregas.
gracias
<< Home




