34
Profesor: Ayudantes: Ing. Pablo Cigliuti (@pabcig) Ing. Ariel Torres (@jarieltorres) Ing. Sebastián Bagnasco Ing. Nicolás Iguchi Ing. Juan Bella Ing. Juan Pierdoménico

Clase06 lab ssis

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Clase06 lab ssis

Profesor:

Ayudantes:

Ing. Pablo Cigliuti (@pabcig)

Ing. Ariel Torres (@jarieltorres)

Ing. Sebastián Bagnasco

Ing. Nicolás Iguchi

Ing. Juan Bella

Ing. Juan Pierdoménico

Page 2: Clase06 lab ssis

Clase VI

ETL

Práctica de Laboratorio

Page 3: Clase06 lab ssis

Datawarehouse(SQL Server, Oracle,

DB2, Teradata)

SQL/Oracle SAP/DynamicsSistemas

PropietariosTexto XML

ETL

Informes DashboardsCuadros de

MandoExcel

¿En donde estamos?

REPASO CLASE ETL

Page 4: Clase06 lab ssis

Herramienta Gráfica de ETL

Presentado en SQL Server 2005

Sucesor de Data Transformation

Services (DTS)

¿Qué es SSIS?

INTEGRATION SERVICES

Page 5: Clase06 lab ssis

Menu

Designer

DEVELOPMENT STUDIO

Page 6: Clase06 lab ssis

Designer

Flujo de control: define el flujo de trabajo del ETL,

determinando las tareas a ejecutar y el orden en el cual

deberán ser ejecutadas.

Flujo de datos: Se combinan orígenes de datos,

Extracciones, Transformaciones que modifican y agregan

datos y Cargas que se ingresan en los sistemas destino

(DW)

Controladores de eventos: Flujos de trabajo que se

ejecutan cuando se produce un evento dentro de un

paquete o de una tarea dentro del paquete. Por ejemplo,puede crear un controlador de eventos que envíe un

mensaje de correo electrónico cuando se origine un error

en una tarea.

INTEGRATION SERVICES

Page 7: Clase06 lab ssis

INTEGRATION SERVICES

Designer

Page 8: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Control Flow – Tareas más usadas

Encapsula el motor de flujo de

datos que mueve datos entre

orígenes y destinos

Al hacer doble clic, redirecciona

directamente al data flow

Page 9: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Control Flow – Tareas más usadas

Ejecuta instrucciones SQL

Puede contener una sola instrucción SQL o múltiples

instrucciones SQL que se ejecutarán de forma secuencial

Page 10: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Esta tarea ejecuta un Script en Visual Basic .NET 2008 o

en Microsoft Visual C#

Con este tipo de tarea se logran llevar a cabo tareas que

no es posible realizar con las tareas existentes en SSIS

Esta tarea permite mandar un mail, pudiendo

personalizar tanto el mensaje como los destinatarios

Usada comúnmente para informar el estado de ejecución

Esta tarea permite ejecutar un proceso desarrollado

fuera de SQL Server Integration Services

Usado tanto para realizar tareas no soportadas por SSIS

como también para ejecutar aplicaciones de terceros

Control Flow – Tareas más usadas

Page 11: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Las precedencias nos permiten ordenar el flujo de ejecución.

Puede haber tres resultados posibles:

Ejecución exitosa (verde)

Ejecución fallida (rojo)

Ejecución completada (azul)

Puede establecerse varias precedencias que determinen si una tarea es ejecutada

o no.

Control Flow – Tareas más usadas

Page 12: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Subconjunto del flujo de control de paquete

Permite deshabilitar grupos de tareas.

Permite administrar propiedades en varias tareas.

Proporciona un ámbito para variables usadas por un

grupo de tareas y contenedores relacionados.

Se deben ‘arrastrar” las tareas dentro

del container

Control Flow – Sequence Container

Page 13: Clase06 lab ssis

INTEGRATION SERVICES

Designer

Page 14: Clase06 lab ssis

INTEGRATION SERVICES

Connection Manager

El connection manager define todos los

atributos necesarios para conectarse a un

origen de datos a usar por el package

Deben definirse una conexión por cada

base de datos a la que el ETL debe

conectarse

Deben definirse también una conexión por

cada archivo que el ETL utilice

Page 15: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Extrae datos de varias bases de datos relacionales

compatibles con OLE DB

Data Flow – Sources

http://msdn.microsoft.com/es-es/library/ms141696%28v=sql.90%29.aspx

Page 16: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Data Flow – Sources

Extrae datos de archivos de texto, definidos en base a la

conexión asociada

http://msdn.microsoft.com/es-es/library/ms139941%28v=sql.90%29.aspx

Page 17: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Extrae datos de un archivo XML

No requiere tener una conexión definida

Data Flow – Sources

http://msdn.microsoft.com/es-es/library/ms140277%28v=sql.100%29.aspx

Page 18: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Crea nuevos valores de columna

aplicando expresiones a las columnas

de entrada de la transformación.

El resultado puede agregarse como

una nueva columna o puede

