Sei sulla pagina 1di 28

Manual DTSX

Contenido
1. Archivo BAT ................................................................................................................................. 3
2. Crear DTSX ................................................................................................................................... 4
2.1. Abrir DTSX y Dar Nombre de Proyecto.................................................................................... 4
2.2. Agregar Variables de Conexin ............................................................................................... 5
3. Crear Archivo de LOG DTSX ......................................................................................................... 6
3.1. Crear log para archivos XML.................................................................................................... 6
3.2. Configurar Eventos a Validar ................................................................................................... 7
3.3. Generar Vinculo con archive de LOG de salida ....................................................................... 8
3.4. Configuracin Path de Salida ................................................................................................ 10
4. Desarrollo Ejemplo .................................................................................................................... 11
4.1. Crear SQL Task ....................................................................................................................... 11
4.2. SQL Task Crear Conexin .................................................................................................... 12
4.3. SQL Task Agregar Llamado SP ............................................................................................ 14
4.4. SQL Task - Definir Variable de Salida ..................................................................................... 15
4.5. Agregar Data Flow Task (DFT) ............................................................................................... 16
4.6. DFT Agregar OLE DB ........................................................................................................... 17
4.7. Agregar Archivo de Salida ..................................................................................................... 18
4.8. Ejecucin de Prueba .............................................................................................................. 22
4.9. Compilar Paquete .................................................................................................................. 23
4.10. SQL Task Parametrizar Conexin.................................................................................... 24
4.11. Anexo 1 : Elementos de Flujo de Control .......................................................................... 25
4.12. Anexo 2: Flujos de Datos ................................................................................................... 26
1. Archivo BAT
Antes de crear el archivo DTSX, se debe crear el archivo .BAT que lo ejecute, pasndole los
parmetros de conexin Si bien la nica restriccin de nombre para el archivo DTSX es que
comience con el alias de la aplicacin (en este caso CIN), es preferible usar el nombre del archivo
BAT.

A continuacin se ordena el llamado al archivo DTSX, para poder visualizar mejor como utiliza las
variables, sin embargo, en el archivo BAT se debe dejar el llamado en una sola lnea para que la lea
correctamente.

DTEXEC /F %5\Bin\SSIS\CINJ0150.dtsx /SET \Package.Variables[User::Server].Value;%3


/SET \Package.Variables[User::User].Value;%1
/SET \Package.Variables[User::Pass].Value;%2
/SET \Package.Variables[User::Base].Value;%6
/SET \Package.Variables[Path_log].Value;%4
/SET \Package.Variables[User::Path_area].Value;%5
> %4\CINJ0150_dts.log 2>> %4\CINJ0150.log

3
2. Crear DTSX
2.1. Abrir DTSX y Dar Nombre de Proyecto
Para crear un proyecto DTSX, se debe abrir el SQL Server Business Intelligence Development Studio

Una vez abierto el programa, se crea un nuevo proyecto New Project

Al ingresar el Nombre, en este caso CINJ0150, se crea una carpeta con dicho nombre y todos los
componentes bsicos necesarios

4
2.2. Agregar Variables de Conexin
Para poder dejar el DTSX con llamada paramtrica, es decir, independiente de la base de datos y el
usuario, se deben crear las variables que se definieron en el BAT.
Para crear las variables, uno debe estar situado a nivel de paquete. Teniendo a la vista la lengeta
Control Flow, se debe crear la variable usando el icono ubicado en la esquina izquierda.

Se deben agregar las variables Base, Pass, Path_area, Path_log, Server y User. Las cuales
corresponden exactamente a los nombres definidos en el archivo BAT.

Un ejemplo de llamada para este caso es :

:menu_1 CINJ0150.BAT
CD D:\PROGRAMAS\BIN
CLS
echo. PROBANDO CINJ0150.BAT
CALL CINJ0150.BAT bbce001 bbce001 vw-s2k8-desdat2 d:\programas\Log D:\Programas bbce_cmx
CLS
echo. PROCESO BAT CINJ0150.BAT EJECUTADO, REVISAR LOG Y ARCHIVOS GENERADOS SI CORRESPONDE.....
GOTO:EOF

5
3. Crear Archivo de LOG DTSX
3.1. Crear log para archivos XML

Como estndar, el DTSX debe crear un archivo de log en la carpeta de log que se le indique por
parmetro, para ello se debe ingresar al men SSIS Logging

