Documente Academic
Documente Profesional
Documente Cultură
FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA INDUSTRIAL
INTEGRANTES:
BEDON GONZALES JAIME
CIEZA TIRADO MELBER OM
REYES MOROCHO KEVIN
DOCENTE: ING. FRANCISCO RODRIGUEZ NOVOA
CICLO: X
SECCION: “A”
2019
TRUJILLO-PERÚ
0
Contenido
1. TITULO DEL PROYECTO ................................................................................................. 2
2. OBJETIVO GENEREAL ..................................................................................................... 2
3. PLANIFICACIÓN DEL PROYECTO .................................................................................. 2
3.1. SELECCIÓN DE LA ESTRATEGIA DE IMPLEMENTACIÓN ...................................... 2
3.2. SELECCIÓN DE LA METODOLOGIA DE DESARROLLO .......................................... 2
3.3. SELECCIÓN DEL ÁMBITO DE IMPLEMENTACIÓN .................................................. 2
3.4. DESCRIPCIÓN DE STAKEHOLDERS ........................................................................ 3
4. DETERMINACIÓN DE LOS REQUERIMIENTOS ............................................................. 4
4.1. REQUERIMIENTOS DE LOS STAKEHOLDERS ........................................................ 4
4.2. REQUERIMIENTOS FUNCIONALES DEL USUARIO FINAL...................................... 4
4.3. REQUERIMIENTOS NO FUNCIONALES.................................................................... 5
4.4. ANÁLISIS DE REQUERIMIENTOS ............................................................................. 6
5. DISEO TÉCNICO DE LA ARQUITECTURA ...................................................................... 8
5.1. NIVEL DE DATOS: Base de Datos fuente (transaccional)........................................... 8
6. MODELADO DIMENSIONAL ............................................................................................. 9
6.1. IDENTIFICACIÓN DE LOS COMPONENTES DEL MODELO..................................... 9
6.1.1. ELECCIÓN DEL DATAMART ............................................................................... 9
6.1.2. ELECCIÓN DEL OBJETIVO DE LA TABLA DE HECHOS .................................. 10
6.1.3. ELECCIÓN DE LAS DIMENSIONES .................................................................. 11
6.1.4. ELECCIÓN DE LOS HECHOS ............................................................................ 12
6.2. DIAGRAMA DE LA TABLA DE HECHOS .................................................................. 12
6.3. DIAGRAMA ESTRELLA............................................................................................. 18
7. DISEÑO FISICO .............................................................................................................. 19
8. PROCESO DE ETRACCIÓN, TRANSFORMACIÓN Y CARGA DE DATOS ................... 30
8.1. DEFINICIÓN DE LOS PASOS DE TRANSFORMACIÓN .......................................... 30
8.2. DEFINICIÓN DE LOS WORKFLOWS ....................................................................... 31
8.3. CREACIÓN DE LOS PAQUETES DE SERVICIO DE TRANSFORMACIÓN DE
DATOS ................................................................................................................................ 33
8.3.1. SENTENCIAS DE CADA PASO DE WORKFLOW ............................................. 33
9. REPORTES EN POWER BI ............................................................................................ 63
1
1. TITULO DEL PROYECTO
Solución de inteligencia de Negocio para mejorar la calidad del servicio en el área de ventas
de la empresa MADERERA VIVIANA E.I.R.L.
2. OBJETIVO GENEREAL
Mejorar la calidad en el Sistema de Ventas para que la empresa pueda tener una mejor
contabilidad de sus ventas e inventarios.
3. PLANIFICACIÓN DEL PROYECTO
3.1. SELECCIÓN DE LA ESTRATEGIA DE IMPLEMENTACIÓN
La estrategia de la implementación del proyecto tiene las siguientes tareas:
1. Informarnos sobre los aspectos básicos de la empresa y su cultura
organizacional.
2. Verificar los procedimientos y la documentación de la empresa MADERERA
VIVIANA E.I.R.L.
3. Analizar los sistemas transaccionales.
4. Recolectar los distintos tipos de requerimientos.
5. Analizar los requerimientos.
6. Implementar Dara Mart.
3.2. SELECCIÓN DE LA METODOLOGIA DE DESARROLLO
Implementar el sistema de Data Mart es un proceso complejo, en las cuales se debe
usar las prácticas existentes. La metodología que se va aplicar es propuesta por Ralph
Kimball, el cual se utilizará para el desarrollo de la metodología del trabajo, en la
cual se va adaptar al proyecto.
3.3. SELECCIÓN DEL ÁMBITO DE IMPLEMENTACIÓN
El ámbito de la implementación de un Data Mart se determina gracias a los distintos
requerimientos de información de los trabajadores o la Gerencia de la empresa
MADERERA VIVIANA E.I.R.L.
Para ello se formuló las siguientes preguntas:
a) ¿En qué área es más recomendable aplicar los Data Mart?
b) ¿Qué priorizará el Data Mart en los diferentes procesos de las principales áreas
de la empresa?
c) ¿Qué consultas se debe responder inicialmente los Data Mart?
2
3.4. DESCRIPCIÓN DE STAKEHOLDERS
Personal involucrado con el Proyecto
Nombre Representa Rol
Es el responsable legal Ordenar y manipular.
de la empresa y en ese Designar todas las posiciones de la
sentido deberá velar por estructura.
el cumplimiento de todos Realizar evaluaciones periódicas del
los requisitos legales que cumplimiento de las funciones de los
Gerente afecten los negocios y diferentes departamentos
General operaciones de ésta. credenciales.
Desarrollar metas a corto y largo plazo
junto con objetivos anuarios y entregar
las proposiciones de dichas metas
para la aprobación de los gerentes
administrativos.
Tener la decisión de liderazgo.
3
4. DETERMINACIÓN DE LOS REQUERIMIENTOS
4.1. REQUERIMIENTOS DE LOS STAKEHOLDERS
Debemos de esclarecer las dudas que tienen los Stakeholders recopilando los
requerimientos con unas entrevistas que se hace.
¿Por qué construir un Data Mart?
Porque ayudará en disponer la estructura óptima de datos para analizar la información
al detalle desde todas las perspectivas que afecten a los procesos de dicho
departamento, haciendo que mejore y tenga más beneficios la empresa MADERERA
VIVIANA E.I.R.L.
¿Cuál será el impacto sobre la organización?
El impacto que tendrá el Data Mart de la empresa MADERERA VIVIANA E.I.R.L.
ayudará a largo plazo según las decisiones que se tome y las medidas que se emplee,
permitiendo que sea más rápido la obtención de los reportes solicitados por la
gerencia.
¿Cuáles son los riesgos?
Los riesgos al implementarse el Data Mart serian que la base de datos operacional
tenga complicaciones, es decir, genere problemas de consistencia.
4.2. REQUERIMIENTOS FUNCIONALES DEL USUARIO FINAL
Para determinar los diferentes tipos de requerimientos empresariales se realizaron
entrevistas a diferentes tipos de usuarios finales que utilizarán los Data Mart basados
en la metodología Ralpf Kimball.
Área de Compra y Venta
R1 ¿Cuántos tipos de maderas se compra por cada mes?
R2 ¿Cuántos tipos de maderas se vende por cada mes?
R3 ¿A cuál empresa vende más productos de madera y cuánto gana por cada
producto vendido?
R4 ¿Cuánto gana en general por la venta de compra en un mes?
R5 ¿Cuánto es la utilidad neta por la venta y compra de madera al mes?
Área de Inventarios
R6 ¿Cuánto es el costo de inventario por unidad?
R7 ¿Cuánto de material se puede guardar en el inventario?
R8 ¿Cuánto compra a cada proveedor por un mes determinado?
4
NRO CONSU UNIDAD
LTAS
¿Cuántos tipos de maderas se compra por cada mes?
01 Cantidad de productos
5
4.4. ANÁLISIS DE REQUERIMIENTOS
A. Área de Compra y Venta
R1 ¿Cuántos tipos de maderas se compra por cada mes?
Tipo
Compra
Tiempo
Tipos
Ventas
Tiempo
Empresa
Producto
R4 ¿Cuánto gana en general por la venta de compra en un mes?
Producto
Venta en soles
Tiempo
6
R5 ¿Cuánto es la utilidad neta por la venta y compra de madera al mes?
Producto
Ganancia
Tiempo
Proveedor
Cantidad Compra
Tiempo
7
5. DISEO TÉCNICO DE LA ARQUITECTURA
5.1. NIVEL DE DATOS: Base de Datos fuente (transaccional)
Se utilizó la base de datos MADERERA VIVIANA E.I.R.L. cuyo modelo esta descrito
en la imagen de a continuación.
En este diagrama se muestran las tablas que se relacionan con el área de Ventas y
Compras, así como al área de Inventario, si bien es el modelo de datos es básico; pues,
en el transcurso del proyecto se realizará un refactoring lo que permitirá adquirir datos
relevantes para la empresa.
8
6. MODELADO DIMENSIONAL
A través del Modelamiento Dimensional, buscaremos presentar los datos en un marco de
trabajo estándar.
Identificado los componentes del modelo, desarrollando el método de los cuatro pasos.
Luego, se construirá el primer diagrama para el modelo y se detallará cada componente del
diagrama.
6.1. IDENTIFICACIÓN DE LOS COMPONENTES DEL MODELO
Para identificar los componentes utilizaremos el método propuesto por Ralph Kimball.
El Método de los cuatro pasos: Consiste en cuatro elecciones:
Elección del DataMart
Elección del Objetivo de la Tabla de Hechos
Elección de las Dimensiones
Elección de los Hechos
6.1.1. ELECCIÓN DEL DATAMART
En este paso identificaremos el posible Data Mart que se puede construir en la
empresa MADERERA VIVIANA E.I.R.L En nuestro caso identificaremos el área
que está en estudio por este proyecto, el cual ya tenemos conocimiento sobre su
modelo general de datos.
Entonces, para identificar nuestro Data Mart en estudio recurrimos al siguiente
método:
Método de la Matriz
Se mencionará los posibles hechos relacionados y que son usados juntos.
Listamos las entidades que apoyan a estos hechos.
Listado de los Data Marts
Según la situación general de la empresa, se identificó las posibles fuentes de
Data Marts que corresponderán a las filas de la matriz:
9
Producto
Sucursal
Proveedor
Tipo_Madera
Lugar_Procedencia
Transportista
METODO DE PAGO X
TIEMPO X X
TIPO
COMPROBANTE X
DE PAGO
CLIENTE X
PRODUCTO X
SUCURSAL X X
PROVEEDOR X
TIPO MADERA X
LUGAR DE X
PROCEDENCIA
TRANSPORTISTA X
Para el fácil manejo de las consultas hechas por el usuario, en el Data Mart se
consideró dos Tablas de Hechos: Comprobante_de_pago_Venta (Area Ventas)
y Guia_Remitente (Area de Inventario).
10
Tabla de Hechos Objetivo
Comprobante_de_ “Tener un mejor control y manejo de las ventas”.
pago_Venta
“Controlar los traslados de los bienes, productos que
Guia_Remitente se compra o vende que maneja la empresa”.
11
6.1.4. ELECCIÓN DE LOS HECHOS
El Objetivo de cada tabla de hechos, permite definir los hechos y hace claro el
alcance que estos hechos deben tener. En nuestro caso tenemos:
Diagrama de la Tabla de Hechos Guia_Remitente
12
Detalle de las Tablas de Hechos
Nombre de la Nombre de la
Tabla Columna Descripción de la Columna
13
Hecho Guia_Remitente Cantidad de Madera Cantidad de Madera
(pies3) recibida (pies3)
Dimensión Método_Pago
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
14
Dimensión Tiempo
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
Dimensión Tipo_Comprobante_Pago
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
Dimensión Cliente
Nombre del Descripción del Atributo Cambiando Valores de
Atributo Política Muestra
15
Dimensión Producto
Nombre del Cambiando Valores de
Atributo Descripción del Atributo Política Muestra
Dimensión Sucursal
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
Dimensión Proveedor
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
16
Dimensión Tipo_Madera
Nombre del Descripción del Cambiando Valores de
Atributo Atributo Política Muestra
Copaiba
Representa el motivo No Actualizar Comercial
Descripcion de la transferencia. Copaiba Corta
Código único del tipo No Actualizar CTM101,
Cod_tipo_made de Madera comprada o CTM102
ra vendida.
Código único de lugar No Actualizar CLP101,
Cod_lugar_pro que previene el CLP101
cedencia producto.
Dimensión Lugar_Procedencia
Nombre del Cambiando Valores de
Atributo Descripción del Atributo Política Muestra
Dimensión Transportista
Nombre del Cambiando Valores de
Atributo Descripción del Atributo Política Muestra
Representa el nombre de un
Nombre producto. No Actualizar Cesar Alberto
Vásquez Laiza,
Luis Alberto Ruiz
Números de 9 dígitos para
Celular poder contactarse. No Actualizar 941962225,
949580208
Código único que se otorga
Cod_transportista para cada transportista. No Actualizar CTR101
CTR102
Número de 8 dígitos de una 74705406
DNI combinación única. No Actualizar 27571112
17
6.3. DIAGRAMA ESTRELLA
Sabiendo el número de Tablas de Hechos y las dimensiones asociadas a estas,
orientamos nuestro Data Mart al Esquema Estrella para una mejor visualización del
Modelo para el Diseño Físico.
Para una mejor comprensión, listamos primero los componentes que intervendrán el
esquema, luego dividimos el Data Mart en dos gráficos: El esquema estrella de cada
Tabla de Hechos y el Diseño Lógico del Data Mart.
Modelo Estrella componente
Componente: TABLA DE HECHOS COMPROBANTE_PAGO_VENTA
Componente: TABLA DE HECHOS GUIA_REMITENTE
Componente: TABLA DE DIMENSIÓN USUARIO
Componente: TABLA DE DIMENSIÓN METODO_PAGO
Componente: TABLA DE DIMENSIÓN TIEMPO
Componente: TABLA DE DIMENSIÓN CLIENTE
Componente: TABLA DE DIMENSIÓN TIPO_COMPROBANTE_PAGO
Componente: TABLA DE DIMENSIÓN PRODUCTO
Componente: TABLA DE DIMENSIÓN SUCURSAL
Componente: TABLA DE DIMENSIÓN PROVEEDOR
Componente: TABLA DE DIMENSIÓN TIPO_PRODUCTO
Componente: TABLA DE DIMENSIÓN LUGAR_PROCEDENCIA
Componente: TABLA DE DIMENSIÓN TRANSPORTISTA
18
USUARIO_DIM METODO_PAGO_DIM
TIEMPO_DIM
Cod_UsuarioKey Cod_Metodo_Pago_Key
Tiempo_Key
Cod_Usuario Descripcion
Nombre Cod_Metodo_Pago Dia
Cod_Tipo_Usuario Semana
Mes
Año
Fecha
MesNu
TIPO_COMPROBANTE_PAGO_DIM
COMPROBANTE_DE_PAGO_VENTA_FACT CLIENTE_DIM
Cod_Tipo_comprobante_pago_Key
Tiempo_Key (FK) Cod_ClenteKey
Cod_Tipo_comprobante_pago Cod_Tipo_comprobante_pago_Key (FK) Nombre
Descripcion Producto_Key (FK) Celular
Cod_Sucursal_Key (FK) Cod_Cliente
Cod_Metodo_Pago_Key (FK)
Cod_ClenteKey (FK)
Cod_UsuarioKey (FK)
Monto
CantidadVendida
Cod_Comprobante_Pago
PRODUCTO_DIM
Producto_Key
SUCURSAL_DIM
Cod_Producto
Cod_Sucursal_Key Descripcion
Cod_Sucursal Precio
Descripcion
PROVEEDOR_DIM GUIA_REMITENTE_FACT
Cod_Proveedor_Key Tiempo_Key (FK)
Cod_Proveedor_Key (FK)
Cod_Proveedor Cod_Tipo_Madera_Key (FK)
Nombre Cod_Sucursal_Key (FK)
Cod_Lugar_Procedencia_Key (FK)
Cod_Transportista_Key (FK)
TIPO_MADERA_DIM
Cod_Guia_Remitente
Cantidad_Madera Cod_Tipo_Madera_Key
Descripcion
Cod_Tipo_Madera
Cod_Lugar_Procedencia
TRANSPORTISTA
LUGAR_PROCEDENCIA_DIM Cod_Transportista_Key
Cod_Lugar_Procedencia_Key
Nombre
Cod_Lugar_Procedencia Celular
Ubicacion Cod_Transportista
PrecioFlete DNI
7. DISEÑO FISICO
Se tiene que tener en cuenta lo siguiente:
Modificar nombres a nombres estándar, si fuera necesario. Para nuestro Data Mart se
realizaron los siguientes cambios:
Dimensión_Usuario Dim_Usuario
Dimensión_Método_Pago Dim_Método_Pago
Dimensión_Tiempo Dim_Tiempo
Dimensión_Tipo_Comprobante_Pago Dim_Tipo_Comprobante_Pago
19
Dimensión_Cliente Dim_Cliente
Dimensión_Producto Dim_Producto
Dimensión_Sucursal Dim_Sucursal
Dimensión_Proveedor Dim_Proveedor
Dimensión_Tipo_Madera Dim_Tipo_Madera
Dimensión_Lugar_Procedencia Dim_Lugar_Procedencia
Dimensión_Transportista Dim_Transportista
20
Dimensión_Producto Precio Precio
NOMBRE DE LA
DISEÑO LÓGICO DISEÑO FÍSICO
TABLA
Determinar el Tipo de Dato para cada Tabla que intervendrá en el Data Mart. Estos
cuadros muestran el detalle de cada tabla:
21
Tabla: Dim_Usuario
Nombre Varchar 50
Cod_Tipo_Usuario Varchar 20
Tabla: Dim_Metodo_Pago
Cod_Metodo_Pago Varchar 20
Tabla: Dim_Tiempo
Semana Varchar 40
Mes Nvarhar 50
Año Int -
Fecha Datetime -
MesNu Varchar 40
Tabla: Dim_Cliente
Celular Varchar 20
Cod_Cliente Varchar 20
22
Tabla: Dim_Tipo_Comprobante_Pago
Descripcion Varchar 50
Tabla: Dim_Producto
Descripcion Varchar 50
Precio Float -
Tabla: Dim_Sucursal
Descripcion Varchar 50
Tabla: Dim_Proveedor
Nombre Varchar 50
Tabla: Dim_Tipo_Madera
Cod_Lugar_Procedencia Varchar 20
23
Tabla: Dim_Lugar_Procedencia
Ubicacion Varchar 50
Precio Float -
Tabla: Dim_Transportista
Celular varchar 20
Cod_Transportista varchar 20
DNI varchar 20
Determinar el tipo de Datos de las claves Primarias. Para nuestro Data Mart se
generaran en forma automática y ordenada:
Tiempo_Key
Cod_Tipo_Comprobante_Pago_Key Producto_Key
Cod_Sucursal_Key
Cod_Metodo_Pago_Key
Cod_Cliente_Key
Cod_Usuario_Key Cod_Proveedor_Key Tipos de datos entero (12)
Cod_Tipo_Madera_Key
Cod_Sucursal_Key
Tipo de Datos Entero (12)
Cod_Luigar_Procedencias_Key
Cod_Transportista_Key
24
Por consiguiente, con los Datos del diseño Lógico y los cambios en la estructura física, se
obtiene el siguiente Modelo de Base de Datos Física para el Data Mart.
TIEMPO_DIM
Tiempo_Key
Dia
Semana
TIPO_MADERA_DIM
Mes Cod_Tipo_Madera_Key
Año Descripcion
Fecha Cod_Tipo_Madera
TIPO_COMPROBANTE_PAGO_DIM
Cod_Tipo_comprobante_pago_Key MesNu Cod_Lugar_Procedencia
Cod_Tipo_comprobante_pago
Descripcion
GUIA_REMITENTE_FACT
Cod_Guia_Remitente
Tiempo_Key TRANSPORTISTA
COMPROBANTE_DE_PAGO_VENTA_FACT Cod_Transportista_Key
Tiempo_Key PROVEEDOR_DIM Cantidad_Madera
Cod_Proveedor_Key Nombre
Cod_Tipo_comprobante_pago_Key Cod_Proveedor_Key
Cod_Proveedor Celular
Producto_Key Cod_Tipo_Madera_Key
PRODUCTO_DIM Nombre Cod_Transportista
Producto_Key Cod_Sucursal_Key Cod_Sucursal_Key
DNI
Cod_Producto Cod_Metodo_Pago_Key Cod_Lugar_Procedencia_Key
Precio Monto
CantidadVendida
Cod_Comprobante_Pago
Cod_UsuarioKey
SUCURSAL_DIM LUGAR_PROCEDENCIA_DIM
Cod_Sucursal_Key Cod_Lugar_Procedencia_Key
Cod_Sucursal Cod_Lugar_Procedencia
Descripcion Ubicacion
PrecioFlete
CLIENTE_DIM USUARIO_DIM
Cod_ClenteKey Cod_UsuarioKey
Nombre Cod_Usuario
Celular Nombre
Cod_Cliente Cod_Tipo_Usuario
METODO_PAGO_DIM
Cod_Metodo_Pago_Key
Descripcion
Cod_Metodo_Pago
25
Construcción de las Tablas y la Base de Datos en SQL
Después de haber realizado el Diseño Físico de las tablas pasamos a la etapa de
construcción de dichas tablas utilizando el SQL Server 2014 R2.
Tabla 1:Dim_Usuario
Tabla 2: Dim_Metodo_Pago
Tabla 3: Dim_Tiempo
26
Tabla 4:Dim_Cliente
Tabla 5: Dim_Tipo_Comprobante_Pago
Tabla 6: Dim_Producto
Tabla 7: Dim_Sucursal
27
Tabla 8: Dim_Proveedor
Tabla 9: Dim_Tipo_Madera
Tabla 11:Dim_Transportista
Una vez construido todas las tablas para el Data Mart, continuamos con la
construcción del Diagrama de la Base de Datos:
28
TIEMPO_DIM
Tiempo_Key
Dia
Semana
TIPO_MADERA_DIM
Mes Cod_Tipo_Madera_Key
Año Descripcion
Fecha Cod_Tipo_Madera
TIPO_COMPROBANTE_PAGO_DIM
Cod_Tipo_comprobante_pago_Key MesNu Cod_Lugar_Procedencia
Cod_Tipo_comprobante_pago
Descripcion
GUIA_REMITENTE_FACT
Cod_Guia_Remitente
Tiempo_Key TRANSPORTISTA
COMPROBANTE_DE_PAGO_VENTA_FACT Cod_Transportista_Key
Tiempo_Key PROVEEDOR_DIM Cantidad_Madera
Cod_Proveedor_Key Nombre
Cod_Tipo_comprobante_pago_Key Cod_Proveedor_Key
Cod_Proveedor Celular
Producto_Key Cod_Tipo_Madera_Key
PRODUCTO_DIM Nombre Cod_Transportista
Producto_Key Cod_Sucursal_Key Cod_Sucursal_Key
DNI
Cod_Producto Cod_Metodo_Pago_Key Cod_Lugar_Procedencia_Key
Precio Monto
CantidadVendida
Cod_Comprobante_Pago
Cod_UsuarioKey
SUCURSAL_DIM LUGAR_PROCEDENCIA_DIM
Cod_Sucursal_Key Cod_Lugar_Procedencia_Key
Cod_Sucursal Cod_Lugar_Procedencia
Descripcion Ubicacion
PrecioFlete
CLIENTE_DIM USUARIO_DIM
Cod_ClenteKey Cod_UsuarioKey
Nombre Cod_Usuario
Celular Nombre
Cod_Cliente Cod_Tipo_Usuario
METODO_PAGO_DIM
Cod_Metodo_Pago_Key
Descripcion
Cod_Metodo_Pago
29
8. PROCESO DE ETRACCIÓN, TRANSFORMACIÓN Y CARGA DE DATOS
Para completar la construcción del DataMart (DM_MADERERA) debemos poblar cada Tabla
de la Base de Datos (BD_MADERERA).
Como ya conocemos la estructura de cada tabla, ahora demos seguir los siguientes pasos
para el poblamiento:
Definición de los pasos de transformación.
Definición de los WorkFlows (Flujos de Trabajo).
Creación de los paquetes de servicio de transformación de datos (DTS).
8.1. DEFINICIÓN DE LOS PASOS DE TRANSFORMACIÓN
Para un correcto poblamiento de los datos debemos definir los pasos de
transformación, con la unidad de trabajo como parte de un proceso de
transformación. Para poblar el DataMart (DM_MADERERA) se tiene que realizar los
siguientes pasos:
Paso 1: Limpiando Dimensiones, consiste en eliminar los datos de todas las
Dimensiones y Tablas de Hechos, paso que nos permite asegurar de que no pueda
existir algún dato que se pudiera duplicar.
Paso 2: Poblamiento de la Dimensión CLIENTE, consiste en mover los datos de la
Tabla CLIENTE para poblar la Dimensión CLIENTE_DIM.
Paso 3: Poblamiento de la Dimensión PROVEEDOR, consiste en mover los datos
de la Tabla PROVEEDOR para poblar la Dimensión PROVEEDOR_DIM.
Paso 4: Poblamiento de la Dimensión SUCURSAL, consiste en mover los datos de
la Tabla SUCURSAL para poblar la Dimensión SUCURSAL_DIM
Paso 5: Poblamiento de la Dimensión TIPO_COMPROBANTE_PAGO, consiste en
mover los datos de la Tabla TIPO_COMPROBANTE_PAGO para poblar la
Dimensión TIPO_COMPROBANTE_PAGO_DIM.
Paso 6: Poblamiento de la Dimensión TRANSPORTISTA, consiste en mover los
datos de la Tabla TRANSORTISTA para poblar la Dimensión
TRASNPORTISTA_DIM.
Paso 7: Poblamiento de la Dimensión PRODUCTO, consiste en mover los datos de
la Tabla PRODUCTO para poblar la Dimensión PRODUCTO_DIM
Paso 8: Poblamiento de la Dimensión TIPO_MADERA, consiste en mover los datos
de la Tabla TIPO_MADERA para poblar la Dimensión TIPO_MADERA_DIM.
Paso 9: Poblamiento de la Dimensión METODO_PAGO, consiste en mover los
datos de la Tabla METODO_PAGO para poblar la Dimensión METODO_PAGO
_DIM.
Paso 10: Poblamiento de la Dimensión USUARIO, consiste en ejecutar una
sentencia SQL, para transferir datos a la Dimensión USUARIO _DIM.
Paso 11: Poblamiento de la Dimensión LUGAR_PROCEDENCIA, consiste en mover
los datos de la Tabla METODO_PAGO para poblar la Dimensión
LUGAR_PROCEDENCIA _DIM.
Paso 12: Poblamiento de la Dimensión TIEMPO, consiste en ejecutar una sentencia
SQL, para transferir datos a la Dimensión TIEMPO_DIM.
30
Paso 13: Poblamiento de las Tablas de Hechos.
8.2. DEFINICIÓN DE LOS WORKFLOWS
PASO 13
31
l) El Poblamiento de las Tablas de TIEMPO (Paso 12) debe realizarse sólo
cuando se tenga la seguridad de que el paso 1 se ha ejecutado con éxito.
m) El Poblamiento de las Tablas de Hecho
(COMPROBANTE_PAGO_VENTA_FACT Y GUIA_REMITENTE_FACT) (Paso
13) debe realizarse sólo cuando se tenga la seguridad de que el paso
2,3,4,5,6,7,8,9,10,11,12 se hallan ejecutado con éxito.
32
8.3. CREACIÓN DE LOS PAQUETES DE SERVICIO DE TRANSFORMACIÓN DE
DATOS
Definidos los pasos de la transformación de datos y las restricciones de precedencia,
podemos crear el paquete Servicio de Transformación de Datos (DTS);
recordaremos que un DTS tiene como objetivos importar, exportar y realizar cambios
en el formato de datos. Para su construcción utilizaremos el Paquete de SQL Server
Integration Services 2017 (SSDT), aquí los datos pueden ser almacenado en varios
formatos y en muchos lugares diferentes lo cual no es ningún problema.
Basándonos en Workflow con restricciones de la figura anterior, creamos el paquete
DTS al cual llamamos “PROYECTO_MADERERA”, con los pasos previos definidos
así como todas sus restricciones.
8.3.1. SENTENCIAS DE CADA PASO DE WORKFLOW
Paso 1: Limpiando Dimensiones
Añadimos una tarea al paquete al cual tendrá por nombre “Tarea ejecutar
SQL”, con la siguiente sentencia:
DELETE COMPROBANTE_DE_PAGO_VENTA_FACT
DELETE GUIA_REMITENTE_FACT
DELETE PRODUCTO_DIM
DBCC CHECKIDENT('PRODUCTO_DIM',reseed,0)
DELETE CLIENTE_DIM
DBCC CHECKIDENT('CLIENTE_DIM',reseed,0)
DELETE METODO_PAGO_DIM
DBCC CHECKIDENT('METODO_PAGO_DIM',reseed,0)
DELETE TIEMPO_DIM
DBCC CHECKIDENT('TIEMPO_DIM',reseed,0)
DELETE USUARIO_DIM
DBCC CHECKIDENT('USUARIO_DIM',reseed,0)
DELETE TIPO_COMPROBANTE_PAGO_DIM
DBCC CHECKIDENT('TIPO_COMPROBANTE_PAGO_DIM',reseed,0)
DELETE SUCURSAL_DIM
DBCC CHECKIDENT('SUCURSAL_DIM',reseed,0)
DELETE PROVEEDOR_DIM
DBCC CHECKIDENT('PROVEEDOR_DIM',reseed,0)
DELETE LUGAR_PROCEDENCIA_DIM
DBCC CHECKIDENT('LUGAR_PROCEDENCIA_DIM',reseed,0)
DELETE TRANSPORTISTA_DIM
DBCC CHECKIDENT('TRANSPORTISTA_DIM',reseed,0)
DELETE TIPO_MADERA_DIM
DBCC CHECKIDENT('TIPO_MADERA_DIM',reseed,0)
33
Esta sentencia nos permite limpiar los datos de todas las tablas de nuestro
Data Mart. Esta limpieza asegura que no se dupliquen los datos.
34
Paso 2: Poblamiento de la Dimensión CLIENTE
Para Transferir los datos a la dimensión CLIENTE, se efectúan los
siguientes pasos:
a) Definimos a la Tabla CLIENTE de la base de datos
BD_MADERERA como origen de datos
35
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión CLIENTE
36
Paso 3: Poblamiento de la Dimensión PROVEEDOR
Para Transferir los datos a la dimensión PROVEEDOR, se efectúan los
siguientes pasos:
a) Definimos a la Tabla PROVEEDOR de la base de datos
BD_MADERERA como origen de datos.
37
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión PROVEEDOR
38
Paso 4: Poblamiento de la Dimensión SUCURSAL
Para Transferir los datos a la dimensión SUCURSAL, se efectúan los
siguientes pasos:
a) Definimos a la Tabla SUCURSAL de la base de datos
BD_MADERERA como origen de datos.
39
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión SUCURSAL
40
Paso 5: Poblamiento de la Dimensión TIPO_COMPROBANTE_PAGO
Para Transferir los datos a la dimensión TIPO_COMPROBANTE_PAGO,
se efectúan los siguientes pasos:
a) Definimos a la Tabla TIPO_COMPROBANTE_PAGO de la base de
datos BD_MADERERA como origen de datos.
41
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión
TIPO_COMPROBANTE_PAGO
42
Paso 6: Poblamiento de la Dimensión TRANSPORTISTA
Para Transferir los datos a la dimensión TRANSPORTISTA, se efectúan
los siguientes pasos:
a) Definimos a la Tabla TRANSPORTISTA de la base de datos
BD_MADERERA como origen de datos.
43
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión TRANSPORTISTA
44
Paso 7: Poblamiento de la Dimensión PRODUCTO
Para Transferir los datos a la dimensión PRODUCTO, se efectúan los
siguientes pasos:
a) Definimos a la Tabla PRODUCTO de la base de datos
BD_MADERERA como origen de datos.
45
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión PRODUCTO
46
Paso 8: Poblamiento de la Dimensión TIPO_MADERA
Para Transferir los datos a la dimensión TIPO_MADERA, se efectúan los
siguientes pasos:
a) Definimos a la Tabla TIPO_MADERA de la base de datos
BD_MADERERA como origen de datos.
47
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión TIPO_MADERA
48
Paso 9: Poblamiento de la Dimensión METODO_PAGO
Para Transferir los datos a la dimensión METODO_PAGO, se efectúan
los siguientes pasos:
a) Definimos a la Tabla METODO_PAGO de la base de datos
BD_MADERERA como origen de datos.
49
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión METODO_PAGO
50
Paso 10: Poblamiento de la Dimensión USUARIO
Para Transferir los datos a la dimensión USUARIO, se efectúan los
siguientes pasos:
a) Definimos una sentencia SQL de la base de datos
BD_MADERERA como origen de datos.
SELECT TIPO_USUARIO.Descripcion, USUARIO.Nombre, USUARIO.Cod_Usuario
from USUARIO INNER JOIN TIPO_USUARIO ON
USUARIO.Cod_Tipo_Usuario=TIPO_USUARIO.Cod_Tipo_Usuario
51
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión USUARIO.
52
Paso 11: Poblamiento de la Dimensión LUGAR_PROCEDENCIA
Para Transferir los datos a la dimensión LUGAR_PROCEDENCIA, se
efectúan los siguientes pasos:
a) Definimos a la Tabla LUGAR_PROCEDENCIA de la base de datos
BD_MADERERA como origen de datos.
53
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión LUGAR_PROCEDENCIA.
54
Paso 12: Poblamiento de la Dimensión TIEMPO
Para Transferir los datos a la dimensión TIEMPO, se efectúan los
siguientes pasos:
a) Definimos una sentencia SQL de la base de datos
BD_MADERERA como origen de datos.
Select DISTINCT DAY (FECHA) AS DIA,
YEAR(FECHA) AÑO,
DATEPART(WEEK,FECHA) SEMANA,
DATENAME(MONTH, FECHA) MES,FECHA
from COMPROBANTE_PAGO ORDER BY FECHA
55
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión TIEMPO.
56
Paso 13: Poblamiento de las Tablas de Hechos.
Para poblar la Tabla COMPROBANTE_PAGO_VENTA_FACT se
efectúan los siguientes pasos:
a) Definimos una sentencia SQL de la base de datos
BD_MADERERA como origen de datos.
SELECT DISTINCT TD.Tiempo_Key, DPRO.Cod_Producto_KEY,
UD.Cod_Usuario_Key, SD.Cod_Sucursal_KEY, CLID.[cod_Cliente_Key],
CDI.Cod_Metodo_Pago_Key,TCP.Cod_Tipo_Comprobante_pago_Key,
(DD.CANTIDAD*DD.PRECIOUNIT)AS MONTO, DD.CANTIDAD AS
CANTIDAD_VENDIDA,
D.Cod_comprobante_pago FROM COMPROBANTE_PAGO D INNER JOIN
DETALLE_COMPROBANTE_PAGO DD ON
D.COD_COMPROBANTE_PAGO=DD.COD_COMPROBANTE_PAGO
INNER JOIN USUARIO US ON D.COD_USUARIO=US.COD_USUARIO
INNER JOIN CLIENTE C ON C.Cod_Cliente=D.Cod_Cliente
INNER JOIN PRODUCTO PD ON
PD.COD_PRODUCTO=DD.COD_PRODUCTO
INNER JOIN METODO_PAGO CAT ON
CAT.COD_METODO_PAGO=D.COD_METODO_PAGO
INNER JOIN TIPO_COMPROBANTE_PAGO TIP ON
TIP.COD_TIPO_COMPROBANTE_PAGO=D.COD_TIPO_COMPROBANTE_PA
GO
INNER JOIN SUCURSAL SUC ON SUC.COD_SUCURSAL
=D.COD_SUCURSAL INNER JOIN [DM_MADERERA].DBO.TIEMPO_DIM TD
ON D.FECHA=TD.FECHA
INNER JOIN [DM_MADERERA].DBO.PRODUCTO_DIM DPRO ON
DPRO.COD_PRODUCTO=DD.[COD_PRODUCTO]
INNER JOIN [DM_MADERERA].DBO.USUARIO_DIM UD ON
UD.COD_USUARIO =D.COD_USUARIO
INNER JOIN [DM_MADERERA].DBO.SUCURSAL_DIM SD ON
SD.COD_SUCURSAL=D.COD_SUCURSAL
INNER JOIN [DM_MADERERA].DBO.CLIENTE_DIM CLID ON
CLID.[Cod_Cliente]=D.Cod_Cliente
INNER JOIN [DM_MADERERA].DBO.METODO_PAGO_DIM CDI ON
CDI.COD_METODO_PAGO=D.COD_METODO_PAGO
INNER JOIN [DM_MADERERA].DBO.TIPO_COMPROBANTE_PAGO_DIM TCP
ON
TCP.COD_TIPO_COMPROBANTE_PAGO=D.COD_TIPO_COMPROBANTE_P
AGO
57
b) Determinamos la Dimensión
COMPROBANTE_PAGO_VENTA_FACT Como destino de Datos.
58
c) En las transformaciones se determina que columnas del origen
corresponderán con las de la Dimensión
COMPROBANTE_PAGO_VENTA_FACT.
59
Para poblar la Tabla GUIA_REMITENTE_FACT se efectúan los
siguientes pasos:
a) Definimos una sentencia SQL de la base de datos
BD_MADERERA como origen de datos.
SELECT DISTINCT TD.Tiempo_Key, DPRO.Cod_Tipo_Madera_Key,
UD.Cod_Transportista_Key, SD.Cod_Sucursal_Key, VE.Cod_Proveedor_Key,
CLID.Cod_Lugar_Procedencia_Key, DD.CANTIDAD_MADERA AS
CANTIDAD_MADERA,
D.Cod_Guia_Remitente FROM GUIA_REMITENTE D
INNER JOIN DETALLE_GUIA_REMITENTE DD ON
D.COD_GUIA_REMITENTE=DD.COD_GUIA_REMITENTE
INNER JOIN TRANSPORTISTA US ON D.Cod_Transportista=US.Cod_transportista
INNER JOIN TIPO_MADERA PD ON
PD.COD_TIPO_MADERA=DD.COD_TIPO_MADERA
INNER JOIN LUGAR_PROCEDENCIA C ON
PD.Cod_Lugar_Procedencia=PD.Cod_Lugar_Procedencia
INNER JOIN SUCURSAL SUC ON SUC.COD_SUCURSAL =DD.COD_SUCURSAL
INNER JOIN PROVEEDOR RO ON RO.Cod_Proveedor=D.Cod_Proveedor
INNER JOIN [DM_MADERERA].DBO.PROVEEDOR_DIM VE ON
VE.Cod_Proveedor=D.Cod_Proveedor
INNER JOIN [DM_MADERERA].DBO.TIEMPO_DIM TD ON D.FECHA=TD.FECHA
INNER JOIN [DM_MADERERA].DBO.TIPO_MADERA_DIM DPRO ON
DPRO.COD_TIPO_MADERA=DD.COD_TIPO_MADERA
INNER JOIN [DM_MADERERA].DBO.TRANSPORTISTA_DIM UD ON
UD.Cod_Transportista=D.Cod_Transportista
INNER JOIN [DM_MADERERA].DBO.SUCURSAL_DIM SD ON
SD.COD_SUCURSAL=DD.COD_SUCURSAL
INNER JOIN [DM_MADERERA].DBO.LUGAR_PROCEDENCIA_DIM CLID ON
CLID.Cod_Lugar_Procedencia=PD.Cod_Lugar_Procedencia
60
b) Determinamos la Dimensión GUIA_REMITENTE_FACT Como
destino de Datos.
61
d) Presionamos F5 para correr y detectar algún error
62
9. REPORTES EN POWER BI
Los datos seleccionados provienen del datamart DM_MADERERA
63
64
REPORTE 1: Las Tablas asociadas son: producto, tiempo, Cantidad Vendida
65
REPORTE 2: Las tablas asociadas son: Cantidad_maderda, nombre de proveedor,
tiempo.
66
REPORTE 3: Las tablas asociadas son: monto de venta, nombre de usuario, producto
y tiempo.
Muestra los montos vendidos por cada usuario de ventas, además de el producto
vendido y montos vendidos por mes
67
REPORTE 4: Las columnas asociadas son: cantidad_madera, nombre del tipo de
madera, tiempo y ubicación.
68
REPORTE 5: las columnas asociadas son cantidad vendida por método de pago, el
tipo de comprobante de pago y tiempo.
69
REPORTE 6: Las columnas asociadas al reporte son: cantidad de madera, nombre de
transportista, descripción del tipo de madera, tiempo por mes
70
Reporte 7: Las columnas asociadas al reporte son: cantidad de madera, sucursal, tiempo y
nombre de transportista.
71
Reporte 8: Las columnas asociada monto de la venta, nombre del cliente, tiempo
Muestra el monto de las compras realizadas por los clientes en un determinado mes, además
de la venta total del mes.
72