Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAPÍTULO 1
Inteligencia de Negocios
Gestión de la Información con Inteligencia de Negocios
Introducción a una Solución de Inteligencia de Negocios.
I N T E L I G E N C I A D E N E G O C I O S
A partir de los datos que nos proporciona el sistema de Business Intelligence podemos
descubrir conocimiento. Por ejemplo, en un concesionario de autos para taxis en Lima,
descubrimos la relación entre el número de visitas al concesionario y el número de
vehículos vendidos en el mes siguiente.
Parece claro que el número de visitas al concesionario parece un indicador clave, pero
¿todos los concesionarios lo recogen? Como hemos visto, Business Intelligence nos
servirá como ayuda para la toma de decisiones y, posteriormente, para descubrir cosas
que hasta ahora desconocíamos.
¿Está seguro de qué productos y clientes son los más importantes para su
empresa?
Sí No N/a
¿Dispone de alguna ventaja competitiva clara con respecto a las demás empresas
de su sector?
Sí No N/a
G E S T I Ó N D E L A I N F O R M A C I Ó N C O N
I N T E L I G E N C I A D E N E G O C I O S
Esta solución presenta herramientas para acceder a los orígenes de datos, la extracción
de datos, transformación de datos, carga de datos, elaboración del cubo, publicación de
datos a través del uso de reportes personalizados.
Aunque esta situación es hipotética, ¿nunca les ha ocurrido algo similar? Las causas
que pueden propiciar este tipo de situaciones son varias: no compartimos la definición
de “ventas”, tenemos distintos sistemas no integrados que pueden provocar diferencias,
no se han definido correctamente los períodos de tiempo para analizarlas, etc.
I N S TA L A C I Ó N D E L A P L A T A F O R M A D E
I N T E L I G E N C I A D E N E G O C I O S C O N
M I C R O S O F T
Windows Server
Es el sistema operativo de red que utilizaremos para realizar nuestro trabajo. Tener en
cuenta que el SQL Server, en cualquiera de sus ediciones, solo puede ser instalado
sobre este sistema operativo.
SQL Server
La versión a utilizar es la 2014, en la edición Enterprise, la cual solo funciona sobre un
sistema operativo de red.
Esta edición empresarial será instalada con toda la suite completa de herramientas,
como son el motor de base de datos, servicio de análisis, servicio de integración y
servicio de reportes.
I N T R O D U C C I Ó N A U N A S O L U C I Ó N D E
I N T E L I G E N C I A D E N E G O C I O S .
Microsoft nos presenta una variedad de controles para realizar dicho trabajo, tal y como
se muestra en la lista siguiente:
Ahora, dentro de estos controles, nosotros podemos manejar un flujo de proceso, que
nos permita completar el trabajo encomendado para la extracción, transformación y
carga de datos.
CAPÍTULO 2
Planeando Solución de Inteligencia de Negocios
Diseñando Data Mart
P L A N E A N D O S O L U C I Ó N D E
I N T E L I G E N C I A D E N E G O C I O S
Entrevista
Documentación Requerida
Definiendo Roles
Quienes son los personajes que harán uso de los resultados, quienes conforman
los orígenes de los datos, quienes se encargarán de transformar o procesar los
datos.
Se recomienda definir una matriz con todos los roles considerador en el proyecto,
desde el patrocinador, el gerente de proyecto, clientes, usuarios finales, etc.
Implementación
CAPÍTULO 3
Diseñando el Data Mart
Metodología Codd (Copo de Nieve)
Metodología Kimball (Estrella)
Analizando un Diseño OLTP Tradicional
D I S E Ñ A N D O D A T A M A R T
Un Data mart es una versión especial de almacén de datos (data warehouse). Son
subconjuntos de datos con el propósito de ayudar a que un área específica dentro del
negocio pueda tomar mejores decisiones. Los datos existentes en este contexto pueden
ser agrupados, explorados y propagados de múltiples formas para que diversos grupos
de usuarios realicen la explotación de los mismos de la forma más conveniente según
sus necesidades.
Según la tendencia marcada por Inmon sobre los data warehouse, un data mart
dependiente es un subconjunto lógico (vista) o un subconjunto físico (extracto) de un
almacén de datos más grande, que se ha aislado por alguna de las siguientes razones:
Seguridad: Para separar un subconjunto de datos de forma selectiva a los que queremos
permitir o restringir el acceso.
Estrategia para los consumidores de los datos en situaciones en las que un equipo de
almacén de datos no está en condiciones de crear un almacén de datos utilizable.
Según la escuela Inmon de data warehouse, entre las pérdidas inherentes al uso de
data marts están la escalabilidad limitada, la duplicación de datos, la inconsistencia de
los datos con respecto a otros almacenes de información y la incapacidad para
aprovechar las fuentes de datos de la empresa. Así y todas estas herramientas son de
gran importancia.
Las tablas de dimensiones tendrán siempre una clave primaria simple, mientras que en
la tabla de hechos, la clave principal estará compuesta por las claves principales de las
tablas dimensionales.
Este esquema es ideal por su simplicidad y velocidad para ser usado en análisis
multidimensionales (OLAP, Datamarts, EIS,..). Permite acceder tanto a datos agregados
como de detalle.
Otra razón para utilizar los esquemas en estrella es su simplicidad desde el punto de
vista del usuario final. Las consultas no son complicadas, ya que las condiciones y las
uniones (JOIN) necesarias sólo involucran a la tabla de hechos y a las de dimensiones,
no haciendo falta que se encadenen uniones y condiciones a dos o más niveles como
ocurriría en un esquema en copo de nieve. En la mayoría de los casos son preferibles
los de estrellas por su simplicidad respecto a los de copo de nieve por ser más fáciles
de manejar.
Finalmente, es la opción con mejor rendimiento y velocidad pues permite indexar las
dimensiones de forma individualizada sin que repercuta en el rendimiento de la base de
datos en su conjunto.
El procesamiento de transacciones en línea cada vez necesita más recursos para las
transacciones que se propagan por una red y que pueden integrar a más de una
empresa. Por esta razón, el software actual para sistemas OLTP utiliza procesamiento
cliente-servidor y software de intermediación (middleware) que permite a las
transacciones correr en diferentes plataformas en una red.
Tablas Normalizadas
Tablas Relacionadas
CAPÍTULO 4
Medidas y Granularidad
Tablas de Hecho
Tablas de Dimensión
A menudo se pensaba que todo lo que los usuarios pueden querer de un sistema de
información se podría hacer de una base de datos relacional. No obstante Codd fue uno
de los precursores de las bases de datos relacionales, por lo que sus opiniones fueron
y son respetadas.
Por ejemplo, una empresa podría analizar algunos datos financieros por producto, por
período, por ciudad, por tipo de ingresos y de gastos, y mediante la comparación de los
datos reales con un presupuesto. Estos parámetros en función de los cuales se analizan
los datos se conocen como dimensiones. Para acceder a los datos sólo es necesario
indexarlos a partir de los valores de las dimensiones o ejes.
El almacenar físicamente los datos de esta forma tiene sus pros y sus contras. Por
ejemplo, en estas bases de datos las consultas de selección son muy rápidas (de hecho,
casi instantáneas). Pero uno de los problemas más grandes de esta forma de
almacenamiento es que una vez poblada la base de datos ésta no puede recibir cambios
en su estructura. Para ello sería necesario rediseñar el cubo.
En un sistema OLAP puede haber más de tres dimensiones, por lo que a los cubos
OLAP también reciben el nombre de hipercubos. Las herramientas comerciales OLAP
tienen diferentes métodos de creación y vinculación de estos cubos o hipercubos.
Medidas
Las medidas más útiles para incluir en una tabla de hechos son los aditivos, es decir,
aquellas medidas que pueden ser sumadas como por ejemplo la cantidad de producto
vendido, los costes de producción o el dinero obtenido por las ventas; son medidas
numéricas que pueden calcularse con la suma de varias cantidades de la tabla. En
consecuencia, por lo general los hechos a almacenar en una tabla de hechos van a ser
casi siempre valores numéricos, enteros o reales.
Granularidad
Una tabla de hechos (o tabla fact) es la tabla central de un esquema dimensional (en
estrella o en copo de nieve) y contiene los valores de las medidas de negocio o dicho
de otra forma los indicadores de negocio. Cada medida se toma mediante la intersección
de las dimensiones que la definen, dichas dimensiones estarán reflejadas en sus
correspondientes tablas de dimensiones que rodearán la tabla de hechos y estarán
relacionadas con ella.
La pregunta clave para identificar si se trata de una tabla de hechos (fact) es ¿Qué
quiero medir?
Las tablas de hechos pueden contener un gran número de filas, a veces cientos de
millones de registros cuando contienen uno o más años de la historia de una gran
organización, esta cardinalidad estará acotada superiormente por la cardinalidad de las
tablas dimensionales, Por ejemplo, si se tiene una tabla de hechos "TH" de tres
dimensiones D1, D2 y D3, el número máximo de elementos que tendrá la tabla de
hechos TH será:
Card(TH) = Card(D1) x Card(D2) x Card(D3)
Donde 'Card(x)' es la cardinalidad de la tabla 'x'
Naturalmente, estas cardinalidades no son fijas, ya que, por ejemplo, si una de las
dimensiones se refiere a los clientes de la empresa, cada vez que se dé de alta un nuevo
cliente se estará aumentando la cardinalidad de la tabla de hechos. Una de las
dimensiones suele ser el tiempo, éste puede medirse de muy distintas formas (por
horas, días, semanas, ...), pero lo cierto es que transcurre continuamente, y para que el
sistema funcione se deben añadir registros periódicamente a la tabla de esta dimensión
(tabla de tiempos) y esto también produce un aumento de la cardinalidad de la tabla de
hechos, ésta es la principal causa de que las tablas de hechos lleguen a tener una
cantidad de registros del orden de millones de elementos.
Dimensiones
hechos y determinan los parámetros (dimensiones) de los que dependen los hechos
registrados en la tabla de hechos.
Las tablas de dimensiones son elementos que contienen atributos (o campos) que se
utilizan para restringir y agrupar los datos almacenados en una tabla de hechos cuando
se realizan consultas sobre dicho datos en un entorno de almacén de datos o data mart.
Estos datos sobre dimensiones son parámetros de los que dependen otros datos que
serán objeto de estudio y análisis y que están contenidos en la tabla de hechos. Las
tablas de dimensiones ayudan a realizar ese estudio/análisis aportando información
sobre los datos de la tabla de hechos, por lo que puede decirse que en un cubo OLAP,
la tabla de hechos contiene los datos de interés y las tablas de dimensiones contienen
metadatos sobre dichos hechos.
Dimensión Tiempo
En cualquier Dataware house se pueden encontrar varios cubos con sus tablas de
hechos repletas de registros sobre alguna variable de interés para el negocio que debe
ser estudiada. Como ya se ha comentado, cada tabla de hechos estará rodeada de
varias tablas de dimensiones, según que parámetros sirvan mejor para realizar el
análisis de los hechos que se quieren estudiar. Un parámetro que casi con toda
probabilidad será común a todos los cubos es el tiempo, ya que lo habitual es almacenar
los hechos conforme van ocurriendo a lo largo del tiempo, obteniéndose así una serie
temporal de la variable a estudiar.
Dado que el tiempo es una dimensión presente en prácticamente cualquier cubo de un
sistema OLAP merece una atención especial. Al diseñar la dimensión tiempo (tanto para
un esquema en estrella como para un esquema en copo de nieve) hay que prestar
especial cuidado, ya que puede hacerse de varias maneras y no todas son igualmente
eficientes. La forma más común de diseñar esta tabla es poniendo como clave principal
(PK) de la tabla la fecha o fecha/hora (tabla de tiempos 1). Este diseño no es de los más
recomendables, ya que a la mayoría de los sistemas de gestión de bases de datos les
resulta más costoso hacer búsquedas sobre campos de tipo "date" o "datetime", estos
costes se reducen si el campo clave es de tipo entero, además, un dato entero siempre
ocupa menos espacio que un dato de tipo fecha (el campo clave se repetirá en millones
de registros en la tabla de hechos y eso puede ser mucho espacio), por lo que se
mejorará el diseño de la tabla de tiempos si se utiliza un campo "TiempoID" de tipo
entero como clave principal
De forma análoga a como se ha hecho con el campo mes, se podrían añadir más
campos como "Época del año", "Trimestre", "Quincena", "Semana" de tipo texto para
poder visualizarlos, y sus análogos de tipo entero "Época del año_ID", "TrimestreID",
"QuincenaID", "SemanaID" para poder realizar agrupaciones y ordenaciones. En
general se puede añadir un campo por cada nivel de granularidad deseado.
Otro campo especial que se puede añadir es el "Día de la semana" ('lunes', 'martes', ...),
este campo se suele añadir para poder hacer estudios sobre el comportamiento de los
días de la semana en general (no del primer lunes del mes de enero de un año concreto,
este tipo de estudio no suele tener interés), por esta razón, este campo no necesita ir
acompañado del mes o del año como los campos anteriores. También se puede añadir
su campo dual "ID" de tipo entero para poder ordenar y agrupar si fuera necesario.
Con los añadidos descritos podríamos tener una "Tabla de tiempos". Esta sería válida
para un diseño en estrella, para un diseño en copo de nieve habría que desglosar la
tabla de tiempos en tantas tablas como niveles jerárquicos contenga. Obsérvese que
los campos de tipo "ID" son todos de tipo entero, ya que será sobre estos campos sobre
los que se realizarán la mayoría de las operaciones y estas se realizarán más
eficientemente sobre datos enteros.
Sabiendo de donde vamos a extraer los datos, crearemos una vista de origen de datos,
desde la cual se especificarán las dimensiones y hechos que utilizaremos para crear el
cubo, como se puede ver se inicializa el asistente para vistas.
Se recomienda primero seleccionar la tabla de hechos, sobre la cual giran las demás
tablas de dimensiones del datawarehouse.
Para mayor seguridad, seleccionamos la tabla de hechos y luego hacemos un clic sobre
el botón “Add Related Tables” para que se agreguen todas las tablas que se encuentren
relacionadas a dicha tabla de hechos,
Una vez tengamos listo la vista, procederemos a crear el cubo, para ello haremos clic
derecho sobre el icono de Cubos y seleccionamos nuevo cubo.
Ahora procederemos a llenar el cubo con los datos provenientes del dataware house,
para ello hacemos clic en el botón de procesar, apareciendo una ventana similar a esta,
donde damos aceptar.
Desde esta ventana podremos dar a conocer algunas propiedades del cubo antes de su
llenado.
Una vez agregados los campos, volvemos a procesar todo el cubo, le damos recargar y
actualizar los datos, de tal forma que podamos distinguir los cambios realizados.
CAPÍTULO 5
Planificación del ETL
Planificando una solución SSIS
Diseño del flujo de datos
P L A N I F I C A C I Ó N D E L E T L
ETL (Extract Transform Load = Extraer, Transformar y Cargar) es la operación
que permite recuperar los datos desde una origen (puede ser desde cualquier
DBMS del mercado) hacia el datawarehouse (destino).
Hay que tener bien en claro que existen un origen (source) y un destino
(destination) para todo ETL.
Identificación de requisitos
Para iniciar nuestro proyecto es necesario contar con los permisos necesarios
para poder acceder a los “orígenes de datos”, vale decir, los usuarios de BD que
tengan privilegios de administrador o de lo contrario que sean propietarios de la
BD.
El servidor de desarrollo debe tener una conectividad con los servidores de BD
que servirán de orígenes.
Tener una idea clara de que datos son los necesarios para la extracción.
CAPÍTULO 6
Planificando una solución SSIS
Planificando Paquetes
Diseño del flujo de control de los paquetes
P L A N I F I C A N D O U N A S O L U C I Ó N S S I S
Empezamos creando un nuevo proyecto con el Visual Studio NET que viene
incorporado con el SQL Server.
Una vez creado el paquete, hacemos clic derecho sobre él y seleccionamos “EDIT”,
para que se apertura una nueva ventana de trabajo.
Desde este punto vamos a poder crear los orígenes y destinos de nuestro ETL,
empezamos creando un componente de tipo “Source Asistent” para definir la base de
datos de origen.
Ahora damos a conocer el nombre del servidor al cual nos conectaremos para extraer
los datos, así mismo el nombre de la base de datos origen. Tener en cuenta que
podemos administrar varios orígenes de datos.
Es recomendable hacer una prueba de conexión, para verificar que estamos realizando
correctamente el trabajo.
Una vez completado el proceso de creación de del objeto conexión, podremos configurar
el objeto de origen de datos. Tener en cuenta que el objeto conexión será reutilizado
cada vez que se quiera recuperar datos desde la base de datos a la cual tiene acceso.
Ahora, el objeto de origen de datos requiere saber de dónde vendrán los datos, para
ello podemos escoger entre acceder directamente a una tabla a o vista de la base de
datos o de lo contrario se puede insertar una sentencia de tipo SQL que indique los
datos requeridos.
Para este caso hemos seleccionado una tabla, pudiendo indicar que campos son los
que serán utilizados, basta con marcar el campo que será utilizado.
Como se puede observar, en la lista inferior solo se muestran los campos que están
siendo considerados para la extracción de datos.
Ahora crearemos un objeto de destino, pero nos pide crear primero un objeto de origen
de datos, en este caso seleccionaremos el servidor de destino, el que contiene nuestro
datawarehouse.
No olvidar siempre realizar sus pruebas de conexión de datos, para comprobar que el
trabajo se está realizando correctamente.
CAPÍTULO 7
Diseño del flujo de datos
Compresión del flujo de datos
Diseño de las operaciones
D I S E Ñ O D E L F L U J O D E D A T O S
Ahora debemos de tener una vista que muestre a los objetos de origen y destino de
datos, sin embargo, el objeto de destino de datos se muestra con un símbolo de error,
esto porque este tipo de objeto depende su funcionamiento de un origen de datos.
Ingresamos a configurar el objeto de destino de datos haciendo clic derecho sobre él,
luego seleccionamos “edit”, para que se muestre una pantalla donde se especificará
que tabla será la que reciba los datos del origen.
Una vez seleccionada la tabla de destino, procederemos a emparentar los campos del
origen de datos con los del destino, debiéndose tener una vista como la que sigue.
que verificar la conectividad hacia las conexiones o podría ser un problema con los tipos
de datos de los campos que se están utilizando.
Dentro de las propiedades del control, procederemos a indicar hacia que servidor y base
de datos nos conectaremos.
Se abrirá una ventana donde digitaremos la sentencia SQL que nos permita borrar los
datos existentes en las tablas de nuestro datawarehouse.
Para este caso es importante iniciar el flujo con el control que nos permite borrar el
contenido de las tablas del datawarehouse.
Una vez completo el flujo de trabajo, procederemos a realizar la prueba del modelo, para
ello haremos clic sobre el botón de ejecutar o de lo contrario presionamos el botón F5
con lo cual se empezará la corrida del proyecto. Se espera que todos los controles
muestren un icono de color verde que indica que todo salió correctamente.
Í N D I C E
Capítulo 1 .................................................................................................................... 1
Inteligencia de Negocios ........................................................................................ 2
Que es Inteligencia de Negocios ........................................................................... 2
Como apoya Inteligencia de Negocios al flujo de información de la empresa ........ 3
Quien necesita soluciones de Inteligencia de Negocios ........................................ 3
Gestión de la Información con Inteligencia de Negocios .................................... 5
El escenario competitivo de hoy ............................................................................ 5
Necesidad de Inteligencia de Negocios ................................................................. 5
El valor de Inteligencia de Negocios ...................................................................... 6
Instalación de la Plataforma de Inteligencia de Negocios con Microsoft ........... 7
Windows Server .................................................................................................... 7
SQL Server ........................................................................................................... 7
Introducción a una Solución de Inteligencia de Negocios. ................................. 8
Creando Modelo de Data Mart con SQL Server .................................................... 8
Creando ETL con SQL Server ............................................................................... 8
Creando Cubo con Analysis Services.................................................................. 10
Capítulo 2 .................................................................................................................. 11
Planeando Solución de Inteligencia de Negocios .............................................. 12
Pasos del Proceso .............................................................................................. 13
Entrevista......................................................................................................... 13
Documentación Requerida .............................................................................. 13
Ubicación e Interpretación de Datos ................................................................ 13
Definiendo Roles ............................................................................................. 13
Definiendo el Grupo de Trabajo........................................................................... 14
Estimando el Costo del Proyecto ..................................................................... 14
Documentando el Plan de Solución ................................................................. 15
Implementación ............................................................................................... 15
Diseñando Data Mart ............................................................................................ 17
Metodología Codd (Copo de Nieve) .................................................................... 18
Metodología Kimball (Estrella) ............................................................................. 19
Analizando un diseño OLTP Tradicional .............................................................. 20
Tablas Normalizadas ....................................................................................... 21
Tablas Relacionadas ....................................................................................... 21
Analizando un diseño OLAP ................................................................................ 24
Medidas ........................................................................................................... 25
Granularidad .................................................................................................... 25
Tabla de Hechos o Fact Table ......................................................................... 26
Dimensiones .................................................................................................... 26
Dimensión Tiempo ........................................................................................... 27
Elaborando nuestro Cubo ................................................................................ 29
Capítulo 3 .................................................................................................................. 41
Planificación del ETL ............................................................................................ 42
Identificación de fuentes y destinos de datos ...................................................... 42
Evaluación de las fuentes de datos ..................................................................... 44
Identificación de requisitos .................................................................................. 44
Planificando una solución SSIS........................................................................... 46