Una vez hecho eso, se debe seleccionar SSIS log provider for XML files y presionar Add..

6
3.2. Configurar Eventos a Validar

El estndar banco indica que se deben escoger los siguientes tres eventos de log, hay que poner
atencin en seleccionar el checkbox del package (arriba a la izquierda)

7
3.3. Generar Vinculo con archive de LOG de salida

Hasta ahora slo se estn capturando el log, pero no se est dejando en ningn lado en particular,
para definir eso en Configuration se debe crear una nueva conexin

Al crear una nueva conexin, se debe poner el nombre del archive de LOG, se debe usar un
formato similar al del ejemplo.

8
Una vez que se ha creado el archivo de salida, queda asociado al log, tal como se ve en la pantalla
a continuacin.

9
3.4. Configuracin Path de Salida

Para que el log se guarde en el Path que se el indique por parmetro, en las propiedades se debe
definir la ruta en la propiedad Expressions, inicialmente se va a encontrar en blanco, al
seleccionarlo va a aparecer la siguiente pantalla, donde se deben ingresar los siguientes datos:

@[User::Path_log] + \\CINJ0150_dts.Log
Una vez que se ha definido el ConnectionString, para el campo Expressions se puede ver el
cambio en las propiedades, tal como se ve en la imagen.

10
4. Desarrollo Ejemplo
Una vez que tenemos la base del DTSX, empezamos con el desarrollo del ejemplo, el cual consiste
en generar un archivo de texto con la informacin de operaciones diarias, el formato de nombre
del archivo es OPE_DIA.TXT, es decir que si se ejecuta el DTSX un da mircoles, el archivo
generado ser OPE_MIERCOLES.TXT

4.1. Crear SQL Task

11
4.2. SQL Task Crear Conexin

En este caso, no existe ninguna conexin, por lo que se va a crear una para poder hacer la
ejecucin de la consulta. Para esto en las propiedades, se debe escoger la propiedad Connection y
seleccionar <New connection>

12
Una vez hecho lo anterior se deben ingresar los datos de conexin, Server name, User name,
Password y Database name. Estos datos son para verificar conexin y correcto funcionamiento. Al
finalizar se deben dejar en blanco para ser reemplazados por las variables que sern entregadas
por parmetro.

Se puede verificar que la conexin quedo creada porque abajo aparece la nueva conexin.

13
4.3. SQL Task Agregar Llamado SP

Para agregar una llamada a una sentencia SQL se debe modificar la propiedad SQLStatement

14
4.4. SQL Task - Definir Variable de Salida
Se debe crear una nueva variable a nivel de paquete, en este caso NombreDia y se define en los
Parameter Mapping como se muestra a continuacin.
Previamente se debe haber modificado en la propiedad ResultSetType y definirla como
ResultSetType_SingleRow. Hay que tener cuidado de dejar los valores como se indican en la
pantalla

Finalmente se define el nombre del campo que se est leyendo y la variable donde se va a dejar el
valor.

Nota:
Result Name es el nombre del campo que retorna la consulta

15
4.5. Agregar Data Flow Task (DFT)

El Data Flow Task es un elemento que puede contener un flujo de tareas a realizar, en el caso de
este ejemplo, va a realizar una consulta a la base de datos y a generar un archivo de texto de
salida con el resultado.

16
4.6. DFT Agregar OLE DB

Una vez agregado el DFT, se hace doble click sobre este y cambia a la pantalla de Data Flow. Ac se
agregara un elemento OLE DB Source Editor y lo vamos a configurar como se muestra en la
siguiente imagen.

17
4.7. Agregar Archivo de Salida

Para que el DTSX genere un archivo de salida con los datos obtenidos desde la consulta SQL, se
debe insertar un Flat File Destination y unir ambos y luego configurar como se indica a
continuacin.

Al hacer doble click en el Flat File, se abre la siguiente panta, utilizando el botn New crearemos el
connection manager del archivo de salida.

18
Al hacer click en el botn, se abre la siguiente pantalla, que nos pregunta el formato del archivo de
destino, en nuestro caso un archivo de texto delimitado por separadores

Luego en la seccin General, se deben completar los datos tal como se indica en la pantalla. En
esta seccin se define el separador de campo del encabezado, en caso de tener un encabezado.

19
En la seccin Columns se definen los separadores de campo y saltos de lnea.

