Saltar al contenido principal
InicioAcerca de Power BIAprende Power BI

Tutorial de Modelado de datos en Power BI

Descubre qué es el modelado de datos en Power BI y cómo unas buenas prácticas de modelado de datos pueden llevar tus informes de Power BI al siguiente nivel.
abr 2024  · 11 min leer

Las buenas prácticas de modelado de datos son muy importantes para crear informes de Power BI que estén optimizados para el rendimiento y puedan escalarse según sea necesario.

Este tutorial utiliza un conjunto de datos de muestra proporcionado por Microsoft, pero se ha adaptado para reflejar las mejores prácticas de modelado de datos que trataremos en este artículo. Puedes descargar el conjunto de datos aquí.

¿Qué es el modelado de datos?

El modelado de datos es el proceso de crear representaciones visuales de las conexiones entre estructuras de datos, con información sobre los atributos individuales contenidos en esas estructuras de datos.

Cuando se habla de modelado de datos en general, el término que oirás con más frecuencia es el de esquema en estrella. Este es un enfoque ampliamente adoptado para diseñar almacenes de datos y bases de datos relacionales, y es el enfoque que se recomienda adoptar también en Power BI

Utilizar un esquema estrella tiene dos ventajas principales:

  • Usabilidad: un esquema en estrella hace que tu modelo de datos sea más limpio y organizado, y tu informe será más fácil de usar.
  • Rendimiento: los esquemas en estrella te permiten escalar fácilmente tu informe a volúmenes de datos muy grandes. Las medidas DAX también se calculan más rápido y el informe de Power BI se actualiza más rápido en general.

¿Cómo funciona un esquema estrella?

Un esquema en estrella se compone de una tabla de hechos central con múltiples tablas de dimensiones que se ramifican a partir de esta tabla de hechos, de forma muy similar a la apariencia de una estrella. Idealmente, es una buena práctica tener sólo una tabla de hechos en un modelo de datos. Sin embargo, es posible incluir varias tablas de hechos en Power BI.

Captura de pantalla 1 Esquema en estrella de Power BI

Una tabla de hechos se compone de valores que pueden resumirse y agregarse, así como de una o varias claves que enlazan con las tablas de dimensiones. La finalidad de la clave es establecer conexiones entre tablas. Si tienes modelos de datos complejos o grandes volúmenes de datos, es recomendable que las claves sean valores numéricos en lugar de cadenas de texto, ya que esto puede mejorar el rendimiento del modelo.

Las tablas de hechos deben ser muy estrechas e incluir el menor número posible de columnas. Cualquier columna que describa las características de un conjunto de datos, como Nombre de producto o Categoría de producto, debe separarse de la tabla de hechos (si no está ya separada en el almacén de datos) en sus respectivas tablas de dimensiones. Este proceso se denomina normalización de los datos, y el objetivo es evitar la repetitividad.

Las tablas de dimensiones describen las características del conjunto de datos, donde las características se agrupan lógicamente en tablas separadas para evitar hinchar una sola tabla o dificultar la creación de relaciones. Las tablas de dimensiones deben contener valores únicos para las características que describen, y sus columnas se encargarán de filtrar o agrupar los datos en el informe de Power BI. 

Una extensión del esquema estrella es el esquema copo de nieve. En este enfoque, las tablas de dimensiones se dividen aún más si una característica tiene más categorías o subcategorías. En nuestro caso, tenemos una tabla Productos que contiene el ID del producto, el nombre del producto y la categoría del producto. En un esquema copo de nieve, esta tabla Productos sólo contendrá el ID del Producto y el Nombre del Producto, mientras que la Categoría del Producto se dividiría en su propia tabla con un ID de Categoría del Producto y una Categoría del Producto.

Captura de pantalla 2 Esquema en estrella de Power BI

Sin embargo, utilizar un esquema copo de nieve puede aumentar innecesariamente la complejidad de tu modelo de datos; incluir estas tablas adicionales podría disminuir el rendimiento y dificultar y confundir la creación de relaciones.

¿Cómo crear relaciones en Power BI?

Hay dos formas de crear una relación en Power BI:

  1. Selecciona un campo de una tabla y arrástralo hasta el campo de la segunda tabla con el que quieres que se forme la relación. 
  2. Selecciona Gestionar relaciones en la cinta de opciones y selecciona “New” para añadir una relación utilizando la misma ventana que veremos a continuación (excepto que empezará en blanco).

Por defecto, Power BI intentará inferir una relación entre las tablas; no siempre lo hace correctamente, por lo que puedes desactivar esta función en la configuración o eliminar las relaciones que se creen automáticamente. Para editar la relación, haz clic con el botón derecho del ratón en la línea que las une y selecciona “Properties”. 

Esta ventana tiene 2 opciones interesantes para definir una relación: cardinalidad y dirección del filtro cruzado. La elección de cada una de estas opciones puede tener un gran impacto en el informe resultante, así que elige con cuidado. Vamos a desglosar cada una de estas opciones.

Captura de pantalla Editar relación en Power BI

Cardinalidad

Hay 4 opciones de cardinalidad: varios a uno, uno a uno, uno a varios o varios a varios. 

Al crear relaciones, se recomienda que el campo de unión contenga valores únicos en al menos 1 de las tablas. Esto te permite utilizar las opciones de uno a varios o de varios a uno en tu modelo de datos. 

En nuestros datos, tenemos una relación entre la tabla Finanzas y la tabla Productos mediante el campo ID de Producto. La tabla Productos tiene valores únicos para el campo Producto (cada producto sólo aparece una vez en la tabla). Sin embargo, en la tabla Finanzas puede aparecer cada producto varias veces por fecha, país, segmento, etc.

