Tablas de Hechos y Dimensiones en Power BI

Lectura
20 min~5 min lectura

Concepto clave

En el modelado de datos para analitica, las tablas de hechos y las tablas de dimensiones son los pilares fundamentales. Imagina que estas construyendo un dashboard para analizar ventas de una empresa. La tabla de hechos seria como el registro de cada transaccion: que producto se vendio, cuando, a que precio y en que cantidad. Contiene los numeros que quieres medir y analizar.

Las tablas de dimensiones, por otro lado, son como los contextos que dan significado a esos numeros. Siguiendo el ejemplo de ventas, tendrias una tabla de dimension para productos (con nombre, categoria, proveedor), otra para tiempo (fecha, mes, trimestre, año), y otra para clientes (nombre, region, segmento). La magia ocurre cuando conectas la tabla de hechos con las dimensiones, permitiendo analizar ventas por producto, por region o por periodo de tiempo.

"Las tablas de hechos contienen lo que medimos, las dimensiones contienen como lo categorizamos." - Principio fundamental del modelado dimensional

Como funciona en la practica

En Power BI, este modelo se implementa creando relaciones entre tablas. Vamos con un ejemplo paso a paso:

  1. Importa tus datos: una tabla de ventas (hechos) con columnas como ProductoID, FechaID, ClienteID, Cantidad, PrecioUnitario, TotalVenta.
  2. Importa tablas de dimensiones: Productos (ProductoID, NombreProducto, Categoria), Tiempo (FechaID, Fecha, Mes, Trimestre, Año), Clientes (ClienteID, NombreCliente, Region).
  3. En la vista de relaciones de Power BI, arrastra ProductoID desde la tabla de hechos (Ventas) hasta ProductoID en la tabla dimension Productos. Power BI detectara automaticamente que es una relacion uno a muchos.
  4. Repite para FechaID y ClienteID. Tu modelo ahora tendra una tabla de hechos en el centro conectada a tres dimensiones alrededor.

Ahora puedes crear visualizaciones que usen campos de cualquier tabla. Por ejemplo, un grafico de barras con Categoria (de Productos) en el eje X y Suma de TotalVenta (de Ventas) en el eje Y.

Caso de estudio

Una cadena de retail quiere analizar el desempeño de ventas. Tienen estos datos:

TablaColumnas claveTipo
VentasTransaccionID, FechaID, TiendaID, ProductoID, Cantidad, MontoHechos
ProductosProductoID, Nombre, Categoria, SubcategoriaDimension
TiendasTiendaID, NombreTienda, Ciudad, RegionDimension
TiempoFechaID, Fecha, DiaSemana, Mes, TrimestreDimension

El analista configura las relaciones: Ventas[FechaID] -> Tiempo[FechaID], Ventas[TiendaID] -> Tiendas[TiendaID], Ventas[ProductoID] -> Productos[ProductoID]. Con este modelo, puede responder preguntas como:

  • Cuales son las categorias de productos mas vendidas por region?
  • Como varian las ventas los fines de semana vs dias laborales?
  • Que tiendas tienen el mayor ticket promedio?

Todas estas respuestas se obtienen combinando metricas de la tabla de hechos (Monto, Cantidad) con atributos de las dimensiones (Region, DiaSemana, NombreTienda).

Errores comunes

  • Crear tablas de hechos con datos descriptivos: Incluir el nombre del producto directamente en la tabla de ventas. Esto causa duplicacion de datos y dificulta el analisis. Solucion: Mantener solo IDs en la tabla de hechos y los detalles en dimensiones.
  • No tener una dimension de tiempo separada: Usar solo la fecha de la transaccion sin una tabla de tiempo dedicada. Limita el analisis por periodos (meses, trimestres). Solucion: Crear siempre una tabla de tiempo con jerarquias temporales.
  • Relaciones incorrectas: Conectar tablas por campos que no corresponden exactamente (ej: nombres en lugar de IDs). Esto genera resultados erroneos. Solucion: Verificar que los campos de relacion tengan valores consistentes.
  • Dimensiones demasiado grandes: Incluir decenas de columnas irrelevantes en una dimension. Ralentiza el modelo. Solucion: Incluir solo las columnas necesarias para el analisis.

Checklist de dominio

  1. Identifico correctamente que tabla es de hechos (contiene metricas numericas) y cuales son dimensiones (contienen atributos descriptivos).
  2. Mis tablas de hechos tienen relaciones uno a muchos con las dimensiones correspondientes.
  3. He creado una dimension de tiempo separada para facilitar el analisis por periodos.
  4. Las tablas de dimensiones contienen solo la informacion necesaria para categorizar y filtrar los datos.
  5. Puedo explicar como una metrica de la tabla de hechos se combina con atributos de dimensiones en un visual.
  6. Verifique que no haya duplicacion de datos entre hechos y dimensiones.
  7. Se que debo usar IDs para las relaciones, no textos o descripciones.

Construye tu primer modelo de hechos y dimensiones

En este ejercicio practico, vas a crear un modelo basico de ventas en Power BI Desktop.

  1. Descarga el archivo de datos ventas_ejercicio.xlsx que contiene cuatro hojas: Ventas, Productos, Clientes y Tiempo.
  2. Abre Power BI Desktop y carga las cuatro hojas como tablas separadas.
  3. Ve a la vista de Relaciones (icono de dos circulos conectados en el panel izquierdo).
  4. Identifica la tabla de hechos (contiene montos de venta y cantidades) y las tres tablas de dimensiones.
  5. Crea relaciones arrastrando los campos de ID correspondientes:
    • Desde Ventas[ProductoID] hasta Productos[ProductoID]
    • Desde Ventas[ClienteID] hasta Clientes[ClienteID]
    • Desde Ventas[FechaID] hasta Tiempo[FechaID]
  6. Verifica que cada relacion sea de uno a muchos (la tabla de hechos es el lado "muchos").
  7. Ve a la vista de Reporte y crea un grafico de tabla que muestre:
    • En filas: Region (de Clientes)
    • En valores: Suma de MontoVenta (de Ventas)
  8. Agrega un segmentador de datos usando Mes (de Tiempo) para filtrar por periodo.

Si lo hiciste correctamente, podras filtrar las ventas totales por region y mes.

Pistas
  • La tabla de hechos es la unica que tiene columnas con valores numericos que puedes sumar o promediar.
  • Si no ves las relaciones automaticamente, puedes crearlas manualmente arrastrando de una tabla a otra en la vista de Relaciones.
  • Asegurate de que los IDs en las tablas coincidan exactamente en nombre y tipo de dato.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.