Sunteți pe pagina 1din 13

Universidad Privada del Norte Facultad de Ingeniería

Laureate Internacional Universities Carrera de Ingeniería de Sistemas

4.4. FASE 4 – CONSTRUCCIÓN E IMPLEMENTACIÓN


La última fase está orientada a la construcción de la base de datos del
DataMart, automatización de los procesos de ETL extracción, carga y
consolidación de la información fuente con el poblamiento del Datamart y
luego construir repositorios multidimensionales de información para Tiendas El
Rocio S.R.L.
Finalmente hacer el procesamiento de la información de la Bodega de Datos y
la implementación de la Interfase de Usuario (reportes y dashboards). Esta
fase es una consecuencia directa de las anteriores.

4.4.1. Creación de la Base de Datos del Datamart


Para la creación de la base de datos del Datamart se utilizó el esquema
estrella.

Figura 29: Base de Datos del Datamart


Fuente: Elaboración Propia

Inteligencia de Negocios
1
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

4.4.2. Poblar la Tabla Tiempo


Para poblar la dimensión Tiempo se utilizó un script que permite
generar las filas de la tabla Tiempo por cada uno de los días incluidos
entre los años indicados en los parámetros de entrada.

/*
Llenar la tabla de tiempo
*/
DROP TABLE Tiempo
SET LANGUAGE spanish

/*Ponemos que el primer día de la semana


es Lunes, para el Domingo usar 7*/
SET DATEFIRST 1

declare @fi datetime, @ff datetime

set @fi = '2007-01-01' --Fecha desde donde se empesará a poblar


Set @ff = '2009-31-12' --Fecha hasta donde se poblará.

while @fi <= @ff


begin
insert into Tiempo (TiempoID, Fecha, Año,TrismetreID,Trimestre, MesID, Mes,
SemanaID , Semana, NumDiaSemana, DiaSemana,temporada)

select year(@fi)*10000+month(@fi)*100+day(@fi) as TimeId,


@fi as Fecha,
year(@fi) as Año,
datepart(q,@fi)+year(@fi)*10 as TrimestreID,
'Trimestre 0'+convert(varchar,datepart(q,@fi))+'-'+ datename(year,@fi) as Trimestre,
year(@fi)*100+month(@fi) as MesID,
datename(mm, @fi)+'-'+datename(year,@fi) Mes,
datename(year,@fi)+datename(ww,@fi) as SemanaID,
case when convert (integer,datename(ww,@fi))<10
then 'Semana 0'+datename(ww,@fi)+'-'+datename(year,@fi)
else 'Semana '+datename(ww,@fi)+'-'+ datename(year,@fi)
end as Semana,
datepart( dw, @fi) as NumDiaSemana,
datename( dw, @fi) as DiaSemana,
--Temporada
--Verano
case when month(@fi) in (1,2)then 'Verano'
When month(@fi)=12 and day(@fi) between 22 and 31 then 'Verano'
When month(@fi)=03 and day(@fi)between 1 and 21 then 'Verano'
--Otoño
when month(@fi) in (4,5)then 'Otoño'
When month(@fi)=3 and day(@fi) between 22 and 31 then 'Otoño'
When month(@fi)=06 and day(@fi)between 1 and 21 then 'Otoño'
--Invierno
when month(@fi) in (7,8)then 'Invierno'
When month(@fi)=6 and day(@fi) between 22 and 30 then 'Invierno'
When month(@fi)=09 and day(@fi)between 1 and 22 then 'Invierno'
--Primavera
when month(@fi) in (10,11)then 'Primavera'
When month(@fi)=09 and day(@fi) between 23 and 30 then 'Primavera'
When month(@fi)=12 and day(@fi)between 1 and 21 then 'Primavera'
else '-' end temporada

set @fi = @fi + 1


end

Inteligencia de Negocios
2
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

4.4.3. Procesos del ETL