reemplazar el valor de otra columna

existente.

http://msdn.microsoft.com/es-

es/library/ms141713(SQL.90).aspx

Data Flow - Transformations

http://msdn.microsoft.com/es-es/library/ms141069%28v=sql.100%29.aspx

Page 19: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Aplica funciones de agregado, como

Average o SUM.

Además, proporciona la cláusula GROUP

BY, para especificar los grupos en los

que se debe realizar el agregado.

http://msdn.microsoft.com/es-

es/library/ms141713(SQL.90).aspx

Data Flow - Transformations

http://msdn.microsoft.com/es-es/library/ms138031%28v=sql.100%29.aspx

Page 20: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Ordena los datos de entrada en orden

ascendente o descendente, y copia los

datos ordenados a la salida de la

transformación.

http://msdn.microsoft.com/es-

es/library/ms141713(SQL.90).aspx

Data Flow - Transformations

http://msdn.microsoft.com/es-es/library/ms140182%28v=sql.100%29.aspx

Page 21: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Proporciona una salida que se genera

combinando dos conjuntos de datos

ordenados mediante una combinación

FULL, LEFT o INNER.

Importante: Para realizar un merge join

las tablas orígenes deben estar

ordenadas por el mismo campo.

http://msdn.microsoft.com/es-

es/library/ms141713(SQL.90).aspx

Data Flow - Transformations

http://msdn.microsoft.com/es-es/library/ms141703%28v=sql.100%29.aspx

Page 22: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

En un data flow, pueden redireccionarse

aquellos registros inválidos. De esta forma,

podrán ser tratados posteriormente para su

corrección.

Para ello, en la solapa de configuración de

errores, debe setearse el componente para

que redireccione los registros erróneos

Data Flow – Direccionamiento de flujo de datos

Page 23: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

En base a una seria de condiciones,

divide el flujo de datos en varias

direcciones

Data Flow – Direccionamiento de flujo de datos

http://msdn.microsoft.com/es-es/library/ms137886%28v=sql.100%29.aspx

Page 24: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Ejecuta una sentencia SQL por cada registro del flujo de datos en

una conexión OLE DB definida en el package

Data Flow – Transformations

http://msdn.microsoft.com/es-es/library/ms141138%28v=sql.100%29.aspx

Page 25: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Data Flow – Destinations

Carga datos en una serie de bases de datos compatibles

con OLE DB

http://msdn.microsoft.com/es-es/library/ms141237%28v=sql.100%29.aspx

Page 26: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Carga datos en un archivo de texto, definido de acuerdo

a la conexión asociada

Data Flow – Destinations

http://msdn.microsoft.com/es-es/library/ms141668%28v=sql.100%29.aspx

Page 27: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Mala Modularidad

Page 28: Clase06 lab ssis

COMPONENTES DE UN PAQUETE SSIS

Buena Moludaridad

Page 29: Clase06 lab ssis

¿PREGUNTAS?

Q&A

Page 30: Clase06 lab ssis

ANEXO – EXPRESIONES COMUNES

Validación de Nulos

ISNULL(ParentProductCategoryID) == TRUE

Función IF

AddressType == "Main Office" ? AddressID : 0

Clave de Fecha

YEAR(OrderDate) * 10000 + MONTH(OrderDate) * 100 + DAY(OrderDate)

Documentación

Se deben utilizar los comentarios de SSIS

Page 31: Clase06 lab ssis

ANEXO - COMPONENTES DE PAQUETES SSIS

Trae de una base de datos una o varias

columnas en base a otras existentes en el

data flow (operación Look-up).

Utilizado principalmente para traer las SKs

de las dimensiones.

Data Flow – Look Up Component

http://msdn.microsoft.com/es-es/library/ms141237%28v=sql.100%29.aspx

Page 32: Clase06 lab ssis

ANEXO – MONITOREO DE EJECUCIÓN

Rojo: el componente falló en su ejecución

Para ver el detalle del error, debe revisarse la solapa:

“Progress”

Al ejecutar un package, el componente cambiará de color de acuerdo a su estado:

Verde: el componente finalizó correctamente

Blanco: el componente no fue ejecutado

Amarillo: el componente está ejecutándose

Page 33: Clase06 lab ssis

ANEXO – DEBUG TOOLS: BREAKPOINTS

En las Tasks de SSIS, pueden

definirse breakpoints que

frenarán la ejecución al

ocurrir un evento de una

tarea.

Se pueden especificar tantos

breakpoints como eventos

contenga la tarea.

Para activarlos, debe hacerse

click derecho sobre la tarea y

seleccionar la opción: “Edit

Breakpoints”

http://msdn.microsoft.com/es-es/library/ms141754%28v=sql.120%29.aspx

Page 34: Clase06 lab ssis

ANEXO – DEBUG TOOLS: DATA VIEWERS

Los Data Viewers permiten

ver en tiempo de

ejecución los datos que

atraviesan el data flow

Para activarlo, debe

hacerse doble click sobre

la flecha del flujo de datos

y seleccionar la solapa:

“Data Viewers”