20
Finalmente hay que seleccionar el Connection Mannager Archivo_Operaciones y modificar la
propiedad Connection String, asignndole el siguiente valor @[User::Path_area] +
"\\Ftp\\Output\\OPE_" + @[User::NombreDia] + ".txt", de tal forma que el nombre del archivo
vaya cambiando con la fecha

Al finalizar el proyecto se debiera ver como en la imagen.

21
4.8. Ejecucin de Prueba

Para ejecutar el DTSX y verificar su funcionamiento se debe ejecutar en el men

Si la ejecucin es correcta, los objetos van a cambiar de color y quedarn en verde, si existe algn
error quedarn en rojo.

22
4.9. Compilar Paquete

Para compilar un paquete, se debe ir al menu Build Build CINJ0150, lo que hace esta accin es
generar un archivo CINJ0150.DTSX, el cual ser el entregable.

Luego se va al menu File Save Package.dtsx As y se guarda el paquete con el nombre que uno
desea en la carpeta en donde se va a ejecutar, es decir en la carpeta SSIS

Al realizar esta copia pegunta si se desea cambiar el nombre el paquete. Como nos interesa que
mantenga el nombre CINJ0150.DTSX, respondemos que si y no debiera volver a preguntar.

23
4.10. SQL Task Parametrizar Conexin

Una vez finalizadas las pruebas, se deben dejar los valores de conexion a la BD en blanco. Para eso
se deben realizar los siguientes pasos.
El campo ConnectionString se debe modificar para eliminar los parmetros ingresados
anteriormente y que no quede nada fijoingresando el texto Data Source=;User ID= ;Initial
Catalog=;Provider=SQLNCLI10.1;

Luego, en Expressions, se debe crear la propiedad ConnectionString e ingresar el siguiente string


de conexion "Provider=SQLNCLI10.1;Data Source="+ @[User::Server] +";Password="+
@[User::Pass] +";User ID="+ @[User::User] +" ;Initial Catalog=" + @[User::Base]

24
4.11. Anexo 1 : Elementos de Flujo de Control

Los flujos de control deben seguir las siguientes reglas:

Poner nombres claros en cada uno de los componentes del flujo de control. Esto ayuda
durante la depuracin y deteccin de problemas de los paquetes, especialmente si la
persona que realiza la depuracin no es la persona que cre el paquete.

Los nombres no debern ser menos de 4 ni mayores de 26 caracteres y sus primeros


caracteres deben corresponder a las iniciales indicadas en la tabla precedente.

Usar Sequence Container para organizar el flujo de control del paquete en unidades
lgicas de trabajo, esto hace que sea ms fcil identificar lo que realiza el paquete y ayuda
al control de las operaciones que se llevan a cabo.

Utilizar comentarios o anotaciones en los flujos de control, para identificar claramente el


propsito de cada tarea dentro del paquete.

Al implementar una tarea condicional, usar expresiones en las Precedence Constraints,


no use la propiedad DISABLE de la tarea.

Utilice sentencias simples dentro de la propiedad SQL Statement, si requiere utilizar ms


de una sentencia o si la sentencia es muy compleja, utilice un procedimiento almacenado.

No utilice cursores dentro de las propiedad SQL Statement.

Tarea Iniciales Descripcin


Analysis La tarea Ejecutar DDL de Analysis Services ejecuta instrucciones del lenguaje de definicin de datos (DDL)
Services que pueden crear, quitar o modificar modelos de minera y objetos multidimensionales, como cubos y
Execute DDL ASE dimensiones.
Analysis
Services La tarea Procesamiento de Analysis Services procesa objetos de Analysis Services como cubos, dimensiones
Processing ASP y modelos de minera de datos
La tarea Insercin masiva proporciona una forma muy eficaz de copiar grandes cantidades de datos a una
Bulk Insert BLK tabla o vista de SQL Server.
La tarea Flujo de datos encapsula el motor de flujo de datos que mueve datos entre orgenes y destinos, y
Data Flow DFT permite al usuario transformar, limpiar y modificar datos a medida que se mueven.
Data Mining La tarea Consulta de minera de datos ejecuta consultas de prediccin basadas en modelos de minera de
Query DMQ datos integrados en Analysis Services.
Data Profiling La tarea de generacin de perfiles de datos calcula diversos perfiles que le ayudan a familiarizarse con un
Task DPT origen de datos y a identificar en los datos problemas que deban corregirse.
La tarea Ejecutar SQL ejecuta instrucciones SQL o procedimientos almacenados de un paquete. La tarea
puede contener una sola instruccin SQL o mltiples instrucciones SQL que se ejecutarn de forma
Execute SQL SQL secuencial
Execute T-SQL
Statement TSQL Ejecuta instrucciones de Transact-SQL.
File System FSYS La tarea Sistema de archivos realiza operaciones en archivos y directorios del sistema de archivos.
For Loop
Container FLC Ejecuta un flujo de control repetidamente probando una condicin
Foreach Loop
Container FELC Ejecuta un flujo de control repetidamente mediante un enumerador
Sequence
Container SEQC Agrupa tareas y contenedores en flujos de control que son subconjuntos del flujo de control del paquete

