Elección del mejor modo de almacenamiento

Modo de importación

  • Los datos se almacenan en Power BI, proporcionando rendimiento óptimo.
  • Requiere actualizaciones periódicas para mantener los datos actualizados.
  • Optimización:
    • Usar vistas en bases de datos relacionales en lugar de tablas.
    • Incluir solo las tablas, filas y columnas necesarias.
    • Implementar particiones y actualización incremental.
    • Usar tipos de datos adecuados (ej. enteros en vez de cadenas).
    • Asegurar que las consultas se pliegan.

 Modo DirectQuery

  • Consulta los datos en el origen sin almacenarlos en Power BI.
  • Ideal para grandes volúmenes de datos y datos en tiempo real.
  • Menor rendimiento y limitaciones en el modelado.
  • Optimización:
    • Evitar cálculos complejos en DAX.
    • Usar almacenamiento dual en dimensiones relacionadas con tablas de hechos.
    • Activar la propiedad Asumir integridad referencial en relaciones.
    • Evitar relaciones en columnas calculadas o de identificador único.

Modo Direct Lake

  • Accede a datos en Microsoft Fabric Lakehouse sin almacenarlos en Power BI.
  • Optimizado para tablas Delta.
  • Requiere almacenamiento en ADLS (Azure Data Lake Storage).
  • Optimización:
    • Configurar accesos directos al almacenamiento de ADLS.
    • Ajustar comportamiento de reserva en DirectQuery para consultas DAX complejas.

Modo Compuesto

  • Combina Importación y DirectQuery, o varios orígenes DirectQuery.
  • Permite relaciones muchos a muchos sin tablas puente.
  • Puede afectar el rendimiento si mezcla orígenes distintos.
  • Optimización:
    • Asegurar recursos suficientes en el origen back-end.
    • Minimizar valores literales en consultas de origen.
    • Mantener baja la cardinalidad en columnas de relaciones.

Configuración de modelos semánticos para datos de gran tamaño

Formato de almacenamiento de modelos semánticos de gran tamaño

  • Permite manejar modelos más grandes que el límite de 10 GB en Microsoft Fabric.
  • Facilita el escalado en modelos analíticos complejos.
  • Se activa desde la configuración del área de trabajo.

Actualización incremental

  • Actualiza solo los datos nuevos o modificados desde la última actualización.
  • Mejora el rendimiento y reduce el consumo de recursos.
  • Implementación:
    • Definir parámetros y filtrar filas en Power Query.
    • Configurar la directiva de actualización incremental en Power BI Desktop.
    • Opción de obtener datos recientes con DirectQuery.
    • Requiere publicación en un área de trabajo de Fabric compatible.
Partitioning (Particionamiento)
  • Divide una tabla en segmentos más pequeños para mejorar el rendimiento.
  • Permite actualizar solo ciertas particiones en vez de la tabla completa.
  • Se puede hacer con SQL Server Management Studio (SSMS) o Tabular Editor.

Trabajar con relaciones

Creación de un esquema de estrella

  • Organiza los datos con una tabla de hechos y tablas de dimensiones.
  • Permite filtrado y agregación eficiente de datos.

Tipos de relaciones

  • Uno a varios: Relación más común, desde dimensiones hacia hechos.
  • Varios a uno: Inversa de uno a varios.
  • Uno a uno: Menos común; considerar fusionar tablas.
  • Varios a varios: Requiere tabla puente o modelos compuestos.

Dirección del filtro

  • Normalmente de dimensiones a hechos.
  • Puede ser bidireccional en casos específicos (usarlo con precaución).
  • Integridad referencial: mejora el rendimiento si se usa INNER JOIN en lugar de LEFT OUTER JOIN.

Relaciones inactivas

  • Puede haber más de una relación entre tablas, pero solo una activa.
  • Usar USERELATIONSHIP en DAX para activar una relación inactiva temporalmente.

 

 

Uso de tablas desconectadas

  • No tienen relaciones con otras tablas del modelo.
  • Se usan para "entrada del usuario" en cálculos, como conversión de divisas o selección de parámetros.
 

Escritura de DAX para mejorar la legibilidad

Uso de Variables

  • Simplifican expresiones y mejoran el rendimiento.
  • Evitan cálculos repetidos.

Ejemplo:

 

 

Iteradores

  • SUMX, AVERAGEX, MAXX: Calculan fila por fila en una tabla.
  • Útiles para cálculos basados en contexto.

Ejemplo:

 

 

Filtrado de tablas

  • FILTER, ALL, CALCULATETABLE modifican el contexto del modelo.
  • Permiten cálculos dinámicos.

Ejemplo:

 

 

Funciones de ventanas

  • INDEX, OFFSET, WINDOW para cálculos en una ventana de datos.
  • Se usan en rankings, totales acumulados y comparaciones.

Ejemplo:

  

Funciones de información

  • ISBLANK, ISNUMBER, CONTAINS, HASONEVALUE ayudan a manejar condiciones especiales.

Ejemplo:

 


Creación de elementos de cálculo dinámico

Grupos de cálculo

  • Reducen redundancia y simplifican cálculos reutilizables.
  • Usados en inteligencia de tiempo.

Ejemplo:

 

Parámetros de campo

  • Permiten que el usuario seleccione dinámicamente qué datos visualizar.
  • Útil para informes interactivos.

Cadenas de formato dinámico

  • Ajustan el formato de una medida en función del valor.

Ejemplo: