Doc06_02_-_Laboratorio_ETL_Avanzado.docx

22
ACCEDER A OTRAS FUENTES DE DATOS (ARCHIVOS EXCEL y ARCHIVOS DE TEXTO) Una de las bondades que nos muestra SSIS es poder conectarnos no solo a diferentes bases de datos sino también a otras fuentes de datos: Excel, archivos planos, archivos .dbf, etc. Para, luego de ello, poder manear los datos como si se estuviera trabaando con una tabla. Para continuar con la carga del !rea de trabao, vamos a reali"ar la carga de la taba S#$%#iempo a partir de un archivo excel Actividad Cargar STG_Tie!" Esta tarea debe tener el siguiente c&digo ' tener como conexi&n el archivo Excel.  (brir el p ro'ecto P oblar%)ort *ind%+ (P  (brir el p aquete E #%Pob lar%Stage .dtsx Para cargar la informaci&n de Productos se necesitar! reali"ar los siguientes pasos: -el uadro de /erramientas seleccionamos de 0avoritos la tarea Tarea Flujo de Datos ' la arrastramos a -ise1ador. ambiar el nombre de la tarea a argar S#$%#IE2P+. lic derecho sobre la tarea ' seleccionamos la opci&n Editar.  (utom!ticamente la pantalla del -ise1ador cambia a la pesta1a F#$%" de Dat"& ' el uadro de /erramientas cambia de tareas disponibles. $eneramos la conexi&n a Excel. En el (dministrados de conexiones, lic derecho Nueva Conexión ' seleccionamos como #ipo Excel

Transcript of Doc06_02_-_Laboratorio_ETL_Avanzado.docx

Page 1: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 1/22

ACCEDER A OTRAS FUENTES DE DATOS (ARCHIVOS

EXCEL y ARCHIVOS DE TEXTO)Una de las bondades que nos muestra SSIS es poder conectarnos no solo adiferentes bases de datos sino también a otras fuentes de datos: Excel, archivosplanos, archivos .dbf, etc. Para, luego de ello, poder manear los datos como si seestuviera trabaando con una tabla.Para continuar con la carga del !rea de trabao, vamos a reali"ar la carga de lataba S#$%#iempo a partir de un archivo excelActividad Cargar STG_Tie!"Esta tarea debe tener el siguiente c&digo ' tener como conexi&n el archivo Excel.

 (brir el pro'ecto Poblar%)ort*ind%+(P

 (brir el paquete E#%Poblar%Stage.dtsx

Para cargar la informaci&n de Productos se necesitar! reali"ar los siguientespasos:

-el uadro de /erramientas seleccionamos de 0avoritos la tareaTarea Flujo de Datos ' la arrastramos a -ise1ador.

ambiar el nombre de la tarea a argar S#$%#IE2P+.

lic derecho sobre la tarea ' seleccionamos la opci&n Editar.

 (utom!ticamente la pantalla del -ise1ador cambia a la pesta1a F#$%"de Dat"& ' el uadro de /erramientas cambia de tareas disponibles.

$eneramos la conexi&n a Excel. En el (dministrados de conexiones,lic derecho Nueva Conexión ' seleccionamos como #ipo Excel

Page 2: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 2/22

Page 3: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 3/22

lic en (gregar, para configurar la conexi&n. (parecer! la siguientepantalla.

En 3uta de (cceso del (rchivo Excel colocamos la ruta dondese encuentra el archivo a leer.

lic en (ceptar.

En el administrador de conexiones aparecer! la conexi&n creada

-e +thers Sources seleccionamos Origen de Excel .

ambiamos el nombre de la tarea a eer #iempo.

-amos doble clic sobre la tarea eer #iempo o lic derecho editar. (parece la pantalla con las propiedades de la tarea seleccionada, configure lassiguientes propiedades:

Page 4: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 4/22

lic en (ceptar.omo los archivos Excel no manean tipo de datos, lo que necesitamos hacer es adicionar una tarea de transformaci&n de datos para poder convertir losdatos de las columnas a los que son requeridos en la tabla S#$%#iempo.-el uadro de /erramientas, en ommon seleccionamos la tareaConversión de Datos ' lo asociamos a eer #iempo. -ebe reali"ar lasconversiones que se indica en esta imagen:

Page 5: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 5/22

lic en (ceptar. (hora notemos que en la tabla S#$%#iempo existen campos como#iempo%-escripcion%-ia-eSemana, #iempo%-escripcion%2es,#iempo%-escripcion%#rimestre , #iempo%-escripcion%Semestre que no estanen el origen pero que pueden crearse a partir de las columnas que ah4

aparecen.Para generar estas columnas vamos a utili"ar la tarea de Componente desecuencia de Comandos que nos permitir! incluir c&digo de programaci&n .)etdentro de nuestros paquetes:-e la barra de herramientas seleccionamos la tarea Componente desecuencia de Comandos

 (parece la pantalla en la cual indica si el c&digo a generarse se va a relacionar a un origen, un destino o una transformaci&n. Para nuestro caso seleccionamos#ransformaci&n.

Page 6: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 6/22

-oble clic en la tarea.

En columnas de entrada seleccionamos los campos )-ia-eSemana,

)2es ' )trimestre

En entradas ' Salidaso Seleccionamos olumnas de Salidas ' creamos las siguientes

columnas:

Page 7: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 7/22

o -ebe quedar como muestra la siguiente pantalla.:

Seleccionamos Script ' elegimos como lenguae de programaci&n 5isual 6asic 7898 'le damos clic en Edit Script:

 

Page 8: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 8/22

Se abrir! el entorno de desarrollo de .)et para scripts de SSIS. Escribael siguiente c&digo para definir la transformaci&n de las columnas en lafunci&n Input0_ProcessInputRow.

Page 9: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 9/22

Page 10: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 10/22

lic en (ceptar.0inalmente, debemos indicar hacia donde se copiaran los datos. -el uadro de/erramientas, en +thers -estinations de fluo de datos seleccionamos la tareaDestino de OLE DB, ' lo asociamos con la tarea Componentes de Secuenciade Comandos.

ambiamos el nombre de la tarea a $rabar S#$%#iempo.

-amos doble clic sobre la tarea $rabar S#$%#iempo o lic derechoeditar.

 (parece la pantalla con las propiedades de la tarea seleccionada, configure lassiguientes propiedades:

En la opci&n de (signaciones, relacionamos las columnas del origen o de lastransformaciones; con las columnas del destino tal como muestra la siguientepantalla.

Page 11: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 11/22

lic en (ceptar.-ebe mostrarse de la siguiente manera

Page 12: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 12/22

Para poder probar el paquete, ub4quese en 0luo de control, seleccione latarea argar S#$%#iempo ' eec<telo. -ebe mostrar la siguiente pantalla

 (l finali"ar la tarea pare la eecuci&n 2en< -epurar = -etener 

-epuraci&n;

$rabe el pro'ecto 2en< (rchivo = $uardar #odo;.

Actividad Cargar STG_Categ"ria'r"d$ct"Esta tarea debe tener el siguiente c&digo ' tener como conexi&n a un archivo de#exto.

-el uadro de /erramientas seleccionamos de ommon la tarea

Page 13: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 13/22

Tarea Flujo de Datos ' la arrastramos a -ise1ador.

ambiar el nombre de la tarea a argar S#$%(#E$+3I(.

lic derecho sobre la tarea ' seleccionamos la opci&n Editar.

 (utom!ticamente la pantalla del -ise1ador cambia a la pesta1a F#$%"de Dat"& ' el uadro de /erramientas cambia de tareas disponibles.

$eneramos la conexi&n a un (rchivo Plano. En el (dministrador de conexiones,lic derecho )ueva onexi&n ' seleccionamos Nueva Conexión a Arcivos!lanos. (parece la pantalla para configurar la lectura del archivo que leeremos.as propiedades deben quedar como se muestra en la siguiente pantalla.

En olumnas, verifique realice la vista previa del archivo.

Page 14: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 14/22

En avan"adas, cambie el tipo de dato ' la longitud de los campos del archivoplano a los tipos que se necesita en la tabla S#$%ategoriaProductos.

 (l aceptar se crea la nueva conexi&n al archivo plano.

Para desarrollar el E#, arrastramos hacia el dise1ador las siguientes tareas:+rigen de (rchivo Plano, -estino de +E -6 ' los configuramos de lasiguiente manera.

Page 15: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 15/22

lic en (ceptar.-ebe mostrarse de la siguiente manera

Para poder probar el paquete, ub4quese en 0luo de control, seleccione latarea argar S#$%ategoria ' eec<telo. -ebe mostrar la siguiente pantalla

Page 16: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 16/22

 (l finali"ar la tarea pare la eecuci&n 2en< -epurar = -etener -epuraci&n;

$rabe el pro'ecto 2en< (rchivo = $uardar #odo;.

Actividad C"!#etar Categ"r(a de 'r"d$ct"

En la tabla S#$%Producto existe el campo ategor4a%S>e' que no tiene valor. Elvalor que se tiene que asignar a esa columna es el valor generado en la tablaS#$%ategoriaProducto cargada en el paso anterior.

Para completar estos datos vamos a utili"ar un Procedimiento (lmacenado, elcual leer! la tabla S#$%ategoriaProducto ' actuali"ar! la informaci&n de losproductos que tiene asociado:

-el uadro de /erramientas seleccionamos de 0avoritos la tareaTarea Ejecutar S"L ' la arrastramos a -ise1ador.

ambiar el nombre de la tarea a ompletar ategoria a Productos.

lic derecho sobre la tarea ' seleccionamos la opci&n Editar.

 (parece la pantalla con las propiedades de la tarea seleccionada, configure lassiguientes propiedades:

Page 17: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 17/22

Para poder probar el paquete, ub4quese en 0luo de control, seleccione la tareaompletar ategor4a a Productos ' eec<telo. -ebe mostrar la siguientepantalla:

Page 18: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 18/22

 (l finali"ar la tarea pare la eecuci&n 2en< -epurar = -etener puraci&n;

$rabe el pro'ecto 2en< (rchivo = $uardar #odo;.

Actividad Cargar STG_VENTASUna ve" cargada todas las tablas auxiliares, necesitamos cargar la tabla principal,

es decir la tabla S#$%5entas, esta tabla va a contener la relaci&n entre la tablaS#$%5E)#(S ' las dem!s tablas, adem!s de las medidas que ser!n utili"adascuando se desarrollen los ubos +(P.Para completar estos tarea vamos a utili"ar un Procedimiento (lmacenado, el cualleer! todas la tablas cargadas, adem!s de las tablas de +rdenes de la base dedatos )orth*ind ' para cada una de ellas obtendr! su c&digo original ' el Surrogate>e' creado para cada uno de ellos al momento de cargase a la base de datos)orth*ind%Stage:

-el uadro de /erramientas seleccionamos de 0avoritos la tareaTarea Ejecutar S"L ' la arrastramos a -ise1ador.

ambiar el nombre de la tarea a argar%S#$%5E)#(S.lic derecho sobre la tarea ' seleccionamos la opci&n Editar.

 (parece la pantalla con las propiedades de la tarea seleccionada, configure lassiguientes propiedades:

Page 19: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 19/22

Para poder probar el paquete, ub4quese en 0luo de control, seleccione la tareaargar S#$%5entas ' eec<telo. -ebe mostrar la siguiente pantalla:

 

 (l finali"ar la tarea pare la eecuci&n 2en< -epurar = -etener -epuraci&n;

$rabe el pro'ecto 2en< (rchivo = $uardar #odo;.

Page 20: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 20/22

* GENERAR EL FLU+O DE CONTROL DE UN 'A,UETE*uando reali"amos la eecuci&n de las tareas, estas se eecutaron en formaindependiente una de otra, sin un orden l&gico. Pero si anali"amos la eecuci&n detodas las tareas lo primero que debemos eecutar es la tarea impiar #ablas que esla tarea que me iniciali"a las tablas. Por otro lado no se puede eecutar la tareaompletar ?efe de Empleado, si antes no se ha terminado de eecutarcorrectamente la tarea argar S#$%Empleado. Es decir, cuando se desarrolla unpaquete de SSIS debemos indicarle cual es la secuencia en la que las tareasdeben ser eecutadas.Para definir el fluo de eecuci&n de las tareas, SSIS manea el @orAflo* o 0luo de#rabao. Este permitir controlar el orden en que las tareas se deben ir eecutando,definiendo as4 un esquema de precedencias. En el eemplo, seleccionamos laprimera tarea que debe eecutarse impiar #ablas;. 5eremos que de esta sale unaflecha verde.

Para definir la secuencia solo ha' que arrastrarla hacia la tareas; que se eecutaran;después.

Page 21: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 21/22

Una variante de este comportamiento lo encontraremos cuando seleccionemosla fecha verde ' demos clic derecho. (parecer! un men< flotante en el cual sepueden apreciar B valores.

C"rrect": a tarea se eecuta solo si la tarea anterior se ha eecutadosatisfactoriamente.Err"r : a tarea se eecuta solo si la tarea anterior se ha eecutado con alg<nerror.C"-c#$&i.-/ a tarea se eecuta si la tarea anterior se ha ter minadode eecutar sin tomar en cuenta que ha'a culminado satisfactoriamente ocon error.Para nuestro caso todas las tareas se deben eecutar si la tarea anterior se ha

eecutado satisfactoriamente. Por lo tanto la secuencia a configurar ser! la quemuestra la siguiente pantalla.

Page 22: Doc06_02_-_Laboratorio_ETL_Avanzado.docx

7/25/2019 Doc06_02_-_Laboratorio_ETL_Avanzado.docx

http://slidepdf.com/reader/full/doc0602-laboratorioetlavanzadodocx 22/22

Para eecutar el paquete completo ir a #enu Deplo$ % &niciar Depuración o 0C. (l finali"ar la tarea pare la eecuci&n 2en< -epurar = -etener -epuraci&n;

$rabe el pro'ecto 2en< (rchivo = $uardar #odo;.