Guia 03-Columnas Derivadas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

1

GUA No. 3

DESARROLLO DE BACK END DE INTELIGENCIA DE NEGOCIOS


Ttulo: Columnas derivadas en Integration Services

I. OBJETIVOS

Que el Estudiante aprenda:
Transformar diferentes orgenes de datos.
Utilizar las diferentes herramientas de migracin de datos.
Integrar columnas derivadas en los paquetes de migracin


II. DESARROLLO


Ejercicio 1:
Creando un SSIS Package.

Conctese a SQL Server Data Tools y cree un Nuevo proyecto con las siguientes
especificaciones:

Template: Integration Services Project
Name: ColumnasCalculadas
Location: C:\proyectos


En la solucin renombre el Package.dtsx como ColumnasCalculadas.dtsx que se
encuentra en la seccin SSIS Packages

Adicione la nueva conexin desde el explorador de soluciones, en la seccin
Connection Managers, presione clic derecho y seleccione New Connection Manager


Aparecer el asistente de conexiones, seleccione el tipo ADO.NET y presione Adicionar

2
Presione el botn new, y configure las siguientes especificaciones:

Provider: .Net Providers -> SqlClient Data Provider
Server name: <el nombre de su servidor>
Log on to the server: Use Windows Authentication
Conctese a la base de datos AdventureWorks
Presione el botn Test Connection para verificar que la conexin se realizo con xito
Presione el botn Ok
De regreso en el asistente, presione el botn Ok


Adicione un control Data Flow Task al proyecto y renombrar la propiedad name por
Promedio Productos, vaya a la seccin Data Flow de su espacio de trabajo brindando
doble clic sobre el control.


Utilizando el Control: ADO NET Source

Adicione un objeto ADO NET Source en el espacio de trabajo de Data Flow en el
proyecto y renmbrelo como ExtraerInformacion, configure las siguientes
propiedades, presionando clic derecho y la opcin Edit:

Seccin: Connecction Managers
En el espacio de conexiones, verifique que este seleccionada la conexin creada
anteriomente
En la seccin Data Access mode, seleccione SQL Command, y adicione la siguiente
consulta en el espacio reservado para ello:


SELECT ProductID,Quantity,ActualCost
FROM Production.TransactionHistoryArchive


3

Presione el botn Preview para comprobar la conexin y la consulta ingresada

Seccin: Columns
Verificar que todas las columnas externas estn mapeadas a las columnas de salida
con el mismo nombre.
Presione Ok para finalizar la edicin del control

Utilizando el Control: Derived Column

Adicione un control Derived Column en la seccin Data Flow, colquele como nombre
TotalCosto y conecte las salidas (flecha azul) de ExtraerInformacion a este nuevo
control.
Configure las propiedades de Derived Column por medio de la opcin Edit de la
siguiente manera:

o Nombre de la columna derivada: TotalCosto
o Adicionarla como una nueva columna de salida
o La expresin a utilizar es: Quantity * ActualCost
o Las dems columnas tendrn el valor por defecto


Utilizando el Control: Aggregate


Adicione un control de tipo Aggregate a su Data Flow con el nombre SumTotales y
conctelo con el control TotalCosto

Configure las propiedades del control por medio de la opcin Edit de la siguiente
manera:

Input Column Output Alias Operation
ProductID ProductID Group by
Quantity SumCantidad Sum
TotalCosto SumTotalCosto Sum


4
Utilizando el Control: Derived Column


Adicione un control Derived Column en la seccin Data Flow, colquele como nombre
PromedioCosto y conecte las salidas (flecha azul) de SumTotales a este nuevo
control.
Configure las propiedades de Derived Column por medio de la opcin Edit de la
siguiente manera:

o Nombre de la columna derivada: PromedioCosto
o Adicionarla como una nueva columna de salida
o La expresin a utilizar es: [SumTotalCosto]/[SumCantidad]
o Las dems columnas tendrn el valor por defecto