La opción de varios a varios es la más problemática, y aunque puede ser muy útil en modelos complejos, sólo debe seleccionarse si comprendes perfectamente las consecuencias de esta relación.

Para ilustrar dónde pueden causar problemas las relaciones de varios a varios, creamos una tabla Objetivo de ventas anuales por Categoría de producto en el modelo de datos. Necesitamos poder informar de las cifras de ventas y de estos objetivos en el mismo visual. Esto puede conseguirse creando una relación de varios a varios entre la tabla Ventas Objetivo y la tabla Producto. 

Captura de pantalla Relación de varios a varios en Power BI

En la siguiente tabla visual, podemos ver nuestros valores de ventas y los objetivos uno al lado del otro para cada categoría de productos. 

Captura de pantalla 1 Cardinalidad en la tabla de Power BI

Sin embargo, si intentáramos ver esta tabla a nivel de Producto, los valores del objetivo serían completamente incorrectos. Esto se debe a los diferentes niveles de granularidad de los datos; como sólo hay objetivos de ventas a nivel de categoría de producto, Power BI no puede mostrar razonablemente estos objetivos a nivel de producto, por lo que los objetivos simplemente se duplican para cada producto de la categoría de producto. Si no supieras que esto puede ser consecuencia de utilizar una relación de varios a varios, podría ser muy problemático para la elaboración de informes empresariales.

Captura de pantalla 2 Cardinalidad en la tabla de Power BI

Direccionalidad

La opción de dirección del filtro cruzado permite elegir entre una sola dirección o ambas. Las relaciones fluyen de la tabla con valores únicos a la tabla con varios valores. En nuestro caso, la relación va de la tabla Productos a la tabla Finanzas. Esto significa que si la dirección del filtro cruzado es única, la tabla Finanzas puede filtrarse por los campos de producto y categoría de producto de la tabla Productos.  Sin embargo, la tabla Productos no puede filtrarse utilizando el campo ID de producto de la tabla Finanzas, ni utilizando ninguna otra característica contenida en otras tablas de dimensiones. 

Se recomienda la dirección única para la mayoría de los casos. Esto se debe a que las relaciones bidireccionales (utilizando la opción "ambas") no sólo disminuirán el rendimiento en el modo,l sino que también pueden introducir cierta ambigüedad al filtrar los datos.

En nuestro caso, considera las relaciones entre las tablas Producto, Países y Finanzas. Ambas son relaciones unidireccionales, de uno a varios. Esto significa que filtrar el informe por país no filtrará también, a su vez, la tabla Producto. Para ilustrarlo, considera las siguientes segmentaciones. Seleccionar un país (como EE. UU.) no hará que la segmentación de productos se ajuste sólo a los productos relevantes para ese país. 

Captura de pantalla 1 Direccionalidad en Power BI

Sin embargo, cambiando la relación entre la tabla Productos y la tabla Finanzas a bidireccional, podemos permitir que el filtrado fluya hacia la tabla Productos. En este caso, vemos que el producto Carretera no aparece en la segmentación Producto porque no hay ventas de ese producto en Estados Unidos de América.

Captura de pantalla 2 Direccionalidad en Power BI

Alternativamente, para evitar el uso de relaciones bidireccionales, puedes añadir un filtro al objeto visual de segmentación para excluir los elementos que estén en blanco. Cabe señalar que tendrías que hacer esto para cada visual que utilice campos a través de tablas de dimensiones.

Captura de pantalla del Filtro de Modelado de Datos de Power BI

Cómo optimizar tu modelo de Power BI

El factor más importante para optimizar tu modelo de Power BI es utilizar buenas prácticas de modelado de datos, como las expuestas en este tutorial. La mayoría de las veces, un buen modelo de datos puede permitir por sí solo que un informe de Power BI escale a millones y miles de millones de filas de datos, manteniendo un nivel decente de rendimiento. 

Sin embargo, hay algunas otras cosas que puedes hacer para optimizar tu modelo de Power BI, además de seguir buenas prácticas de modelado de datos, como por ejemplo

  • Desactivar la inteligencia temporal - Esta función de Power BI crea automáticamente jerarquías fecha/hora cada vez que se añade un campo de fecha a un visual. Cada vez que se crea una de estas jerarquías, en esencia se está añadiendo una tabla adicional al modelo de datos. Como puedes imaginar, esto puede sobrecargar significativamente el informe de Power BI, ralentizando la representación de los elementos visuales y aumentando el tiempo de actualización. Es una buena idea desactivar esta función y utilizar en su lugar una tabla de fechas específica para todas las jerarquías fecha/hora.
  • Carga sólo las columnas que realmente necesites - Utilizando el editor de Power Query, es una buena idea eliminar las columnas que no necesites o no vayas a utilizar en tu informe. Uno de los campos más comunes que se suele conservar por si acaso es necesario, es un campo ID de Fila. Este campo sería único para tu conjunto de datos, pero un ejemplo es un ID de Pedido para cada transacción en una tabla Pedidos. Muy a menudo, este campo ID también se almacena como texto, lo que hincha aún más el modelo. Si el campo ID no se utiliza explícitamente en una relación, normalmente no es necesario cargarlo en tu modelo.
  • Carga sólo las filas que necesites - No caigas en la trampa de pensar que necesitas importar todos los datos de tu empresa a tu informe de Power BI. Especialmente si llevas mucho tiempo en el negocio, esto puede significar que tu informe contendrá una gran cantidad de datos a los que nadie presta realmente atención. La clave aquí es hablar con los usuarios empresariales del informe y averiguar exactamente cuántos datos históricos necesitan ver. Si necesitan ver datos más antiguos, puedes plantearte importar sólo una versión resumida de esa tabla, en lugar de cada una de las transacciones.
Temas