Creacion de Data WareHouse

Texto completo

(1)

ETL

ETL - - Inteligencia Inteligencia de de Negocio Negocio ingenierosistemasjfsc1983ingenierosistemasjfsc1983@gmail.com@gmail.com

1

1

POBLAMIENTO UTILIZANDO ETL

POBLAMIENTO UTILIZANDO ETL

CREAMOSLA SIGUIENTE BASE DE DATOS:

CREAMOSLA SIGUIENTE BASE DE DATOS:

createdatabase

createdatabaseETLoadETLoad go

go Use

UseETLLoadETLLoad go

go

En esta base de datos se

En esta base de datos se va a cargar todas las tablas que vamos que tiene el va a cargar todas las tablas que vamos que tiene el ETLETL createfunction

createfunctiondbodbo..fn_mesfn_mes((@m@mintint))returnsvarcharreturnsvarchar((1515)) begin

begin

declare

declare@mes@mestabletable((codigocodigointint,,nombrenombrevarcharvarchar((1515)))) insert

insert@mes@mesvaluesvalues((11,,'Enero''Enero'),(),(22,,'Febrero''Febrero'),), (

(33,,'Marzo''Marzo'),(),(44,,'Abril''Abril'),(5),(5,,'Mayo''Mayo'),(),(66,,'Junio''Junio'),), (

(77,,'Julio''Julio'),(),(88,,'Agosto''Agosto'),(),(99,,'Setiembre''Setiembre'),), (

(1010,,'Octubre''Octubre'),(),(1111,,'Noviembre''Noviembre'),(),(1212,,'Diciembre''Diciembre')) return

return((selectselectnombrenombrefromfrom@mes@meswherewherecodigocodigo==@m@m)) end end go go --createfunction

createfunctiondbodbo..fn_diaSemfn_diaSem((@d@dintint))returnsvarcharreturnsvarchar((1515)) begin

begin

declare

declare@semana@semanatabletable((codigocodigointint,,nombrenombrevarcharvarchar((1515)))) insert

insert@semana@semanavaluesvalues((11,,'Lunes''Lunes'),(),(22,,'Martes''Martes'),), (

(33,,'Miércoles''Miércoles'),(),(44,,'Jueves''Jueves'),(),(55,,'Viernes''Viernes'),), (

(66,,'Sábado''Sábado'),(),(77,,'Domingo''Domingo')) return

return((selectselectnombrenombrefromfrom@semana@semanawherewherecodigocodigo==@d@d)) end

end go go

/*---/*---DEPAR---DEPARTAMENTO---TAMENTO---*/---*/

createtable

createtableDepartamentoDepartamento(( IdDepartamento

IdDepartamentoncharnchar((66)notnull)notnullprimarykeyprimarykey,, NombreDepartamento

NombreDepartamentonvarcharnvarchar((5050)notnull);)notnull);

/*---/*---*/---*/

/*---/*---PROVI---PROVINCIA---NCIA---*/---*/

createtable

createtableProvinciaProvincia(( IdProvincia

IdProvinciancharnchar((66)notnull)notnullprimarykeyprimarykey,, NombreProvincia

NombreProvincianvarcharnvarchar((5050)notnull,)notnull, IdDepartamento

IdDepartamentoncharnchar((66))foreignkeyreferencesforeignkeyreferencesDepartamentoDepartamento((IdDepartamentoIdDepartamento)notnull);)notnull);

/*---/*---*/---*/

/*---/*---DISTR---DISTRITO---ITO---*/---*/

createtable

createtableDistritoDistrito(( IdDistrito

IdDistritoncharnchar((77)notnull)notnullprimarykeyprimarykey,, NombreDistrito

NombreDistritonvarcharnvarchar((5050)notnull,)notnull, IdProvincia

IdProvinciancharnchar((66))foreignkeyreferencesforeignkeyreferencesProvinciaProvincia((IdProvinciaIdProvincia)notnull);)notnull);

(2)

ETL

ETL - - Inteligencia Inteligencia de de Negocio Negocio ingenierosistemasjfsc1983ingenierosistemasjfsc1983@gmail.com@gmail.com

2

2

/*---/*---CLIENT---CLIENTE---E---*/---*/

createtable

