Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Como Construir Un Datawarehouse
Como Construir Un Datawarehouse
Error 12: Incluir atributos de texto en una tabla de hechos, si se hace con la
intencin de filtrar o agrupar.
Error 11: Abreviar las descripciones en las tablas de dimensin con la intencin de
reducir el espacio requerido.
Error 10: Dividir las jerarquas y los niveles de las jerarquas en mltiples
dimensiones.
Error 9: No afrontar el tratamiento de las dimensiones lentamente cambiantes.
Error 8: Crear smart keys para relacionar una tabla de dimensin con una tabla
de hechos.
Error 7: Aadir dimensiones en una tabla de hechos antes de definir su
granularidad.
Error 6: Crear un modelo dimensional para resolver un informe en particular.
Error 5: Mezclar hechos de diferente granularidad en una misma tabla de hechos.
Error 4: Olvidarse del mximo nivel de detalle en el modelo entidad-relacin.
Error 3: Omitir las tablas agregadas y comprimir las tablas de dimensin para
afrontar los problemas de rendimiento.
Error 2: No unificar los hechos entre distintas tablas de hechos
Error 1: No compartir dimensiones entre diferentes tablas de hechos.
Datawarehouse
venta (como el precio, o las unidades vendidas), o una dimensin temporal muy detallada.
O la matrcula del camin que subcontratamos para realizar los transportes. Si no tenemos
un maestro de los miles de camiones que utilizan nuestros transpostistas, ni queremos
analizarlo por las caractersticas del camin, podramos considerar la matrcula como una
especie de indicador e incluirlo en la tabla de hechos.
En caso de duda:
Dimensiones
Denominamos dimensiones a aquellos datos que nos permiten filtrar, agrupar o seccionar
la informacin. El trmino "dimensin" sigue teniendo un cierta connotacin tcnica, por
lo que muchas personas lo siguen denominando "atributo", "caracterstica", "propiedad",
"campo", o incluso "cuadradito azul" (en el caso de una instalacin de BO).
Algunas aplicaciones Business Intelligence utilizan el trmino "dimensin" como
equivalente a "jerarqua" (especialmente en bases de datos multidimensionales). De esta
manera, se habla de la dimensin geogrfica que agrupa los diferentes niveles de
continentes, pases, regiones, provincias y localidades.
Personalmente, prefiero reservar el trmino "dimension" para referirme a cada uno de los
niveles de la jerarqua.
En el modelo relacional del datawarehouse las dimensiones se almacenan en las "tablas
de dimensin", lo que nos lleva al error nmero 11 de nuestra serie:
Error 11: Abreviar las descripciones en las tablas de dimensin con la intencin de
reducir el espacio requerido.
El espacio requerido por las tablas de dimensin es despreciable frente a lo que ocupan
los hechos. Por ejemplo, una cadena como Zara puede tener unas 5000 tiendas, y debe
generar unos 3 o 4 millones de registros de venta diarios. En este y otros ejemplos que
podramos citar, tambin las dimensiones de cliente o producto son despreciable frente a
las ventas, los envos o la produccin diaria.
Por lo tanto, no debemos considerar el espacio como un aspecto determinante para
modelizar las dimensiones. En particular, cada cdigo debe tener su descripcin. Las
dimensiones son la interfaz que tendrn los usuarios para navegar por la informacin, por
lo que conviene que sean lo ms explcitas y claras posible.
Incluso debemos plantearnos la necesidad real de introducir los cdigos en la capa de
presentacin a los usuarios. Aunque algunos trabajadores pueden estar acostumbrados a
trabajar con los cdigos de familia, las referencias o los cdigos de proveedor, nadie los
conoce todos, y especialmente los nuevos empleados pueden tener dificultades para
reconocerlos. Siempre son preferibles las descripciones.
Personalmente, omito por defecto todos los cdigos de la capa de presentacin, y slo
cuando algn usuario lo solicita explcitamente lo aado en el sistema. Esta manera de
actuar nunca me ha generado un problema. De hecho, es sorprendente lo rpido que se
acostumbran los usuarios a trabajar con las descripciones y lo rpido que se olvidan de los
cdigos con los que han trabajado toda la vida... (una causa de esto es que con una
herramienta Business Intelligence raramente se ha de teclear un cdigo, ya que se trabaja
con clics de ratn y con listas de valores).
Jerarquas
Las dimensiones se agrupan en jerarquas mediante relaciones uno-a-muchos. Una
poblacin agrupa a muchos clientes. Una provincia agrupa a muchas poblaciones. Una
regin est formada por varias provincias. Etctera. Las jerarquas tpicas, que aparecen
en cualquier sistema Business Intelligence, son:
cada jerarqua. La misma tabla de PRODUCTOS debe tener toda la informacin relativa a
los productos (presentacin, producto, familia, marca).
El modelo dimensional es el que ataca nuestra herramienta de Business Intelligence, por
lo que interesa que las consultas generadas sean sencillas (con pocas tablas y pocas
relaciones). El modelo en estrella es perfecto para conseguir este objetivo. Adems,
desaparece el problema que generan las diferentes jerarquas en que se pueden agrupar
los productos.
Sin embargo, por desgracia, no siempre es posible tener un modelo en estrella perfecto.
La herramienta de explotacin puede requerir normalizar parte de una jerarqua en una
tabla independiente. Esta limitacin aparece cuando diferentes "hechos" estn definidos
con diferente granularidad. Por ejemplo, las ventas estn a nivel de "producto", pero los
objetivos de venta se marcan a nivel de "familia". En este caso, muchas herramientas BI
exigirn la existencia de una tabla de FAMILIAS.
Finalmente, es importante destacar que adems del "modelo dimensional" el DWH debe
mantener un modelo normalizado de la informacin (llamado "modelo relacional"). En
este otro modelo, la informacin s que debe estar normalizada, unificada y limpia.
Ampliar imagen
Analizando cuidadosamente los valores de esta tabla, puede observarse que Pedro era el
responsable de las delegaciones de Madrid y Barcelona, y que sus funciones fueron
El sistema funcionara de manera similar con cualquier otra dimensin que pudiese tener
la jerarqua de delegaciones, o cualquier otra jerarqua. Evidentemente, se trata de un
tema complejo y que debe considerarse, o caeramos de lleno en el error nmero 9:
Error 9: No afrontar el tratamiento de las dimensiones lentamente cambiantes
En cualquier definicin del trmino datawarehouse se menciona que es un repositorio de
informacin histrica, y con ello se pretende enfatizar que contiene:
Pues bien, este segundo punto se suele olvidar (o ignorar) en algunas implantaciones de
DWH por las siguientes razones:
Claves subrogadas
Tablas de hecho
Denominamos hechos a los indicadores de negocio. Por ejemplo, son hechos las
ventas, los pedidos, los envos, las reclamaciones, las compras, etc. Es decir, son todas
aquellas medidas numricas que incluiremos en nuestro sistema Business Intelligence.
Tcnicamente, una tabla de hecho es la tabla central de un modelo en estrella. En el
siguiente diagrama, la tabla de ventas es la tabla de hechos:
La organizacin temtica de la informacin se refiere a que los datos que estn cargados
incluyen los indicadores relevantes de diferentes reas de informacin de la compaa.
Adems, deben poder cruzarse los indicadores relativos al mismo objeto o evento del
mundo real.
Esta organizacin temtica de la informacin facilita posteriormente la construccin de
informes ad-hoc, ya que permite obtener y cruzar informacin que se gener en procesos
de negocio muy diferentes (aunque de una misma temtica). Observad que esta manera
de organizar la informacin es muy distinta de la existente en un sistema OLTP tradicional,
donde la informacin est organizada por transacciones y procesos.
Modelizar adecuadamente la estructura del sistema Business Intelligence es fundamental
para que posteriormente el usuario puede generarse cualquier informe que necesite. En
particular, es un error grave y frecuente el error nmero 6 de esta serie sobre cmo
construir un datawarehouse
Error 6: Crear un modelo dimensional para resolver un informe en particular.
Tablas agregadas
Aunque existen varias opiniones al respecto, yo soy de los que cree firmemente que en el
DWH debe estar disponible el mximo nivel de detalle de la informacin. Se debe guardar
cada ticket, cada venta, cada transaccin.
Si se dispone la informacin detallada, cualquier consulta posterior podr resolverse en
cualquier de las agrupaciones disponibles. Tal vez, de entrada, puede parecer suficiente
ver las ventas diarias de cada familia, s, Pero y si luego quiero verlo por grupo social? O
por hora de venta? O si lo quiero segmentar por precio de venta? O por tipo de
subfamilia? Slo si inicialmente se dise y carg el datawarehouse con la informacin
detallada podrn contestarse estas preguntas.
En general, dentro del DWH se distinguen tres reas principales:
rea de staging: Que contiene las informacin bruta extrada de los sistemas
operacionales. Es un rea temporal donde los datos se preparan y normalizan
antes de cargarse definitivamente en el DWH.
Modelo relacional: Es una base de datos donde la informacin se encuentra
normalizada. Contiene todo el detalle de informacin. Y toda la historia posible. No
hay tablas agregadas. En este punto la informacin ya est limpia e integrada, y ya
se han creado las claves subrogadas. Es preferible un modelo en "copo de nieve" o
incluso normalizado totalmente.
Modelo dimensional: Es la base de datos que utilizan las herramientas de Business
Intelligence para obtener la informacin y hacer los informes o anlisis. El modelo
dimensional est optimizado para conseguir un buen rendimiento. Existen tablas
agregadas. Se prefiere el modelo en estrella. Y, en mi opinin, tambin debe tener
todo o casi todo el detalle de informacin.
Soy consciente que el mximo nivel de detalle implica cargar muchos datos, y hacerlo por
triplicado, lo que requiere tiempo de carga y espacio en disco. Ya. Conozco las
desventajas. Y debemos asumirlas si queremos un datawarehouse que se til para las
necesidades actuales y para las necesidades futuras.
El error 4 de esta serie sobre cmo construir un datawarehouse trata este asunto:
Error 4: Olvidarse del mximo nivel de detalle en el modelo entidad-relacin.
Rendimiento