La solicitud

De Olivia Grant, Ingeniera de datos
Tu objetivo
Elige el plan que más reduce el modelo de Olivia sin perder nada de lo que necesitan los informes (informan por día y hora, producto y tipo de dispositivo).
Lo que recibe Olivia, y por qué
La lección
Un modelo Import de Power BI vive en memoria, comprimido por VertiPaq. Lo bien que se comprima decide cuánto pesa el archivo, cuánto tarda la actualización y lo rápido que recorre cada visual. El factor más grande es algo que controlas: la cardinalidad, el número de valores distintos de una columna.
Dónde estás trabajando
Este es un cuestionario. Para ver el tamaño de un modelo real en Power BI Desktop, abre la Vista de modelo (Model view) y revisa el Tipo de datos (Data type) de cada columna en el panel Propiedades (Properties), o usa la herramienta gratuita DAX Studio: Advanced → View Metrics (VertiPaq Analyzer) lista cada tabla y columna con su cardinalidad y tamaño.
Cómo guarda VertiPaq una columna
Cada columna se guarda por separado. VertiPaq construye un diccionario con los valores distintos de la columna y reemplaza el valor de cada fila por un número pequeño que apunta a él. Las tiradas del mismo número se guardan una vez con un contador (codificación por longitud de series). Los números enteros pueden saltarse el diccionario y guardarse directamente como números compactos (codificación por valor).
Así, una columna status con cuatro valores y 12,000 filas casi no cuesta nada: cuatro entradas de
diccionario y una lista de números diminutos. Una columna donde cada fila es distinta cuesta un
diccionario completo de 12,000 valores más las referencias. El número de filas importa mucho menos que
los valores distintos.
Tipos, de barato a caro
- Números enteros (claves como product_id, cantidades): se comprimen mejor. El tipo ideal para una clave.
- Fechas: buenas. Tres años de días son unos 1,100 valores distintos.
- Decimales: bien con una precisión razonable; el Número decimal fijo (moneda) suele ser más pequeño que el decimal completo.
- Datetime al segundo o al milisegundo: un valor distinto en casi todas las filas.
- Texto largo (comentarios, user agents, URL): diccionarios grandes, mala compresión.
- GUID: 36 caracteres aleatorios, únicos en cada fila. La peor columna que puedes importar.
Bajar la cardinalidad
- Separa fecha y hora. Una columna de fecha y una de hora (o una de hora del día si el informe solo necesita horas) sustituyen millones de marcas de tiempo por unos pocos miles de valores. En Power Query: selecciona la columna, Agregar columna → Fecha → Solo fecha y Hora → Hora, y quita la original (Add Column → Date → Date Only, Time → Hour).
- Claves enteras. Relaciona las tablas con claves de números enteros, no de texto ni GUID. Si el origen solo tiene un GUID, pide una clave sustituta en el almacén de datos.
- Redondea a la granularidad del informe. Precios a centavos, horas a la hora.
- Elimina el texto libre que el informe no muestra. Sustitúyelo por una categoría si hace falta.
- Quita las columnas que nadie usa. La columna más barata es la que no cargas.
Errores comunes
- Claves de texto porque el origen resulta tenerlas.
- Columnas calculadas para todo. Se guardan y comprimen como cualquier columna, y suman tamaño; una medida no cuesta nada hasta que un visual la pide.
- Fecha/hora automática activada. Power BI construye una tabla de fechas oculta para cada columna de fecha; desactívala en Archivo → Opciones y configuración → Opciones → Carga de datos y usa una sola tabla Date.
¡Linterna encendida!
Practicaste: performancevertipaqcompressioncardinalitydata typesmodel size
- Resuelto
- Sin pistas
- Al primer intento