25
4.12. Anexo 2: Flujos de Datos

Los flujos de datos deben seguir las siguientes reglas:

Poner nombres claros en cada uno de los componentes del flujo de datos. Esto ayuda
durante la depuracin y deteccin de problemas de los paquetes, especialmente si la
persona que realiza la depuracin no es la persona que cre el paquete.

Los nombres no debern ser menos de 4 ni mayores de 26 caracteres.

Cuando se requiera ordenar los datos, se debe obtener los datos ya ordenados desde la
fuente de datos y establecer IsSorted = TRUE en la salida del Source Adapter. Realizar un
reordenamiento es un proceso costoso que no se debe realizar en el paquete puesto que
los motores de base de datos son ms eficientes que Integration Services en esta tarea.
Nota:
La configuracin de este valor no reordena los datos, solamente indica que los datos
vienen ordenados desde la fuente de datos.

El flujo de datos a travs de las tareas consume recursos, principalmente memoria, por
lo cual se debe optimizar la cantidad de datos que se deben mover dentro de los flujos.
Para optimizar el uso de memoria de Integration Services, solamente se deben obtener las
columnas necesarias, especificando explcitamente los campos requeridos.

Se prohbe el uso de select * from <Expresion> en cualquier componente. Se entiende


<Expresion> por cualquier estructura soportada por SQL como fuente de consulta, ej:una
tabla, una query anidada, etc. Esto se debe seguir segn normativa SQL.

Se prohbe el uso de la opcin Use a Table or View en acceso a lectura de los datos, en
su lugar utilizar siempre una consulta SQL con los campos que se requieren.

Siempre filtrar los datos en el Source Adapter en lugar de utilizar un Conditional Split
Transform Component, el Data Flow ser beneficiado en el desempeo.

Cuando se usa archivos Raw, Raw File Source Component y Raw File Destination
Component dentro del mismo paquete, configure el Raw File Source y Raw File
destination para poner los nombres de los archivos tipo Raw en variables esto evitara
hardcoding con los nombres de los archivos planos dentro de los dos componentes.

Utilice el almacenamiento en cache (caching) full o parcial en el componente de


transformacin Lookup (SQL Server 2008). Esto mejora la utilizacin y optimizacin de
los recursos del Flujo de Datos.

Las fuentes de datos de Excel y los Connection Manager de Excel solamente funcionan
cuando se ejecutan en modo 32 bits. Para ejecutar correctamente estos paquetes en
mquinas de 64 bits es necesario configurar SSIS para corren en modo 32 bits. En el
entorno de desarrollo es necesario ir a las propiedades de la solucin y dentro de la opcin
debugging establecer la propiedad Run64BitRuntime en false.
Desde la lnea de comando es necesario ingresar la ruta completa del dtexec.exe.

32-bit
c:\Program Files(x86)\Microsoft SQL Server\100\DTS\Binn\dtexec.exe
64-bit
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\dtexec.exe

26
Debe obtener el mnimo de datos que se requieren desde la fuente de datos. Aplique los
filtros y ordenamientos requeridos dentro de la(s) consulta(s) de los datos.

Realice el formateo y traduccin de cdigos utilizando componentes del flujo de


datos.Ejemplo: Si se requiere formatear un entero para tener un largo de 10 caracteres
rellenos de ceros, obtenga el dato como entero desde la fuente de datos y realice el
formateo dentro del flujo de datos.

Realice los agrupamientos en el servidor de base de datos de origen. Los GROUP BY por
lo general son ms rpidos si se aplican en el servidor de base de datos.