Los procesos que pueblan el Datamart se denominan procesos ETL
(Extraction, Transformation and Loading). A continuación se muestra
los procesos (flujo de datos) que extraen la data del sistema
transaccional de Tiendas EL Rocio, la transforman para asegurar la
uniformidad y consistencia de los datos, y cargan dicha información en
el DataMart.
Para poder construir el ETL se ha utilizado como herramienta Microsoft
SQL Server 2005 Integration Services.

• Tarea Ejecutar SQL (Execute SQL Task):

Delete from dbo.FactPago;


Delete from dbo.FactVenta;
Delete from dbo.Producto;
Delete from dbo.Cliente;
Delete from dbo.Divisa;
Delete from dbo.Tarjeta;
Delete from dbo.Trabajador;
Delete from Sucursal
Delete from Tipo_Pago
Delete from Campania

Flujo de Datos
Consultas SQL
CopiaCliente

• Origen -
Bd_Tiendas_El_Rocio
Select
idcliente,
nombre_razon,
ruc,
dni,
direccion,
telefono1
From
cliente

• Destino -
DM_Tiendas_El_Rocio
Select *
From
Cliente

Tabla 51: Consultas SQL y Flujo de Datos de CopiaCliente


Fuente: Elaboración Propia

Inteligencia de Negocios
3
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

Flujo de Datos
Consultas SQL
CopiaTrabajador

• Origen -
Bd_Tiendas_El_Rocio
Select
id_trabajador,
nombre_ape,
dni,
direccion,
telefono,
id_grupo
From
trabajador

• Destino -
DM_Tiendas_El_Rocio
Select *
From
Trabajador

Tabla 52: Consultas SQL y Flujo de Datos de CopiaTrabajador


Fuente: Elaboración Propia

Flujo de Datos
Consultas SQL
CopiaSucursal

• Origen -
Bd_Tiendas_El_Rocio
Select
id_sucursal,
nombre,
ubicacion,
principal
From
sucursal

• Destino -
DM_Tiendas_El_Rocio
Select *
From
Sucursal

Tabla 53: Consultas SQL y Flujo de Datos de CopiaSucursal


Fuente: Elaboración Propia

Consultas SQL Flujo de Datos

Inteligencia de Negocios
4
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

CopiaDivisa

• Origen -
Bd_Tiendas_El_Rocio
Select
id_divisa,
nombre,
simbolo
From
divisa

• Destino -
DM_Tiendas_El_Rocio
Select *
From
Divisa

Tabla 54: Consultas SQL y Flujo de Datos de CopiaDivisa


Fuente: Elaboración Propia

Flujo de Datos
Consultas SQL
CopiaFormaPago

• Origen -
Bd_Tiendas_El_Rocio
Select
id_tarjeta,
id_tipo,
nombre
From
tarjeta

• Origen de OLE DB
Select *
From
aux_tipo_pago

• Destino -
DM_Tiendas_El_Rocio
Select
Id_Tipo_Pago, Tipo_Pago, Operador,
Tarjeta, id_tarjeta
From
Tipo_Pago

Tabla 55: Consultas SQL y Flujo de Datos de CopiaFormaPago


Fuente: Elaboración Propia

Flujo de Datos
Consultas SQL
CopiaProducto

Inteligencia de Negocios
5
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

• Origen -
Bd_Tiendas_El_Rocio
Select
distinct
p.id_producto,
p.descripcion,
t.descripcion as tipo_Articulo,
l.nombre as linea,
c.nombre as categoria,
co.descripcion as color,
d.descripcion as diseño,
ta.descripcion as talla,
di.alto,
di.ancho
From
producto p
left join tipo_Producto t
on p.id_tipo_producto=t.id_tipo_producto
left join linea l on p.id_linea=l.id_linea
left join categoria c
on p.id_categoria=c.id_categoria
left join color co on p.id_Color=co.id_color
left join diseño d on p.id_diseño=d.id_diseño
left join talla ta on p.id_talla=ta.id_talla
left join dimension di
on p.id_dimension=di.id_dimension

• Destino -
DM_Tiendas_El_Rocio
Select
id_Producto, Linea, Categoria,
Tipo_Producto, descripcion,
diseño, color, Talla,
dimension
From
Producto

