Sei sulla pagina 1di 10

FACULTAD DE INGENIERIA DE SISTEMAS, CÓMPUTO y TELECOMUNICACIONES

INTELIGENCIA DE NEGOCIOS

Actividad Practica Nº 6

I. OBJETIVO
Escribir una transformación personalizada a través del Script Component

II. EJECUCION DEL LABORATORIO


En el siguiente ejercicio, se implementará una tarea Script Component (Componente Script)
que permitirá transformar los códigos de regiones del archivo de texto “Territorios” a una
descripción detallada de las regiones, el resultado será almacenado en la tabla Territorios (Base
de Datos AWorkMartdemo).

1. En el proyecto original, abra el paquete CopiaProductos.dtsx. Agregue una nueva tarea


de tipo Data Flow Task, y asígnele el nombre “Copiar territorios”.

2. En la pestaña Connection managers, agregue una nueva conexión de tipo Flat File. Se
abrirá la ventana Flat File Connection Manager Editor. Establezca los siguientes valores para
las opciones de esta ventana:
3. En el flujo de datos establezca una conexión de Origen Flat File Source (Origen de archivo
plano) y arrástrelo sobre la ventana de diseño. Renombre el origen resultante como
“Territorios”. Configure seleccionando la conexión “Archivo de territorios”.

4. En el ToolBox, expanda la pestaña Common Transformations. Seleccione el ítem Script


Component (Componente Script) y arrástrelo sobre la ventana de diseño. Se abrirá una
ventana que permite determinar el tipo de componente que se desea crear. Elija la opción
Transformation.

5. Pulse el botón OK. Renombre la transformación como “Transformación de regiones”. A


continuación, conecte el origen “Territorios” con “Transformación de regiones”. Al finalizar, su
editor debe quedar de la siguiente manera
6. A continuación, haga doble clic sobre “Transformación de regiones”. En la opción Input
Columns del lado izquierdo de la ventana de propiedades, marque los checkboxes que
señalan las columnas “Column 0”, “Column 1” y “Column 2” (estas columnas representan los
inputs provenientes del origen “Territorios”).

7. Luego, seleccione la opción Inputs and Outputs del lado izquierdo de la ventana de
propiedades. Expanda Output 0. Presione el botón Add Column para agregar un nuevo
Output a la transformación. Luego, establezca las siguientes propiedades para el output
“Región”.
8. Seleccione la opción Script del lado izquierdo de la ventana de propiedades; luego, en la
opción Script Language, seleccionar “Microsoft Visual Basic 2015” y presione el botón Edit
Script.

9. Se abrirá el entorno de desarrollo de .Net para scripts de SSIS. Escriba el siguiente código
para definir la transformación en la función Input0_ProcessInputRow:
Select Case CType(Row.Column2, Integer)
Case 1
Row.Region = "Eastern"
Case 2
Row.Region = "Western"
Case 3
Row.Region = "Northern"
Case 4
Row.Region = "Sorthern"
End Select

10. Grabe el script presionando el botón respectivo. Cierre el entorno de desarrollo de scripts y
pulse el botón OK para finalizar la edición de la transformación.

11. En el Toolbox, expanda la pestaña Other Destinations. Seleccione el ítem OLE DB


Destination y arrástrelo sobre la ventana de diseño. Renombre el destino como “Tabla de
territorios”. A continuación, conecte “Transformación de regiones” con “Tabla de territorios”.
La ventana del editor debe quedar como sigue:
12. Haga doble clic sobre el destino “Tabla de territorios” para abrir su ventana de propiedades.
Seleccione la opción OLE DB Connection Manager. Establezca los siguientes valores para
las propiedades:

13. Seleccione la opción Mappings del lado izquierdo de la pantalla. Establezca los siguientes
mapeos entre las columnas definidas en “Transformación de regiones” y el destino “Tabla
de territorios”:
14. Presione el botón OK para finalizar la edición del destino. Luego, guarde el paquete y
ejecútelo. Verifique que en la columna Región de la tabla Territorios se han insertado los
valores transformados.

15. Finalmente, realizar la precedencia a la Tarea “Copiar Territorio” con “Borrar Datos”. En
la tarea “Borrar Datos”, modifique la propiedad SQL Statement para eliminar los datos de la
tabla Territorios antes de iniciar las transferencias de datos.
16. Ejecute el paquete nuevamente.
EVALUACION
Crear un proyecto de Integration Services para poblar la tabla “Dimensión Tiempo” (base datos
NEPTUNO). Utilice la herramienta de transformación Script Componente para transformar y
crear nuevos campos.

 Considerar cuatro nuevos campos que almacenaran las siguientes descripciones:


 Nombre del día de semana: Lunes, Martes,…….
 Nombre de mes: Enero, Febrero, Marzo,…..
 Nombre del trimestre: Primer Trimestre, Segundo Trimestre, Tercer Trimestre, Cuarto
