Monografia Bodega Datos
Monografia Bodega Datos
Monografia Bodega Datos
UNIVERSIDAD LIBRE
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
BOGOTA D.C.
2015
DISEÑO DE UNA GUÍA GENERAL PARA CONSTRUIR UNA BODEGA DE DATOS DEL
ÁREA DE VENTAS DE UNA EMPRESA.
Director
Néstor Espitia
UNIVERSIDAD LIBRE
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
BOGOTA D.C.
2015
CONTENIDO
1. GENERALIDADES .................................................................................................................. 4
1.1. FORMULACION DEL PROBLEMA .............................................................................. 4
1.2. JUSTIFICACION .............................................................................................................. 4
1.3. OBJETIVOS ...................................................................................................................... 4
1.3.1. Objetivos específicos ................................................................................................ 5
1.4. INTRODUCCION .............................................................................................................. 4
2. MARCO TEORICO .................................................................................................................. 6
2.1. ¿QUE ES UNA BODEGA DE DATOS? ....................................................................... 6
2.2. MODELADO DIMENSIONAL ........................................................................................ 7
2.3. MODELO MULTIDIMENSIONAL .................................................................................. 8
2.4. OLTP (On-Line Transactional Processing) .............................................................. 8
2.5. OLAP .................................................................................................................................. 8
2.6. CUBOS MULTIDIMENSIONALES ................................................................................ 9
3. METODOLOGIA........................................................................ ¡Error! Marcador no definido.
4. DESARROLLO GUIA ............................................................................................................ 11
HERRAMIENTAS DE HARDWARE ....................................................................................... 11
HERRAMIENTAS DE SOFTWARE ........................................................................................ 11
4.1. PLANIFICACIÓN DEL PROYECTO ........................................................................... 12
4.2. DEFINICIÓN DE REQUERIMIENTOS DEL NEGOCIO ........................................... 13
4.3. MODELADO DIMENSIONAL ...................................................................................... 14
4.4. DISEÑO FÍSICO ............................................................................................................. 15
4.5. DISEÑO E IMPLEMENTACIÓN DEL SUBSISTEMA DE EXTRACCIÓN,
TRANSFORMACIÓN Y CARGA (ETL) .................................................................................. 17
4.6. IMPLEMENTACIÓN ...................................................................................................... 22
4.7. MANTENIMIENTO Y CRECIMIENTO DE LA BODEGA DE DATOS ................... 23
4.8. DISEÑO DE LA ARQUITECTURA TÉCNICA........................................................... 23
5. CONCLUSIONES................................................................................................................... 25
1. GENERALIDADES
1.1. INTRODUCCION
1.3. JUSTIFICACION
1.4. OBJETIVOS
Diseñar una guía general para la implementación de un Bodega de datos para el área
de ventas de una empresa.
4
1.4.1. Objetivos específicos
5
2. MARCO TEORICO
Archivos
planos
Cubos
Base de Data
TRANSFORMACION
Mart
Datos 1
EXTRACCION
CONSULTA
BODEGA DE Reporte
DATOS Data s
Base de Mart
Datos 2
Soluciones
Data
WEB
Mart
Otra
fuente
6
Transformación: Cualquier tarea realizada para limpiar o transformar los
datos para que se puedan cargar en la bodega. Los datos al ser extraídos
desde diferentes fuentes, pueden tener diferentes formatos y ser poco
integrales.
Carga: Es el almacenamiento de los datos en la bodega de datos.
Las bodegas de datos pueden ser consultadas por medias herramientas de consulta y
análisis como los cubos multidimensionales, reportes, soluciones web.
Las bodegas de datos deben cumplir con estas características:
Utiliza solo los datos necesarios: no se extraen de las fuentes los datos que
no se puedan analizar o sean requeridos.
Integrado: Los datos deben ser consistentes, en formato, atributos. En el
caso de que los datos no sean consistentes, se deben transformar los
datos para cumplir esta característica.
Historia: la información en la bodega debe incluir datos históricos para
poderse usar en la identificación y análisis de tendencias.
Los datos no se eliminan o modifican, solo se deben hacer dos
operaciones únicas en la bodega: la carga de los datos y su consulta.
CLIENTE PRODUCTO
IdCliente VENTAS
IdProducto
Nombre
VentIdCliente Nombre
Telefono
VentIdProduct Descripcion
Direccion o
Cantidad
Tabla de dimensión Tabla de dimensión
Tabla de hechos
7
La tabla de dimensión contiene atributos que determinan los parámetros de lo que
dependen las medidas en la tabla de hechos.
La tabla de hechos contiene las medidas de negocio mediante la intersección de
dimensiones, por lo general son numéricas y son usadas para el análisis. Un ejemplo
de medida es la cantidad de productos vendidos a un cliente1.
2.3. MODELO MULTIDIMENSIONAL
2.5. OLAP
1
WREMBEL. Robert. CONCILIA, Christian, Data Ware- house and OLAP Concepts,
Architectures and Solutions. 2007
2
Bases de datos OLTP y OLAP http://www.sinnexus.com/business_intelligence/olap_vs_oltp.aspx
8
El acceso a los datos suele ser de sólo lectura. La acción más común es la consulta.
Los datos se estructuran según las áreas de negocio, y los formatos de los datos
están integrados de manera uniforme en toda la organización.
El historial de datos es a largo plazo, normalmente de dos a cinco años.
Se suelen alimentar de información procedente de los sistemas operacionales
existentes, mediante un proceso de extracción, transformación y carga (ETL)3.
Los Cubos OLAP son vectores o pequeños almacenes de datos en los cuales se
dispone la información y permite un análisis rápido de los datos y convertirla en
información valiosa para la toma de decisiones.
3
Bases de datos OLTP y OLAP http://www.sinnexus.com/business_intelligence/olap_vs_oltp.aspx
9
3. MARCO CONCEPTUAL
Centrarse en el negocio.
Construir una infraestructura de información adecuada.
Realizar entregas en incrementos significativos.
Ofrecer la solución completa proporcionando los elementos necesarios
para entregar valor a los usuarios del negocio.
4
Kimball Lifecycle methodology diagram. Kimball Group
10
4. DESARROLLO DEL PROYECTO
Antes de iniciar la guía, se debe tener en cuenta que la guía es general y en algunas
empresas presentar requerimientos, procesos o acciones que se deben tener en
cuenta y adicionar.
Para la construcción de una bodega de datos debemos cumplir unos requisitos
respecto a las herramientas de software y hardware que usaremos para el desarrollo
de la guía:
HERRAMIENTAS DE HARDWARE
La herramienta de hardware que se requiere es un servidor para el almacenamiento y
manejo de la base de datos corporativa; se recomienda que este servidor sea
altamente escalable, puede que algunas veces el proyecto de construcción de la
bodega presente algún redimensionamiento a medida que se avanza en la
implementación. La capacidad inicial de almacenamiento estará determinada por los
requerimientos de información histórica presentados por la empresa y por la
perspectiva de crecimiento que se tenga.
HERRAMIENTAS DE SOFTWARE
Las herramientas de software que necesitamos para la construcción de la bodega de
datos se clasifican en cuatro categorías básicas:
Herramientas de Almacenamiento: corresponde a las herramientas en la cual se
irán a almacenar los datos. Existen muchas opciones dependiendo del volumen de los
datos, presupuesto y capacidad del sistema. Cada uno de los sistemas de
administración de bases de datos, como Oracle, DB2, Informix, TeraData, Sybase,
Microsoft.
Herramientas de Extracción y Colección: Ayudan a realizar el proceso de
extracción, transformación y carga de los datos de los sistemas transaccionales de la
empresa a la bodega de datos. Algunas de estas herramientas son:
11
Cognos Powerplay, Business Objects, SAS Enterprice, etc. En esta guía no vamos a
profundizar en estas herramientas.
Herramientas para Construcción de cubos Multidimensionales: Son las
herramientas donde se establecen las dimensiones y medidas que van a ser usadas
en el cubo y se genera el cubo para la consulta. Algunas de las herramientas
orientadas a la construcción de cubos multidimensionales son: Cognos Powerplay
Transformer, Microsoft Analysis Service, Orale Analytic Workspace Manager 11g.
Para tener en cuenta: Independiente del software que se va a utilizar para desarrollar
la bodega de datos y del enfoque de esta guía, se deben tener en cuenta que es
necesario crear 3 ambientes; desarrollo, prueba y producción. Se debe estipular un
manual de cómo se van a pasar los futuros desarrollos a el ambiente de producción,
responsables de los ambientes, los formatos para especificar los objetos desarrollados
y pasos a seguir en el paso a producción. Es recomendable ser estrictos con estos
ambientes y su uso correcto, para así mantener el ambiente de producción (cara a los
usuarios finales) limpio y solo con los desarrollos ya aprobados y funcionando de
manera correcta.
12
- Diseñar los cubos multidimensionales.
- Generar los cubos multidimensionales.
Programar las tareas para limitar el tiempo de la implementación y poder
hacer un seguimiento del estado de la construcción de la bodega.
Planificar los tiempos de los recursos que se usaran para desarrollar las
tareas que se identificaron, crear un cronograma con los tiempos para
hacer seguimiento de la construcción de la bodega y ayudando a tener un
estado de la construcción para identificar si se están cumpliendo con los
tiempos establecidos. Se deben evitar tiempos muertos de los recursos, en
el caso de ser necesario cuando ya se inició la construcción de la bodega y
se presenta un inconveniente, se debe identificar tareas adicionales que
puedan impactar en el desarrollo, adicionarlo al cronograma con su
respectivo tiempo.
Asignar la carga de trabajo a los recursos apoyándose en los tiempos
identificados en el punto anterior.
Elaboración de un documento final que representa un plan del proyecto,
donde se incluyen los puntos anteriores, este documento debe ser muy
específico para que el equipo que va a construir la bodega de datos tenga
el mismo enfoque, conocimiento de las tareas, tiempos para cada tarea y
se eviten malinterpretaciones que se pueda ver reflejado en una mala
implementación y/o tareas que tomen más tiempo de lo planeado.
Continuando con la guía vamos a definir unos requerimientos generales para un área
de ventas de una empresa5:
La bodega de datos permitirá la integración de distintas fuentes de datos.
Definir el área de ventas en procesos que sean medibles.
Tener una sola versión de la información.
Proveer la información del área de ventas de la empresa en una sola
bodega de datos.
La bodega debe usar nombres estandarizados para que la posterior
generación de reportes sea de manera intuitiva.
5
Business Intelligence Business Requirements and the BI Portfolio - Steve Williams
http://www.b-eye-network.com/view/index.php?cid=6887
13
Permitir la consulta de la información por medio de cubos
multidimensionales para el uso de los usuarios finales.
Identificar la información necesaria para el área de ventas.
Puede que sea necesario crear dimensiones que guarden la historia por ejemplo como
el cambio de dirección o de cargo en la DIMENSION_EMPLEADO o la
DIMENSION_CLIENTE, estas dimensiones que es necesario que guarden historia son
llamadas dimensiones de tipo 2. Las dimensiones que no es requerido que guarden
historia son llamadas dimensiones de tipo 1. Las dimensiones de tipo 2 necesitan un
14
campo adicional en la tabla para poder identificar cual es el registro actual en caso de
llevar una historia.
En base a nuestro modelo multidimensional vamos a generar un modelo físico, con los
nombres de las tablas, campos y tipo de dato:
15
pruebas*
Arquitectura** 32bits 64bits 64bits
Procesador 2 núcleos, con 4 núcleos, con 4 núcleos, con
velocidad de 2,0 GHz velocidad de 2,5 GHz velocidad de 2,5 GHz
mínimo mínimo (con Socket libre para
un segundo
procesador
Memoria 8BG 16GB 32GB
Espacio en disco*** 2GB para instalación 2GB para instalación 2GB para instalación
5GB para 5GB para 5GB para
configuraciones y configuraciones y configuraciones y
logs logs logs
**La arquitectura para desarrollo y pruebas pueden ser distintos a los de producción si
las herramientas de software que se van a usar lo permiten, en el caso de ser
requerido, el servidor de pruebas debe tener la misma arquitectura que el servidor de
producción para poder evaluar de manera precisa el rendimiento de los desarrollos
que se van a pasar a producción.
***El espacio de disco puede variar dependiendo de las herramientas que van a
utilizar tanto como para almacenamiento de datos, como para la construcción de la
bodega de datos.
Se debe tener en cuenta que el servidor se pueda conectar a las distintas fuentes de
datos que van a alimentar la bodega de datos.
Para la instalación del software que se va a usar para desarrollar la bodega de datos
se debe tener la documentación para evitar errores y tiempos adicionales en el
desarrollo.
Se debe tener en cuenta los factores de uso de la bodega de datos a corto y largo
plazo para identificar cuando es necesario una configuración más grande y más
compleja de la bodega.
El equipo que va a desarrollar la bodega de datos debe tener acceso a las distintas
fuentes de datos y tener instalado el software que se va a utilizar para el procesos de
ETL. Aunque este fuera de esta guía, el equipo que va a hacer reporting (BI) debe
contar con el software correspondiente para realizar reportes y los accesos a la
bodega de datos cuando ya esté desarrollada.
16
Se recomienda que las tablas de hechos en la base de datos deben estar
particionadas por mes, esto con el fin de optimizar las consultas que se le realicen a
las tablas, que al paso del tiempo van adquiriendo volumen.
¿Cuáles son los factores de uso que llevarán a una configuración más grande y más
compleja?
17
Dependiendo de la herramienta ETL que se vaya a utilizar se debe crear las
conexiones a las distintas fuentes de los datos, como en nuestro caso a los archivos
planos, a la base de datos de recursos humanos con la información de los empleados
y a la base datos del área de ventas. Se debe tener en cuenta que los orígenes de
datos no pueden ser los mismos que los que necesite su empresa y se debería ajustar
a sus necesidad.
Archivos planos Cliente Archivos planos Productos Tabla Empleados Tabla Sucursal
Id Cliente Id Producto Id Empleado Nombre Sucursal
Nombres Cliente Nombre Producto Nombres Empleado País Sucursal
Apellidos Cliente Descripción Producto Apellidos Empleado Región Sucursal
Departamento
Sexo Cliente Marca Producto Sexo Empleado Sucursal
Dirección Cliente Dirección Empleado Ciudad Sucursal
Ciudad Cliente Ciudad Empleado Dirección Sucursal
Teléfono Cliente Teléfono Empleado
Correo Empleado
Cargo
Sucursal
18
de cada dimensión, se debe calcular de manera incremental, esta llave es
independiente del Id o llave que se usa en el modelo relacional.
Este es el diccionario de datos de las tablas que tenemos para la bodega que vamos a
desarrollar:
DIM_TIEMPO
Campo Tipo Dato Tamaño Descripción
Sk_Fecha INTEGER 8 Llave subrogada de la dimensión de tiempo
Anio INTEGER 4 Numero del año
Semestre INTEGER 1 Numero del semestre del año
Mes INTEGER 2 Numero del mes del año
Mombre_mes VARCHAR 10 Nombre del mes del año
Dia INTEGER 2 Numero del dia del mes
Nombre_dia VARCHAR 10 Nombre del dia del mes
DIM_CLIENTE
Campo Tipo Dato Tamaño Descripción
Sk_Cliente INTEGER 8 Llave subrogada de la dimensión cliente
Sk_Profesion INTEGER 10 Llave subrogada de la dimensión profesión
Sk_Sexo INTEGER 2 Llave subrogada de la dimensión sexo
Sk_Ciudad INTEGER 4 Llave subrogada de la dimensión ciudad
Id_Cliente INTEGER 15 Numero de identificación de cliente
Nombres VARCHAR 50 Nombres de cliente
Apellidos VARCHAR 50 Apellidos de cliente
Direccion VARCHAR 100 Dirección de residencia de cliente
Telefono INTEGER 20 Teléfono de cliente
Correo_e VARCHAR 50 Correo electrónico de cliente
DIM_PROFESION
Campo Tipo Dato Tamaño Descripción
Sk_Profesion INTEGER 8 Llave subrogada de la dimensión profesión
Id_Profesion INTEGER 8 Código de profesión
Nombre_profesion VARCHAR 50 Nombre de la profesión
DIM_SEXO
Campo Tipo Dato Tamaño Descripción
Sk_Sexo INTEGER 8 Llave subrogada de la dimensión de tiempo
Id_Sexo INTEGER 2 Código de sexo
Descripcion VARCHAR 20 Descripción de genero
19
HECHOS_VENTAS
Tipo
Campo Dato Tamaño Descripción
Sk_Fecha INTEGER 8 Llave subrogada de la dimensión de tiempo
Sk_Sucursal INTEGER 8 Llave subrogada de la dimensión sucursal
Sk_Empleado INTEGER 8 Llave subrogada de la dimensión empleado
Sk_Producto INTEGER 8 Llave subrogada de la dimensión producto
Sk_Cliente INTEGER 8 Llave subrogada de la dimensión cliente
Sk_Recibo INTEGER 8 Llave subrogada de la dimensión recibo
Cantidad_vendida INTEGER 8 Numero de productos vendidos
Monto_venta FLOAT Valor total de los productos vendidos
DIM_SUCURSAL
Campo Tipo Dato Tamaño Descripción
Sk_Sucursal INTEGER 8 Llave subrogada de la dimensión de tiempo
Sk_Ciudad INTEGER 8 Llave subrogada de la dimensión ciudad
Nombre_sucursal VARCHAR 50 Nombre de la sucursal
Direccion VARCHAR 50 Dirección de la sucursal
DIM_CIUDAD
Campo Tipo Dato Tamaño Descripción
Sk_Ciudad INTEGER 8 Llave subrogada de la dimensión ciudad
Id_Ciudad INTEGER 4 Código de ciudad
Nombre_Ciudad VARCHAR 50 Nombre de la ciudad
Id_Departamento INTEGER 4 Código del departamento donde se ubica la ciudad
Nombre_Departamento VARCHAR 50 Nombre del departamento donde se ubica la ciudad
Id_Region INTEGER 4 Código de la región donde se ubica la ciudad
Nombre_Region VARCHAR 50 Nombre de la región donde se ubica la ciudad
Id_Pais INTEGER 4 Código del país donde se ubica la ciudad
Nombre_Pais VARCHAR 50 Nombre del país donde se ubica la ciudad
DIM_RECIBO
Campo Tipo Dato Tamaño Descripción
Sk_Recibo INTEGER 8 Llave subrogada de la dimensión de recibo
Id_Recibo INTEGER 6 Código de recibo
Descripcion VARCHAR 50 Descripción de recibo
DIM_PRODUCTO
Campo Tipo Dato Tamaño Descripción
Sk_Producto INTEGER 8 Llave subrogada de la dimensión de tiempo
Id_Producto INTEGER 6 Código del producto
Nombre VARCHAR 50 Nombre del producto
20
Descripcion VARCHAR 50 Descripción del producto
Id_Marca INTEGER 6 Código de marca del producto
Nombre_Marca VARCHAR 50 Nombre de marca del producto
DIM_EMPLEADO
Campo Tipo Dato Tamaño Descripción
Sk_Empleado INTEGER 8 Llave subrogada de la dimensión de empleado
Sk_Cargo INTEGER 8 Llave subrogada de la dimensión de cargo
Sk_Sexo INTEGER 8 Llave subrogada de la dimensión de sexo
Sk_Ciudad INTEGER 8 Llave subrogada de la dimensión de ciudad
Id_Empleado INTEGER 8 Numero de identificación de empleado
Nombres VARCHAR 50 Nombres de empleado
Apellidos VARCHAR 50 Apellidos de empleado
Direccion VARCHAR 50 Dirección de residencia de empleado
Telefono INTEGER 20 Teléfono de empleado
Correo_e VARCHAR 50 Correo electrónico de empleado
DIM_CARGO
Campo Tipo Dato Tamaño Descripción
Sk_Cargo INTEGER 8 Llave subrogada de la dimensión de tiempo
Id_Cargo INTEGER 6 Código del cargo
Nombre_Cargo VARCHAR 50 Nombre del cargo
La tabla de tiempo se puede crear por medio de la herramienta de ETL que se utilice
fijando una fecha inicial y especificando que detalle de la fecha se requiere para poblar
otros campos de la tabla.
21
4.6. IMPLEMENTACIÓN
En esta parte se debe ver la convergencia entre la tecnología, los datos y las
aplicaciones de usuarios finales que serán accesibles desde el escritorio del usuario
del negocio. En esta guía nos enfocamos en los cubos multidimensionales que va a
ser nuestra aplicación de usuario final, se debe tener en cuenta que no se debe dejar
de lado el desarrollo de aplicaciones como reportes o dashboards.
Se debe tener una herramienta que cree los Metadatos de la bodega de datos. Los
metadatos son la capa que traduce la estructura física de los datos (con sus tablas,
campos y relaciones) en la terminología de negocio, que resulta familiar y conocida
por los usuarios de negocio6.
Contando que ya se cuentan con los metadatos ya podemos iniciar con la generación
de nuestros cubos multidimensionales. Debemos seleccionar el origen de datos que
son nuestras tablas de la bodega de datos. Los cubos que se van a generar son:
1- Un cubo que permita ver el valor de la venta por clientes, producto y sucursal por
mes.
Nuestra tabla de grupo de medidas es la tabla de hechos; FACT_VENTAS.
Nuestras medidas serán; Monto_venta.
Nuestras dimensiones son las tablas: DIM_CLIENTE, DIM_PRODUCTO,
DIM_SUCURSAL, DIM_CIUDAD, DIM_TIEMPO (con el campo mes), DIM_SEXO.
2- Un cubo que permita ver la cantidad de productos que se venden por sucursal por
mes.
Nuestra tabla de grupo de medidas es la tabla de hechos; FACT_VENTAS.
Nuestras medidas serán; Cantidad_vendida.
Nuestras dimensiones son las tablas: DIM_PRODUCTO, DIM_SUCURSAL,
DIM_CIUDAD, DIM_TIEMPO (con el campo mes).
3- Un cubo que permita ver el monto de ventas por sucursal y empleado, numero de
productos vendidos por empleado por mes.
Nuestra tabla de grupo de medidas es la tabla de hechos; FACT_VENTAS.
Nuestras medidas serán; Cantidad_vendida, Monto_venta.
Nuestras dimensiones son las tablas: DIM_PRODUCTO, DIM_CLIENTE,
DIM_EMPLEADO, DIM_CARGO, DIM_SUCURSAL, DIM_CIUDAD, DIM_TIEMPO
(con el campo mes).
4- Un cubo que permita ver la cantidad de productos que se venden por género y
profesión por mes.
Nuestra tabla de grupo de medidas es la tabla de hechos; FACT_VENTAS.
Nuestras medidas serán; Cantidad_vendida.
6
http://www.businessintelligence.info/productos/capa-semantica-business-intelligence.html
22
Nuestras dimensiones son las tablas: DIM_PRODUCTO, DIM_CLIENTE,
DIM_SEXO, DIM_PROFESION, DIM_TIEMPO (con el campo mes).
Estos 4 cubos están diseñados para responder algunas de las preguntas que se
pueden crear a partir de la bodega de datos que tenemos diseñada. No se debe
olvidad que los cubos pueden variar dependiendo del negocio. Como se ha venido
recomendando, en el caso de que la bodega de datos se haya modificado, se debe
tener en cuenta que los cubos también deben ser modificados o ajustados.
Se deben sentar las bases para el crecimiento y evolución de la bodega de datos, este
aspecto es clave en donde se debe manejar de forma iterativa utilizando el ciclo de
vida expuesto en la imagen 2, donde se establecen oportunidades de crecimiento,
nuevos requerimientos, cambios a la estructura de los datos, cambios de orígenes de
datos.
23
- Front Room: Es la parte responsable de la adquisición de los datos y
entrega a los usuarios, donde se tienen todos los reportes y cubos
desarrollados desde la bodega de datos.
Siguiendo por el camino inferior del diagrama, se encuentran los puntos que se
asocian al área de aplicaciones de Inteligencia de Negocios, encontramos tareas
donde se diseña y desarrolla aplicaciones para usuarios finales. Como ya se había
explicado al inicio del desarrollo de la guía, no vamos a enfocarnos en esta parte del
ciclo de vida.
24
5. CONCLUSIONES
25