Tabla 56: Consultas SQL y Flujo de Datos de CopiaProducto


Fuente: Elaboración Propia

Inteligencia de Negocios
6
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

Flujo de Datos
Consultas SQL
CopiaVenta

• Origen -
Bd_Tiendas_El_Rocio
Select
v.id_venta,
dv.Id_detalle_Venta,
dv.id_producto,
v.id_cliente,
v.id_vendedor,
v.fecha_Emision,
convert(int,convert(char(10),
v.fecha_emision,112)) fecha_emision1,
v.id_sucursal,
f.descripcion as forma_pago,
v.igv_monto,
v.monto,
dv.precio_venta,
dv.descuento,
dv.costo
From
recibos r
inner join detalle_recibo_pago dr
on dr.id_Recibo=r.id_Recibo
inner join agrupacion a
on a.id_Agrupacion=r.id_Agrupacion
inner join detalle_agrupacion da
on da.id_agrupacion=a.id_agrupacion
inner join venta v
on v.id_venta=da.id_venta
inner join forma_pago as f
on f.id_pago=v.id_pago
inner join detalle_Venta dv
on dv.id_venta=v.id_venta
Where
v.id_estado=11 and r.id_estado
<>26 and r.tipo = 'INGRESO'
group by
v.id_venta,dv.Id_detalle_Venta,
dv.id_producto,v.id_cliente,
v.id_vendedor,v.fecha_emision,
v.id_sucursal,f.descripcion,v.igv_monto,
v.monto,dv.precio_venta,
dv.descuento,dv.costo

• Destino -
DM_Tiendas_El_Rocio
Select
Id_FactVenta, Id_Tiempo, id_venta,
id_Producto, id_cliente, id_vendedor,
id_Sucursal, id_Campania,
fecha_emision, forma_pago, igv_monto,
monto, precio_venta, descuento, costo
From
FactVenta

Tabla 57: Consultas SQL y Flujo de Datos de CopiaVenta

Inteligencia de Negocios
7
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

Fuente: Elaboración Propia

Flujo de Datos
Consultas SQL
CopiaReciboPago

• Origen -
Bd_Tiendas_El_Rocio
Select
dr.id_detalle_Recibo_pago,
v.id_venta,
a.id_sucursal,
r.fecha_emision,
convert(int,convert(char(10),
r.fecha_emision,112)) fecha_emision1,
isnull(dt.id_tarjeta,'') id_tarjeta,
dr.numero_cheque,
dr.monto_pago,
dr.id_divisa,
r.id_estado
From
recibos r
inner join detalle_recibo_pago dr
on dr.id_Recibo=r.id_Recibo
inner join agrupacion a
on a.id_Agrupacion=r.id_Agrupacion
inner join detalle_agrupacion da
on da.id_agrupacion=a.id_agrupacion
inner join venta v
on v.id_venta=da.id_venta
and a.id_sucursal= v.id_sucursal
inner join detalle_Venta dv
on dv.id_venta=v.id_venta
left join detalle_tarjeta_banco dt
on dt.Id_Detalle_Tarjeta_Banco=
dr.Id_Detalle_Tarjeta_Banco
Where
v.id_estado=11 and r.id_estado <>26
and r.tipo = 'INGRESO'
group by
dr.id_detalle_Recibo_pago,v.id_venta,
a.id_sucursal,r.fecha_emision,dt.id_tarjeta,
dr.numero_cheque,dr.monto_pago,
dr.id_divisa,r.id_estado

• Destino -
DM_Tiendas_El_Rocio
Select
Id_FactPago, Id_FactVenta, Id_venta,
id_tiempo, Fecha_Emision, Id_Tipo_Pago,
Id_Estado_Pago, monto_pago, Id_Divisa,
id_Sucursal
From
FactPago

Tabla 58: Consultas SQL y Flujo de Datos de CopiaReciboPago


Fuente: Elaboración Propia

Inteligencia de Negocios
8
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

Flujo de Datos
Consultas SQL
Asignar Campaña