createtableClienteCliente(( IdCliente

IdClientencharnchar((66))primarykeyprimarykeynotnull,notnull, ApellidoCliente

ApellidoClientenvarcharnvarchar((5050)notnull,)notnull, NombreCliente

NombreClientenvarcharnvarchar((5050)notnull,)notnull, DniCliente

DniClientencharnchar((88)notnull,)notnull, IdDepartamento

IdDepartamentoncharnchar((66))foreignkeyreferencesforeignkeyreferencesDepartamentoDepartamento((IdDepartamentoIdDepartamento)notnull,)notnull, IdProvincia

IdProvinciancharnchar((66))foreignkeyreferencesforeignkeyreferencesProvinciaProvincia((IdProvinciaIdProvincia)notnull,)notnull, IdDistrito

IdDistritoncharnchar((77))foreignkeyreferencesforeignkeyreferencesDistritoDistrito((IdDistritoIdDistrito)notnull,)notnull, MailCliente

MailClientenvarcharnvarchar((5050)notnull,)notnull, TelCliente

TelClientenvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---CARGO---CARGO---*/-*/

createtable

createtableCargoCargo(( IdCargo

IdCargoncharnchar((66))primarykeyprimarykeynotnull,notnull, NombreCargo

NombreCargonvarcharnvarchar((5050)notnull);)notnull);

/*---/*---*/---*/

/*---/*---EMPLEA---EMPLEADO---DO---*/---*/

createtable

createtableEmpleadoEmpleado(( IdEmpleado

IdEmpleadoncharnchar((66))primarykeyprimarykeynotnull,notnull, ApellidoEmpleado

ApellidoEmpleadonvarcharnvarchar((5050)notnull,)notnull, NombreEmpleado

NombreEmpleadonvarcharnvarchar((5050)notnull,)notnull, IdCargo

IdCargoncharnchar((66))foreignkeyreferencesforeignkeyreferencesCargoCargo((IdCargoIdCargo)notnull,)notnull, DniEmpleado

DniEmpleadoncharnchar((88)notnull,)notnull, IdDepartamento

IdDepartamentoncharnchar((66))foreignkeyreferencesforeignkeyreferencesDepartamentoDepartamento((IdDepartamentoIdDepartamento)notnull,)notnull, IdProvincia

IdProvinciancharnchar((66))foreignkeyreferencesforeignkeyreferencesProvinciaProvincia((IdProvinciaIdProvincia)notnull,)notnull, IdDistrito

IdDistritoncharnchar((77))foreignkeyreferencesforeignkeyreferencesDistritoDistrito((IdDistritoIdDistrito)notnull,)notnull, MailEmpleado

MailEmpleadonvarcharnvarchar((5050)notnull,)notnull, TelEmpleado

TelEmpleadonvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---PROVEE---PROVEEDOR---DOR---*/---*/

createtable

createtableProveedorProveedor(( IdProveedor

IdProveedorncharnchar((66))primarykeyprimarykey,, NombreProveedor

NombreProveedornvarcharnvarchar((5050)notnull,)notnull, RucProveedor

RucProveedorncharnchar((1111)notnull,)notnull, ApeliidoContacto

ApeliidoContactonvarcharnvarchar((5050)notnull,)notnull, NombreContacto

NombreContactonvarcharnvarchar((5050)notnull,)notnull, DireProveedor

DireProveedornvarcharnvarchar((5050)notnull,)notnull, MailProveedor

MailProveedornvarcharnvarchar((5050)notnull,)notnull, TelProveedor

TelProveedornvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---CATEGO---CATEGORIA---RIA---*/---*/

createtable

createtableCategoriaCategoria(( IdCategoria

IdCategoriancharnchar((66))primarykeyprimarykeynotnull,notnull, NombreCategoria

NombreCategorianvarcharnvarchar((5050)notnull);)notnull);

(3)

ETL

ETL - - Inteligencia Inteligencia de de Negocio Negocio ingenierosistemasjfsc1983ingenierosistemasjfsc1983@gmail.com@gmail.com

2

2

/*---/*---CLIENT---CLIENTE---E---*/---*/

createtable

createtableClienteCliente(( IdCliente

IdClientencharnchar((66))primarykeyprimarykeynotnull,notnull, ApellidoCliente

ApellidoClientenvarcharnvarchar((5050)notnull,)notnull, NombreCliente

NombreClientenvarcharnvarchar((5050)notnull,)notnull, DniCliente

DniClientencharnchar((88)notnull,)notnull, IdDepartamento

IdDepartamentoncharnchar((66))foreignkeyreferencesforeignkeyreferencesDepartamentoDepartamento((IdDepartamentoIdDepartamento)notnull,)notnull, IdProvincia

IdProvinciancharnchar((66))foreignkeyreferencesforeignkeyreferencesProvinciaProvincia((IdProvinciaIdProvincia)notnull,)notnull, IdDistrito

IdDistritoncharnchar((77))foreignkeyreferencesforeignkeyreferencesDistritoDistrito((IdDistritoIdDistrito)notnull,)notnull, MailCliente

MailClientenvarcharnvarchar((5050)notnull,)notnull, TelCliente

TelClientenvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---CARGO---CARGO---*/-*/

createtable

createtableCargoCargo(( IdCargo

IdCargoncharnchar((66))primarykeyprimarykeynotnull,notnull, NombreCargo

NombreCargonvarcharnvarchar((5050)notnull);)notnull);

/*---/*---*/---*/

/*---/*---EMPLEA---EMPLEADO---DO---*/---*/

createtable

createtableEmpleadoEmpleado(( IdEmpleado

IdEmpleadoncharnchar((66))primarykeyprimarykeynotnull,notnull, ApellidoEmpleado

ApellidoEmpleadonvarcharnvarchar((5050)notnull,)notnull, NombreEmpleado

NombreEmpleadonvarcharnvarchar((5050)notnull,)notnull, IdCargo

IdCargoncharnchar((66))foreignkeyreferencesforeignkeyreferencesCargoCargo((IdCargoIdCargo)notnull,)notnull, DniEmpleado

DniEmpleadoncharnchar((88)notnull,)notnull, IdDepartamento

IdDepartamentoncharnchar((66))foreignkeyreferencesforeignkeyreferencesDepartamentoDepartamento((IdDepartamentoIdDepartamento)notnull,)notnull, IdProvincia

IdProvinciancharnchar((66))foreignkeyreferencesforeignkeyreferencesProvinciaProvincia((IdProvinciaIdProvincia)notnull,)notnull, IdDistrito

IdDistritoncharnchar((77))foreignkeyreferencesforeignkeyreferencesDistritoDistrito((IdDistritoIdDistrito)notnull,)notnull, MailEmpleado

MailEmpleadonvarcharnvarchar((5050)notnull,)notnull, TelEmpleado

TelEmpleadonvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---PROVEE---PROVEEDOR---DOR---*/---*/

createtable

createtableProveedorProveedor(( IdProveedor

IdProveedorncharnchar((66))primarykeyprimarykey,, NombreProveedor

NombreProveedornvarcharnvarchar((5050)notnull,)notnull, RucProveedor

RucProveedorncharnchar((1111)notnull,)notnull, ApeliidoContacto

ApeliidoContactonvarcharnvarchar((5050)notnull,)notnull, NombreContacto

NombreContactonvarcharnvarchar((5050)notnull,)notnull, DireProveedor

DireProveedornvarcharnvarchar((5050)notnull,)notnull, MailProveedor

MailProveedornvarcharnvarchar((5050)notnull,)notnull, TelProveedor

TelProveedornvarcharnvarchar((1515)notnull);)notnull);

/*---/*---*/---*/

/*---/*---CATEGO---CATEGORIA---RIA---*/---*/

createtable

createtableCategoriaCategoria(( IdCategoria

IdCategoriancharnchar((66))primarykeyprimarykeynotnull,notnull, NombreCategoria

NombreCategorianvarcharnvarchar((5050)notnull);)notnull);

(4)

ETL

ETL - - Inteligencia Inteligencia de de Negocio Negocio ingenierosistemasjfsc1983ingenierosistemasjfsc1983@gmail.com@gmail.com

3

3

/*---/*---MARCA---MARCA---*/---*/

createtable

createtableMarcaMarca(( IdMarca

IdMarcancharnchar((66))primarykeyprimarykeynotnull,notnull, NombreMarca

NombreMarcanvarcharnvarchar((5050)notnull);)notnull);

/*---/*---*/---*/

/*---/*---PRODU---PRODUCTO---CTO---*/---*/

createtable

createtableProductoProducto(( IdProducto

IdProductoncharnchar((66))primarykeyprimarykeynotnull,notnull, DescriProducto

DescriProductovarcharvarchar((5050)notnull,)notnull, IdMarca

IdMarcancharnchar((66))foreignkeyreferencesforeignkeyreferencesMarcaMarca((IdMarcaIdMarca)notnull,)notnull, IdProveedor

IdProveedorncharnchar((66))foreignkeyreferencesforeignkeyreferencesProveedorProveedor((IdProveedorIdProveedor)notnull,)notnull, IdCategoria

IdCategoriancharnchar((66))foreignkeyreferencesforeignkeyreferencesCategoriaCategoria((IdCategoriaIdCategoria)notnull,)notnull, PrecioUnidad

PrecioUnidadmoneymoneynotnull,notnull, UnidadesEnExistencia

UnidadesEnExistenciasmallintsmallintnotnull);notnull);

/*---/*---*/---*/

/*---/*---ORDEN---ORDEN---*/---*/

createtable

createtableOrdenOrden(( IdOrden

IdOrdenncharnchar((66))primarykeyprimarykeynotnull,notnull, IdCliente

IdClientencharnchar((66))foreignkeyreferencesforeignkeyreferencesClienteCliente((IdClienteIdCliente)notnull,)notnull, IdEmpleado

IdEmpleadoncharnchar((66))foreignkeyreferencesforeignkeyreferencesEmpleadoEmpleado((IdEmpleadoIdEmpleado)notnull,)notnull, IdDistrito

IdDistritoncharnchar((77))foreignkeyreferencesforeignkeyreferencesDistritoDistrito((IdDistritoIdDistrito)notnull,)notnull, FechaPedido

FechaPedidodatedatenotnull,notnull, FechaEntrega

FechaEntregadatedatenotnull);notnull);

/*---/*---*/---*/

/*---/*---DETALLE---DETALLEORDEN---ORDEN---*/---*/

createtable

createtableDetalleOrdenDetalleOrden(( IdOrden

IdOrdenncharnchar((66))foreignkeyreferencesforeignkeyreferencesOrdenOrden((IdOrdenIdOrden)notnull,)notnull, IdProducto

IdProductoncharnchar((66))foreignkeyreferencesforeignkeyreferencesProductoProducto((IdProductoIdProducto)notnull,)notnull, PrecioUnidad

PrecioUnidadmoneymoneynotnull,notnull, Cantidad

Cantidadsmallintsmallintnotnull);notnull);

(5)

ETL

ETL - - Inteligencia Inteligencia de de Negocio Negocio ingenierosistemasjfsc1983ingenierosistemasjfsc1983@gmail.com@gmail.com

4

4

INGRESAMOS LOS REGISTROS PARA CADA TABLA CREADA CON EL SIGUIENTE CODIGO

INGRESAMOS LOS REGISTROS PARA CADA TABLA CREADA CON EL SIGUIENTE CODIGO

Use

UseETLoadETLoad go

go

/*---/*---DEPART---DEPARTAMENTO---AMENTO---*/---*/

insertinto

insertintoDepartamentoDepartamentovaluesvalues (

('DEP007''DEP007',,'CALLAO''CALLAO'),(),('DEP015''DEP015',,'LIMA''LIMA');); --select * from departamento

--select * from departamento

/*---/*---*/----*/

/*---/*---PROVIN---PROVINCIA---CIA---*/--*/

insertinto

insertintoprovinciaprovinciavaluesvalues (

('PRV066''PRV066',,'CALLAO''CALLAO',,'DEP007''DEP007'),('PRV127'),('PRV127',,'LIMA''LIMA',,'DEP015''DEP015');); --select * from provincia

--select * from provincia

/*---/*---*/----*/

/*---/*---DISTRI---DISTRITO---TO---*/-*/

insertinto

insertintoDistritoDistritovaluesvalues

(

('DIS0659''DIS0659',,'CALLAO''CALLAO',,'PRV066''PRV066'),(),('DIS0660''DIS0660',,'BELLAVISTA''BELLAVISTA',,'PRV066''PRV066'),(),('DIS0661''DIS0661',,'CARMEN DE LA LEGUA'CARMEN DE LA LEGUA

REYNOSO'

REYNOSO',,'PRV066''PRV066'),),

(

('DIS0662''DIS0662',,'LA PERLA''LA PERLA',,'PRV066''PRV066'),(),('DIS0663''DIS0663',,'LA'LA

PUNTA'

PUNTA',,'PRV066''PRV066'),(),('DIS0664''DIS0664',,'VENTANILLA''VENTANILLA',,'PRV066''PRV066'),(),('DIS1223''DIS1223',,'LIMA''LIMA',,'PRV127''PRV127'),(),('DIS1224''DIS1224',,'ANCON''ANCON'

,

,'PRV127''PRV127'),(),('DIS1225''DIS1225',,'ATE''ATE',,'PRV127''PRV127'),(),('DIS1226''DIS1226',,'BARRANCO''BARRANCO',,'PRV127''PRV127'),(),('DIS1227''DIS1227',,'BREÑA''BREÑA',,'PRV127''PRV127'

),(

),('DIS1228''DIS1228',,'CARABAYLLO''CARABAYLLO',,'PRV127''PRV127'),(),('DIS1229''DIS1229',,'CHACLACAYO''CHACLACAYO',,'PRV127''PRV127'),(),('DIS1230''DIS1230',,'CHORRILLOS''CHORRILLOS',,'PR'PR

V127'

V127'),(),('DIS1231''DIS1231',,'CIENEGUILLA''CIENEGUILLA',,'PRV127''PRV127'),(),('DIS1232''DIS1232',,'COMAS''COMAS',,'PRV127''PRV127'),(),('DIS1233''DIS1233',,'EL'EL

AGUSTINO'

AGUSTINO',,'PRV127''PRV127'),(),('DIS1234''DIS1234',,'INDEPENDENCIA''INDEPENDENCIA',,'PRV127''PRV127'),(),('DIS1235''DIS1235',,'JESUS'JESUS

MARIA'

MARIA',,'PRV127''PRV127'),(),('DIS1236''DIS1236',,'LA MOLINA''LA MOLINA',,'PRV127''PRV127'),(),('DIS1237''DIS1237',,'LA'LA

VICTORIA'

VICTORIA',,'PRV127''PRV127'),(),('DIS1238''DIS1238',,'LINCE''LINCE',,'PRV127''PRV127'),(),('DIS1239''DIS1239',,'LOS'LOS

OLIVOS'

OLIVOS',,'PRV127''PRV127'),(),('DIS1240''DIS1240',,'LURIGANCHO''LURIGANCHO',,'PRV127''PRV127'),(),('DIS1241''DIS1241',,'LURIN''LURIN',,'PRV127''PRV127'),(),('DIS1242''DIS1242',,'MAGD'MAGD

ALENA DEL MAR'

ALENA DEL MAR',,'PRV127''PRV127'),(),('DIS1243''DIS1243',,'MAGDALENA'MAGDALENA

VIEJA'

VIEJA',,'PRV127''PRV127'),(),('DIS1244''DIS1244',,'MIRAFLORES''MIRAFLORES',,'PRV127''PRV127'),(),('DIS1245''DIS1245',,'PACHACAMAC''PACHACAMAC',,'PRV127''PRV127'),(),('DIS1246''DIS1246',,''

PUCUSANA'

PUCUSANA',,'PRV127''PRV127'),(),('DIS1247''DIS1247',,'PUENTE PIEDRA''PUENTE PIEDRA',,'PRV127''PRV127'),(),('DIS1248''DIS1248',,'PUNTA HERMOSA''PUNTA HERMOSA',,'PRV127''PRV127'),),

(

('DIS1249''DIS1249',,'PUNTA NEGRA''PUNTA NEGRA',,'PRV127''PRV127'),(),('DIS1250''DIS1250',,'RIMAC''RIMAC',,'PRV127''PRV127'),(),('DIS1251''DIS1251',,'SAN'SAN

BARTOLO'

BARTOLO',,'PRV127''PRV127'),(),('DIS1252''DIS1252',,'SAN BORJA''SAN BORJA',,'PRV127''PRV127'),(),('DIS1253''DIS1253',,'SAN'SAN

ISIDRO'

ISIDRO',,'PRV127''PRV127'),(),('DIS1254''DIS1254',,'SAN JUAN DE LURIGANCHO''SAN JUAN DE LURIGANCHO',,'PRV127''PRV127'),(),('DIS1255''DIS1255',,'SAN JUAN DE'SAN JUAN DE

MIRAFLORES'

MIRAFLORES',,'PRV127''PRV127'),(),('DIS1256''DIS1256',,'SAN LUIS''SAN LUIS',,'PRV127''PRV127'),(),('DIS1257''DIS1257',,'SAN MARTIN DE'SAN MARTIN DE

PORRES'

PORRES',,'PRV127''PRV127'),(),('DIS1258''DIS1258',,'SAN MIGUEL''SAN MIGUEL',,'PRV127''PRV127'),(),('DIS1259''DIS1259',,'SANTA ANITA''SANTA ANITA',,'PRV127''PRV127'),),

(

('DIS1260''DIS1260',,'SANTA MARIA DEL MAR''SANTA MARIA DEL MAR',,'PRV127''PRV127'),(),('DIS1261''DIS1261',,'SANTA ROSA''SANTA ROSA',,'PRV127''PRV127'),(),('DIS1262''DIS1262',,'SANTIAGO'SANTIAGO

DE SURCO'

DE SURCO',,'PRV127''PRV127'),(),('DIS1263''DIS1263',,'SURQUILLO''SURQUILLO',,'PRV127''PRV127'),(),('DIS1264''DIS1264',,'VILLA EL'VILLA EL

SALVADOR'

SALVADOR',,'PRV127''PRV127'),(),('DIS1265''DIS1265',,'VILLA MARIA DEL TRIUNFO''VILLA MARIA DEL TRIUNFO',,'PRV127''PRV127'););

--select * from distrito

--select * from distrito

/*---/*---*/----*/

/*---/*---CLIENT---CLIENTE---E---*/---*/

insertinto

insertintoClienteClientevaluesvalues (

('CL0001''CL0001',,'Flores Donayre''Flores Donayre',,'Henry'Henry

Julio'

Julio',,'41998587''41998587',,'DEP007''DEP007',,'PRV066''PRV066',,'DIS0659''DIS0659',,'jmorales@hotmail.com''jmorales@hotmail.com',,'965885232''965885232'),),

(

('CL0002''CL0002',,'Rios Herrera''Rios Herrera',,'Pedro'Pedro

Hirving'

Hirving',,'45668899''45668899',,'DEP007''DEP007',,'PRV066''PRV066',,'DIS0659''DIS0659',,'jrios@hotmail.com''jrios@hotmail.com',,'989562541''989562541'),),

(

('CL0003''CL0003',,'Ramirez Toscano''Ramirez Toscano',,'Yanet'Yanet

Stefani'

Stefani',,'41258896''41258896',,'DEP015''DEP015',,'PRV127''PRV127',,'DIS1258''DIS1258',,'rtoscano@hotmail.com''rtoscano@hotmail.com',,'985697321''985697321'),),

(

('CL0004''CL0004',,'Sanchez Condezo''Sanchez Condezo',,'Jesus'Jesus

Miguel'

Miguel',,'47586323''47586323',,'DEP015''DEP015',,'PRV127''PRV127',,'DIS1257''DIS1257',,'scondezo@hotmail.com''scondezo@hotmail.com',,'956985321''956985321'),),

(

('CL0005''CL0005',,'Santos Palacios''Santos Palacios',,'Carlos'Carlos

Alberto'

Alberto',,'45632403''45632403',,'DEP015''DEP015',,'PRV127''PRV127',,'DIS1264''DIS1264',,'jreyes@hotmail.com''jreyes@hotmail.com',,'989801241''989801241');); --select * from Cliente

--select * from Cliente

(6)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

5

/*---CARGO---*/

insertintoCargovalues

('CAR001','Gerente General'),

('CAR002','Sub Gerente de Marketing'), ('CAR003','Encargado De Ventas'), ('CAR004','Soporte Tecnico'), ('CAR005','Encargado De Almacen'), ('CAR006','Limpieza en General'); --select * from Cargo

/*---*/ /*---EMPLEADO---*/ insertintoEmpleadovalues ('EMP001','Ostos Peres','Alonso Robert','CAR002','45897856','DEP007','PRV066','DIS0659','ostos_8@hotmail.com','987845122'), ('EMP002','Florencio Ayala','Rey Sonia','CAR003','46235689','DEP007','PRV066','DIS0659','florencio_4@hotmail.com','986532152' ), ('EMP003','Bello De la Cruz','Lesly Consuelo','CAR001','45895675','DEP007','PRV066','DIS0659','bello_dela@hotmail.com','98658718 5'), ('EMP004','Caro Visitacion','Diana Soledad','CAR005','46235689','DEP015','PRV127','DIS1264','carovisitacion@hotmail.com','98652 4871'), ('EMP005','Breas Silva','Carlos Angelo','CAR006','46235689','DEP015','PRV127','DIS1264','breassilva@hotmail.com','987412548' );

--select * from Empleado

/*---*/

/*---PROVEEDOR---*/ insertintoProveedorvalues

('PVD001','Computer sac','20489745619','Evangelista Hijar','Hefner Euler','Bolivia','ehijar@gmail.com','988957411'),

('PVD002','IDAT PERÚ sac','20455385219','Jacobo Eugenio','Maria Lucero','Colombia','jbucho@intelecperu.com' ,'987654321'),

('PVD003','CISCO PERU sac','20859721219','Maguiña Santos','Williams Arquímides','Colombia','msantos@ciscoperu.com','984125891'),

('PVD004','CESCA EIRL','20885621479','Rimac Rosales','Noemi Ofelia','Peru','rrosales@cesca.com','984184591'),

('PVD005','INTERNATIONAL EIRL','20741236589','Saavedra Espinoza','Liz Sully','Brasil','sespinoza@international.com','987456211');

--select * from Proveedor

/*---*/ /*---CATEGORIA---*/ insertintoCategoriavalues ('CTG001','Laptops'), ('CTG002','CPU'), ('CTG003','Memoria'), ('CTG004','Placa'), ('CTG005','Mouse'), ('CTG006','Teclado'); --select * from Categoria

(7)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

6

/*---MARCA---*/ insertintoMarcavalues ('MRC001','Toshiba'), ('MRC002','Hp'), ('MRC003','Intel'), ('MRC004','PcChip'), ('MRC005','Micronics'), ('MRC006','Kinstong'); --select * from Marca

/*---*/

/*---PRODUCTO---*/ insertintoProductovalues

('PR0001','TOSHIBA LAPTOP S45-A4111SL','MRC001','PVD002','CTG001',2899.00,10), ('PR0002','Placa Inte Core I5','MRC003','PVD003','CTG004',390.00,15),

('PR0003','Memoria DDR 4 32GB','MRC006','PVD004','CTG003',200.00,8), ('PR0004','MOUSE Optico','MRC005','PVD002','CTG005',60.00,20),

('PR0005','TECLADO Multimedia','MRC005','PVD001','CTG006',60.00,18);

/*---*/

--select * from Producto

/*---ORDEN---*/ insertintoOrdenvalues ('OD0001','CL0001','EMP001','DIS0659','2014-03-08','2014-03-10'), ('OD0002','CL0001','EMP001','DIS0659','2014-09-06','2014-09-12'), ('OD0003','CL0001','EMP001','DIS0659','2015-05-08','2015-05-09'), ('OD0004','CL0002','EMP001','DIS0659','2014-04-07','2014-04-08'), ('OD0005','CL0002','EMP001','DIS0659','2015-02-09','2014-02-11'), ('OD0006','CL0002','EMP001','DIS0659','2015-02-01','2014-02-02'); --select * from Orden

/*---*/ /*---DETALLEORDEN---*/ insertintoDetalleOrdenvalues ('OD0001','PR0001',2899.00,3), ('OD0002','PR0001',2899.00,4), ('OD0003','PR0003',400.00,2), ('OD0004','PR0005',300.00,5), ('OD0005','PR0004',360.00,6), ('OD0006','PR0002',200.00,1); --select * from DetalleOrden

/*---*/

CREAMOS LA SIGUIENTE BASE DE DATOS:

createdatabase ETLDataWare go

UseETLDataWare go

(8)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

7

createfunction dbo.fn_mes(@mint)returnsvarchar(15) begin declare@mestable(codigoint,nombrevarchar(15)) insert@mesvalues(1,'Enero'),(2,'Febrero'), (3,'Marzo'),(4,'Abril'),(5,'Mayo'),(6,'Junio'), (7,'Julio'),(8,'Agosto'),(9,'Setiembre'), (10,'Octubre'),(11,'Noviembre'),(12,'Diciembre') return(selectnombrefrom@meswherecodigo=@m) end go --createfunction dbo.fn_diaSem(@dint)returnsvarchar (15) begin declare@semanatable(codigoint,nombrevarchar(15)) insert@semanavalues(1,'Lunes'),(2,'Martes'), (3,'Miércoles'),(4,'Jueves'),(5,'Viernes'), (6,'Sábado'),(7,'Domingo') return(selectnombrefrom@semanawherecodigo=@d) end go /*---UBIGEO---*/ createtableDimUbigeo( Ubigeo_SKeyintidentity (1,1)primarykeynotnull, IdDepartamento nchar(10)notnull, NombreDepartamentonvarchar(50)notnull, IdProvincianchar(10)notnull, NombreProvincianvarchar(50)notnull, IdDistritonchar(10)notnull, NombreDistrito nvarchar(50)notnull); --Select * from DimUbigeo

/*---*/ /*---CLIENTE---*/ createtableDimCliente( EClienteintidentity (1,1)primarykeynotnull, IdClientenchar(6)notnull, NombreClientenvarchar(150)notnull, IdDistritonchar(10)notnull, NombreDistrito nvarchar(50)notnull, DniClientenchar(8)notnull);

--Select * from DimCliente

/*---*/ /*---EMPLEADO---*/ createtableDimEmpleado( EEmpleadointidentity (1,1)primarykeynotnull, IdEmpleadonchar(6)notnull, NombreEmpleado nvarchar(150)notnull, IdDistritonchar(10)notnull, NombreDistrito nvarchar(50)notnull, DniEmpleadonchar(8)notnull);

--Select * from DimEmpleado

(9)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

8

/*---PRODUCTO---*/ createtableDimProducto( EProductointidentity (1,1)primarykeynotnull, IdProductonchar(6)notnull, DescriProducto varchar(100)notnull, IdMarcanchar(6)notnull, NombreMarcanvarchar(50)notnull, IdCategorianchar(6)notnull, NombreCategorianvarchar(50)notnull, PrecioUnidadmoneynull);

--Select * from DimProducto

/*---*/ /*---TIEMPO---*/ createtableDimTiempo( FechaIdintprimarykeynotnull, Fechadatetimenotnull, Añosmallintnotnull, Trimestretinyintnotnull, Mestinyintnotnull, NomMesvarchar(15)notnull, Diatinyintnotnull, DiaSemtinyintnotnull, NomDiaSemvarchar(15)notnull); --Select * from DimTiempo

/*---*/ /*---VentaOrden---*/ createtableFactVentaOrden( EClienteintreferencesDimClientenotnull, EEmpleadointreferencesDimEmpleadonotnull, Ubigeo_SKeyintreferencesDimUbigeonotnull, EProductointreferencesDimProductonotnull, FechaIdintreferencesDimTiemponotnull, Totalmoneynotnull); --Select * fromFactVentaOrden /*---*/

UNA VEZ CREADO LAS BASE INGRESAMOS AL MICROSOFT VISUAL STUDIO:

NOMBRE

ETLFinal

(10)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

9

CREAMOS UNA CONEXIÓN CON LA BASE DE DATO DE LA CUAL SE VAN A OBTENER LOS

REGISTROS

PROBAMOS LA CONEXIÓN

RESULTADO…

(11)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

10

Se procede a realizar

Creamos una tarea Ejecutar SQL, como se detalla para luego elegimos y hacemos click

derecho-EDITAR

(12)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

11

Seleccionamos la opción SQL Statement

(13)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

12

CREAMOS CINCO TAREAS FLUJO DE DATOS Y LA RELACIONAMOS CON LA TAREA EJECUTAR SQL

OBJETO GRABAR DIMCLIENTE

CONTINUAMOS E INGRESAMOS al objeto

Grabar DimCliente,

para crear los siguientes objetos que es

Origen de OLE DB

 Copiar Columna

 Destino de OLE DB,

como se detalla e INGRESAMOS AL ORIGEN

(14)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

13

Ingresamos al origen OLE DB para poder realizar la conexión de la base de datos ORIGEN es

decir ETLoad que creamos en SQL.

(15)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

14

SELECCIONAMOS EL NOMBRE DEL SERVIDOR Y LA BASE DE DATOS - ACEPTAR

LUEGO DE FORMA PREDETERMINADA APARECE SELCCIONADO LA CONEXIÓN QUE

CONFIGURAMOS

(16)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

15

ESCOGEMOS LA TABLA DE CUAL SE VAN A EXTRAER LOS REGISTROS EN ESTE CASO LA TABLA

CLIENTE - Modo de Acceso a datos: Seleccionamos Comando SQL GENERAR CONSULTA

Generamos la consulta y agregamos las tablas CLIENTE y DISTRITO: como se ve en la base de

datos

(17)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

16

SELECCIONAMOS LAS SIGUIENTES TABLAS COMO SE VISUALIZA - AGREGAR

(18)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

17

 ADEMÁS PARA UNIR EL APELLIDO Y EL NOMBRE REALIZAMOS LO SIGUIENTE.

(19)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

18

VAMOS AL DESTINO OLE BD y seleccionamos la tabla DimCliente

En la opción asignaciones verificamos si la tabla origen CLIENTE está relacionada con la tabla

destino DimCliente - PARA FINALIZAR ACEPTAR

(20)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

19

Ejecutamos y sale el resultado LA EJECUCIÓN SE COMPLETO CORRECTAMENTE

OBJETO GRABAR DIMEMPLEADO

CONTINUAMOS E INGRESAMOS al objeto

Grabar DimEmpleado,

para crear los siguientes objetos que es

Origen de OLE DB

 Copiar Columna

 Destino de OLE DB,

como se detalla e INGRESAMOS AL ORIGEN

(21)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

20

Seleccionamos la opción MODO DE ACCESO A DATOS

 para generar la consulta.

(22)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

21

Seleccionamos los campos en merito a la tabla DimEmpleado como se ve a continuación

UNA VEZ SELCCIONADO PROCEDEMOS A UNIR EL APELLIDO Y NOMBRE DEL EMPLEADO COMO EL CODIGO QUE SE VISULIZA EN LA CONSULTA.

(23)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

22

VISTA PREVIA…

(24)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

23

En la opción asignaciones verificamos si la tabla origen EMLPEADO está relacionada con la

tabla destino DimEmpleado

 PARA FINALIZAR ACEPTAR

OBJETO GRABAR DIMPRODUCTO

CONTINUAMOS E INGRESAMOS al objeto

Grabar DimProducto,

para crear los siguientes objetos que es

Origen de OLE DB

 Copiar Columna

 Destino de OLE DB,

como se detalla e INGRESAMOS AL ORIGEN.

(25)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

24

Seleccionamos la opción MODO DE ACCESO A DATOS

 para generar la consulta.

(26)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

25

AGREGAMOS LAS TABLAS

(27)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

26

LA CONSULTA PROCESADA

(28)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

27

VAMOS AL DESTINO OLE BD y seleccionamos la tabla DimProducto

En la opción asignaciones verificamos si la tabla origen PRODUCTO está relacionada con la

tabla destino DimProducto

 PARA FINALIZAR ACEPTAR

(29)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

28

OBJETO GRABAR DIMUBIGEO

CONTINUAMOS E INGRESAMOS al objeto

Grabar DimUbigeo,

para crear los siguientes objetos que es

Origen de OLE DB

  Copiar Columna

  Destino de OLE DB,

como se detalla e INGRESAMOS AL ORIGEN.

(30)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

29

SELECCIONAMOS LAS TABLAS: Producto, Marca y Categoría DEACUERDO A LA TABLA DIMUBIGEO

(31)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

30

SELECIONAMOS LOS CAMPOS A TRABAJAR

(32)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

31

VISTA PREVIA…

VAMOS AL DESTINO OLE BD y seleccionamos la tabla DimUbigeo

(33)

-ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

32

En la opción asignaciones verificamos si la tabla origen UBIGEO está relacionada con la tabla

destino DimUbigeo

 PARA FINALIZAR ACEPTAR

OBJETO GRABAR DIMTIEMPO

CONTINUAMOS E INGRESAMOS al objeto

Grabar DimTiempo,

para crear los siguientes objetos que es

Origen de OLE DB

 Copiar Columna

 Destino de OLE DB,

como se detalla e INGRESAMOS AL ORIGEN.

(34)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

33

Seleccionamos la opción MODO DE ACCESO A DATOS

 para generar la consulta.

(35)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

34

AGREGAMOS LAS TABLAS

CONSULTA SQL. SELECTDISTINCT

YEAR(FechaPedido)* 10000 +MONTH(FechaPedido)* 100 +DAY(FechaPedido)ASCodigoFecha, FechaPedido,YEAR(FechaPedido)ASAño, DATEPART(QUARTER,FechaPedido)ASTrimestre, MONTH(FechaPedido)ASMes,dbo.fn_mes(MONTH(FechaPedido))ASNomMes, DAY(FechaPedido)ASDia, DATEPART(WEEKDAY,FechaPedido)ASDiaSemana, dbo.fn_diaSem(DATEPART(WEEKDAY,FechaPedido))ASNomDiaSemana FROMdbo.Orden

(36)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

35

VAMOS AL DESTINO OLE BD y seleccionamos la tabla DimTiempo

En la opción asignaciones verificamos si la tabla origen TIEMPO está relacionada con la tabla

destino DimTiempo

 PARA FINALIZAR ACEPTAR

(37)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

36

(38)
(39)

ETL - Inteligencia de Negocio ingenierosistemasjfsc1983@gmail.com

38

EJECUTAMOS EL PROCEDIMIENTO ALMACENADO EN SQL PARA DESPUÉS LO LLAMAMOS DESDE

MICROSOFT STUDIO

createprocedureUSP_Carga_Venta as BEGIN insertintoFactVentaOrden ( ECliente,EEmpleado,Ubigeo_SKey,EProducto,FechaId,Total ) SELECTdistinct ECliente,EEmpleado,Ubigeo_SKey,EProducto,FechaId,(dord.PrecioUnidad*dord.Cantidad)asT otal FROMETLLoad..Ordenord innerjoinETLoad..DetalleOrdendord onord.IdOrden=dord.IdOrden innerjoinDimClientedcondc.IdCliente=ord.IdCliente innerjoinDimEmpleadodeonde.IdEmpleado=ord.IdEmpleado innerjoinDimUbigeoduondu.IdDistrito=ord.IdDistrito innerjoinDimProductodpondp.IdProducto=dord.IdProducto innerjoinDimTiempodtiondti.Fecha=ord.FechaPedido WHERE (ord.FechaPedidoISNOTNULL) END go

(40)
(41)
(42)

Figure

Actualización...

Referencias

Actualización...

Related subjects :