Trimestre.
 Nombre del semestre: Primer Semestre, Segundo Semestre.

 Nombres de los campos:


 TiempoDescripcionDiadeSemana (DT_STR,10)
 TiempoDescripcionMes (DT_STR ,10)
 TiempoDescripcionTrimestre (DT_STR, 20)
 TiempoDescripcionSemestre. (DT_STR, 20)
Datos del proyecto:
 Nombre Proyecto: Evaluacion 6 – NombreAlumno
 Nombre Paquete: CopiaTiempo
 Conexión Origen: Tiempo.xls
 Conexión Destino: Base de datos NEPTUNO (Renombre Destino-Neptuno)
 Script para ser utilizado en la herramienta Script Component:

Select Case CType(Row.DiaDeSemana, Integer)


Case 1
Row.TiempoDescripcionDiaDeSemana = "Lunes"
Case 2
Row.TiempoDescripcionDiaDeSemana = "Martes"
Case 3
Row.TiempoDescripcionDiaDeSemana = "Miercoles"
Case 4
Row.TiempoDescripcionDiaDeSemana = "Jueves"
Case 5
Row.TiempoDescripcionDiaDeSemana = "Viernes"
Case 6
Row.TiempoDescripcionDiaDeSemana = "Sabado"
Case 7
Row.TiempoDescripcionDiaDeSemana = "Domingo"
End Select

Select Case CType(Row.Mes, Integer)


Case 1
Row.TiempoDescripcionMes = "Enero"
Case 2
Row.TiempoDescripcionMes = "Febrero"
Case 3
Row.TiempoDescripcionMes = "Marzo"
Case 4
Row.TiempoDescripcionMes = "Abril"
Case 5
Row.TiempoDescripcionMes = "Mayo"
Case 6
Row.TiempoDescripcionMes = "Junio"
Case 7
Row.TiempoDescripcionMes = "Julio"
Case 8
Row.TiempoDescripcionMes = "Agosto"
Case 9
Row.TiempoDescripcionMes = "Setiembre"
Case 10
Row.TiempoDescripcionMes = "Octubre"
Case 11
Row.TiempoDescripcionMes = "Noviembre"
Case 12
Row.TiempoDescripcionMes = "Diciembre"
End Select

Select Case CType(Row.Trimestre, Integer)


Case 1
Row.TiempoDescripcionTrimestre = "Primer Trimestre"
Case 2
Row.TiempoDescripcionTrimestre = "Segundo Trimestre"
Case 3
Row.TiempoDescripcionTrimestre = "Tercer Trimestre"
Case 4
Row.TiempoDescripcionTrimestre = "Cuarto Trimestre"
End Select

Select Case CType(Row.Trimestre, Integer)


Case 1 To 2
Row.TiempoDescripcionSemestre = "Primer Semestre"
Case 3 To 4
Row.TiempoDescripcionSemestre = "Segundo Semestre"
End Select
End Sub
End Class

 Script Tabla Dim Tiempo

Use NEPTUNO
GO
CREATE TABLE [dbo].[DimTiempo](
[Tiempo_Skey] [int] IDENTITY(1,1) NOT NULL,
[Tiempo_FechaActual] [datetime] NOT NULL,
[Tiempo_Anio] [int] NOT NULL,
[Tiempo_Trimestre] [int] NOT NULL,
[Tiempo_Mes] [int] NOT NULL,
[Tiempo_Semana] [int] NOT NULL,
[Tiempo_DiaDeAnio] [int] NOT NULL,
[Tiempo_DiaDeMes] [int] NOT NULL,
[Tiempo_DiaDeSemana] [int] NOT NULL,
[Tiempo_EsFinSemana] [int] NULL,
[Tiempo_EsFeriado] [int] NULL,
[Tiempo_Comentarios] [varchar] (20) NULL,
[Tiempo_SemanaCalendario] [int] NOT NULL,
[Tiempo_SemanasDelAñoLaborales] [int] NOT NULL,
[Tiempo_AñoBisiesto] [tinyint] NOT NULL,
[Tiempo_Descripcion_DiaDeSemana] [varchar](10) NULL,
[Tiempo_Descripcion_Mes] [varchar](10) NULL,
[Tiempo_Descripcion_Trimestre] [varchar](20) NULL,
[Tiempo_Descripcion_Semestre] [varchar](20) NULL
) ON [PRIMARY]

Potrebbero piacerti anche