• Origen OLE DB -
Bd_Tiendas_El_Rocio
Select
c.id_campania ,
v.id_factventa
From
factventa v
left join campania c on v.fecha_emision
between c.fecha_desde and c.fecha_hasta

• Comando de OLE DB
Update
factventa set id_Campania=?
Where
id_factventa=?

Tabla 59: Consultas SQL y Flujo de Datos de Asignar Campaña


Fuente: Elaboración Propia

Flujo de Datos
Consultas SQL
CopiaCampania

• Origen de Archivo
Plano
Ver Figura 30, Figura 31 y Figura 32

• Destino -
DM_Tiendas_El_Rocio
Select
Id_Campania,
Descripcion,
Fecha_Desde,
Fecha_Hasta, Año
From
CampaniaD

Tabla 60: Consultas SQL y Flujo de Datos de CopiaCampania


Fuente: Elaboración Propia

Inteligencia de Negocios
9
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

En las siguientes figuras, se muestra el editor de origen de archivos


planos para la configuración de propiedades utilizadas para la conexión
a un archivo de texto y la obtención del mismo.

Figura 30: Editor de Origen de Archivos Planos


Fuente: Elaboración Propia

Inteligencia de Negocios
10
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

Figura 31: Editor de Origen de Archivos Planos


Fuente: Elaboración Propia

Figura 32: Editor del Administrador de Conexión de


Archivos Planos
Fuente: Elaboración Propia

Inteligencia de Negocios
11
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

4.4.4. Poblar el Datamart


En la siguiente figura se muestra la extracción de la data del sistema
transaccional de Ventas, la transforman para asegurar la uniformidad y
consistencia de los datos, y cargan dicha información en el Datamart.

Figura 33: Poblar el Datamart


Fuente: Elaboración Propia

A continuación se describe cada uno de los flujos de tarea del ETL:

• Tarea Ejecutar SQL (Execute SQL Task): Esta tarea permite


limpiar el datamart antes de trasladarle la información de la base de
datos transaccional.
• CopiaCliente: Este flujo de tarea permite copiar los clientes de la
base de datos transaccional hacia la tabla dimensión Cliente.

Inteligencia de Negocios
12
Universidad Privada del Norte Facultad de Ingeniería
Laureate Internacional Universities Carrera de Ingeniería de Sistemas

• CopiaTrabajador: Este flujo de tarea permite copiar a los


trabajadores de la base de datos transaccional hacia la tabla
dimensión Trabajador.
• CopiaCampania: Este flujo de tarea permite copiar las campañas
registradas en un archivo plano hacia la tabla de dimensión
Campania. Se utilizó el archivo plano debido a que esta entidad no
existía en la base de datos transaccional; sin embargo era necesaria
como dimensión para el análisis de la información.
• CopiaSucursal: Este flujo de tarea permite copiar la sucursal de la
base de datos transaccional hacia la tabla dimensión Sucursal.
• CopiaDivisa: Este flujo de tarea permite copiar la divisa de la base
de datos transaccional hacia la tabla dimensión Divisa.
• CopiaFormaPago: Este flujo de tarea permite copiar los tipos de
pagos (efectivo, cheque, tarjeta) de la base de datos transaccional
hacia la tabla de dimensión Tipo_Pago
• CopiaProducto: Este flujo de tarea permite copiar los productos de
la base de datos transaccional hacia la tabla dimensión Producto.
• CopiaVenta: Este flujo de tarea permite copiar las ventas y detalles
de las ventas de la base de datos transaccional hacia la tabla de
hechos FactVenta.
• CopiaReciboPago: Este flujo de tarea permite copiar los recibos y
detalles de recibo pago (estas tablas guardan información de cómo
fue pagada la venta) de la base de datos transaccional hacia la tabla
de hechos FactPago.
• AsignarCampaña: Este flujo de tarea permite asignarle la tabla a
las filas de la tabla de hechos Ventas la campaña correspondiente.

Inteligencia de Negocios
13

S-ar putea să vă placă și