Varias veces me ha ocurrido que al trabajar con un data warehouse me encuentro con que en la dimensión producto viene todo lo imaginariamente posible. Por ejemplo, si estamos hablando que si la información viene de un sistema de dulcería, en el catálogo de productos vienen todos los productos vendibles en ella: paletas, dulces, refrescos, palomitas o rosetas de maíz, chocolates, etc.
… pero también vienen escobas, el detergente para lavar los pisos, el aceite para el maíz inflado, los vasos desechables y hasta el papel higiénico del baño.
¿Qué sucede? Pues que el sistema sirve tanto para vender que como sistema de inventarios o almacén. Así que el catálogo de producto almacena todo.
Pregunta ¿entonces en un modelo de ventas de dulcería, la dimensión de productos deberá tener todos estos artículos aunque no se vendan?
Yo creo que nó.
Creo que lo correcto es crear 2 dimensiones: productos y materias primas. Los 2 se llenarán a partir del único catálogo de productos. Debemos extraer solo aquello que tiene que ver con ventas y depositarlo en el modelo de ventas. Lo otro irá al modelo de inventario o almacén.
Recuerden que a la información de un data warehouse o cubo “se le habrán aplicado procesos de transformación y limpieza”.

Es un buen comentario este de la limpieza
No debemos de ver al DWH como una Base de datos que todo lo soporta y todo lo aguanta sin deterioro en el performance
Yo también he visto catálogos ( de tiendas departamentales) que tienen millones de productos y algunos que fueron artículos de temporada en la navidad del 1971 y nunca mas se vendieron y en nuestra tabla de hechos solo tenemos 5 años
Y lo mismo pasa en las tablas de hechos, meten muchos registros que están completamente en cero o nulos en todas las métricas (indicadores o KPI). Yo lo que hago es que identifico las métricas que si son cero todas las demás se hacen cero y elimino esos registros, por ejemplo en el de Ventas si CantidadVendida=0 y CantidadDevoluciones=0 entonce se que Utilidad, CostodeVenta, CostoDevolucion, etc también son ceros y todo es cero por lo tanto no tiene razón de ser ese registro
Estimados.
Primero saludarlos y felicitar a los encargados ya que esta muy bueno y me ha servido de gran ayuda.
Ahora pasando al tema de los Cubos, tengo las siguientes consultas:
Actualmente estoy desarrollando un proyecto de BI con sqlserver 2005y en el diseño del datawarehouse no sé que tan efectivo puede ser usar vistas para conformar las dimensiones y tablas de hecho.
Me explico puedo tener 2 tablas fisicas que tengan la informacion de las ventas y formar una vista que represente mi tabla de hechos. (esto para tratar de manejar el tamaño de las tablas de hecho, ya que actualmente en sqlserver 2000 la tabla tiene alrededor de 50 millones de registros)
Por el otro lado, tener para el caso de dimensiones particulares una tabla y generar vistas que me sirvan para generar las dimensiones. (esto para no tener tantas tablas para dimensiones que en realidad no necesitan tablas por separado)
Atento a sus comentarios.
Saludos cordiales
Daniel Gónzalez
Hola Daniel
Mil gracias por tus comentarios.
Mira, en lo particular no soy muy afecto a las vistas, si me han tocado 2 o 3 clientes que les funciona.
Yo prefiero hacer formalmente un Datawarehouse ya que vá almacenando la historia con todas las ventas que puedan esto tener.
saludos
Hola Adrian.
Pero que es mejor dejar sólo una fact table con todos los registros o usar 2 o mas y unificarlas en una vista, ya que la tabla tiene 50 millones de registros y va a seguir creciendo.
Esto ya que ssql server standar no permite manejar particiones.
Saludos.