Utilizando el Control: Sort


Adicione un control Sort en la seccin Data Flow, colquele como nombre
OrdenaProducto y conecte las salidas (flecha azul) de PromedioCosto a este nuevo
control.
Configure las propiedades del control por medio de la opcin Edit de la siguiente
manera:

Input Column Output Alias Sort Type
ProductID Producto ascending



Destino de informacin
Ejecute el siguiente script para crear el destino donde se almacenara la informacin de
este paquete de migracin


CREATE DATABASE [Destino]
GO
Use [Destino]
GO
5


CREATE TABLE [dbo].[Resultado](
[Producto] [int] NOT NULL,
[SumCantidad] [decimal](19, 2) NULL,
[SumTotalcosto] [money] NULL,
[PromedioCosto] [money] NULL,
CONSTRAINT [PK_resultado] PRIMARY KEY CLUSTERED
(
[Producto] ASC
)) ON [PRIMARY]



Utilizando el Control: ADO NET Destination

Adicione un objeto ADO NET Destination en el espacio de trabajo de Data Flow en el
proyecto y renmbrelo como SalidaInformacion, configure las siguientes propiedades,
presionando clic derecho y la opcin Edit:

Seccin: Connecction Managers
En el espacio de conexiones, cree una conexin hacia la base de datos creada
anteriormente (Destino)
Seleccione la tabla Resultado
En la seccin de Mappings, verifique que las columnas estn generadas
adecuadamente con las salidas de cada campo.
Ejecute el paquete de integracin y verifique que la informacin migrada se encuentre
en la base de datos destino


6

III. ANALISIS DE RESULTADOS

Modifique el ejercicio 1, adicionando el nombre de producto a la tabla de Resultado y
lo pueda incluir en el paquete de migracin
Modifique el ejercicio 1 de manera que se pueda adicionar el mximo y el mnimo
costo de productos
Realice un paquete de integracin utilizando Columnas derivadas y agrupadas
determinar los montos ingresados de rdenes de compras por cada rubro (total sin
cargos, fletes, impuesto, total pactado ) de todas las rdenes de compra por cada
empleado, la consulta deber retornar los datos en base a las columnas solicitadas:
Cdigo del empleado
Nombre del empleado
Subtotal sin impuestos
Impuestos
Fletes
Total pactado

Utilice de insumo la siguiente consulta:

SELECT
POH.EmployeeID 'CODIGO DE EMPLEADO',
(SELECT RTRIM(FirstName) + ' ' +
LTRIM(LastName) FROM Person.Person PC
WHERE PC.BusinessEntityID in
( SELECT BusinessEntityID
FROM HumanResources.Employee HE
WHERE POH.EmployeeID = HE.BusinessEntityID )
) EMPLEADO,
(POH.SubTotal) 'TOTAL SIN IMPUESTOS',
(POH.TaxAmt) 'IMPUESTOS',
(POH.Freight) 'FLETES'
FROM Purchasing.PurchaseOrderHeader POH

7
El resultado obtenido en la nueva tabla debe ser similar a la siguiente consulta:

SELECT
POH.EmployeeID 'CODIGO DE EMPLEADO',
( SELECT RTRIM(FirstName) + ' ' +
LTRIM(LastName) FROM Person.person PC
WHERE PC.BusinessEntityID in
( SELECT BusinessEntityID
FROM HumanResources.Employee HE
WHERE POH.EmployeeID = HE.BusinessEntityID )
) EMPLEADO,
sum(POH.SubTotal) 'TOTAL SIN IMPUESTOS',
sum(POH.TaxAmt) 'IMPUESTOS',
sum(POH.Freight) 'FLETES',
sum(POH.TotalDue) 'TOTAL PACTADO'
FROM Purchasing.PurchaseOrderHeader POH
GROUP BY POH.EmployeeID

También podría gustarte