Se debe usar modo de acceso fast-load para el componente oledb destination controlando
cada 5000 filas por batch y tamao mximo de insert commit

Utilizar comentarios o anotaciones en los flujos de datos, para identificar claramente el


propsito de cada flujo dentro del paquete

Tarea Iniciales Descripcin


Carga datos en una serie de bases de datos compatibles con ADO.NET que usan una
ADO NET Destination ADO_DST tabla o vista de base de datos
ADO NET Source ADO_SRC Consume datos de un proveedor de datos .NET Framework
Aggregate AGG Transformacin que realiza agregaciones tales como AVERAGE, SUM y COUNT.
Transformacin que hace que la informacin sobre el entorno est a disposicin del
Audit AUD flujo de datos en un paquete.
Character Map CHM Transformacin que aplica funciones de cadena a caracteres
Conditional Split CSPL Transformacin que direcciona las filas de datos a diferentes salidas.
Transformacin que agrega copias de columnas de entrada a la salida de
Copy Column CPYC transformacin.
Transformacin que convierte el tipo de datos de una columna en un tipo de datos
Data Conversion DCNV diferente
Data Mining Model Training DMMT_DST Entrena modelos de minera de datos
Data Mining Query DMQ Transformacin que ejecuta consultas de prediccin de minera de datos.
DataReader Destination DR_DST Expone los datos en un flujo de datos mediante la interfaz ADO.NET DataReader
Derived Column DER Transformacin que rellena las columnas con los resultados de las expresiones.
Dimension Processing DP_DST Carga y procesa una dimensin de SQL Server Analysis Services
Excel Destination EX_DST Escribe datos en un libro de Excel
Excel Source EX_SRC Extrae datos de un archivo de Excel.
Export Column EXPC Transformacin que inserta datos de un flujo de datos en un archivo.
Flat File Destination FF_DST Escribe datos en un archivo plano
Flat File Source FF_SRC Extrae datos de un archivo plano
Fuzzy Grouping FZG Transformacin que normaliza los valores de los datos de una columna.
Transformacin que busca valores en una tabla de referencia mediante una
Fuzzy Lookup FZL coincidencia aproximada.
Import Column IMPC Transformacin que lee los datos de un archivo y los agrega a un flujo de datos
Transformacin que busca valores en una tabla de referencia con una coincidencia
Lookup LKP exacta.
Merge MRG Transformacin que mezcla dos conjuntos de datos ordenados
Transformacin que mezcla dos conjuntos de datos mediante una combinacin
Merge Join MRGJ FULL, LEFT o INNER

27
Tarea Iniciales Descripcin
Multicast MLT Transformacin que distribuye conjuntos de datos a varias salidas
OLE DB Command CMD Transformacin que ejecuta comandos SQL para cada fila de un flujo de datos.
OLE DB Destination OLE_DST Carga datos mediante un proveedor OLE DB
OLE DB Source OLE_SRC Consume datos de un proveedor OLE DB
Partition Processing PP_DST Carga y procesa una particin de Analysis Services
Transformacin que crea un conjunto de datos de ejemplo especificando la cantidad
Percentage Sampling PSMP de filas en la muestra

Pivot PVT Transformacin que crea una versin menos normalizada de una tabla normalizada
Raw File Destination RF_DST Escribe datos en un archivo con formato raw.
Raw File Source RF_SRC Extrae datos desde un archivo raw.
Recordset Destination RS_DST Crea un conjunto de registros ADO
Transformacin que cuenta las filas a medida que se mueven por ella y almacena el
Row Count CNT recuento final en una variable
Transformacin que crea un conjunto de datos de ejemplo especificando la cantidad
Row Sampling RSMP de filas en la muestra
Slowly Changing Dimension SCD Transformacin que configura la actualizacin de una dimensin de variacin lenta.
Sort SRT Transformacin que ordena datos.
SQL Server Compact
Destination SSC_DST Inserta filas en una base de datos de SQL Server Compact
Term Extraction TEX Transformacin que extrae trminos del texto
Transformacin que busca trminos en una tabla de referencia y cuenta los trminos
Term Lookup TEL extrados del texto
Union All ALL Transformacin que mezcla varios conjuntos de datos
Unpivot UPVT Transformacin que crea una versin ms normalizada de una tabla no normalizada
XML Source XML_SRC Extrae datos de un archivo XML

28

Potrebbero piacerti anche