Implementar agregaciones
Cuando un modelo semántico provee informes sobre tablas de hechos grandes (tablas con cientos de millones o miles de millones de filas), es posible que, aún con un DAX optimizado y la cardinalidad reducida, no sean suficientes. Las agregaciones proporcionan una manera de resumir los datos de antemano para que las consultas comunes devuelvan resultados de una memoria caché pequeña y rápida en lugar de examinar toda la tabla de detalles.
Comprender cuándo ayudan las agregaciones
Las agregaciones son más valiosas cuando existen tres condiciones:
- Grandes tablas de hechos. Tablas con cientos de millones de filas que no se pueden cargar eficazmente en la memoria en su totalidad.
- Patrones de consulta comunes. Los usuarios suelen consultar en un nivel de resumen (por mes, por región, por categoría de producto) en lugar de en el nivel de transacción individual.
- DirectQuery o modelos compuestos. Los datos detallados residen en un origen externo y las consultas de ida y vuelta son lentas.
Las agregaciones funcionan almacenando los datos de resumen predefinidos en una tabla en modo de importación que el motor de consultas comprueba primero. Si la consulta se puede responder desde la agregación, el resultado se devuelve inmediatamente desde la memoria. Si no es así, la consulta pasa a la tabla de detalles.
Piense en agregaciones como un resumen ejecutivo al principio de un informe largo. La mayoría de los lectores obtienen lo que necesitan del resumen. Solo aquellos que necesitan detalles completos leen todo el documento.
Trabajar con agregaciones definidas por el usuario
Las agregaciones definidas por el usuario le proporcionan control total sobre lo que se resume y almacena. Para implementarlos:
- Cree una tabla de agregación. En Power Query, cree una tabla que resuma la tabla de hechos al nivel de granularidad que desee. Por ejemplo, resuma las ventas diarias por categoría y región del producto en lugar de transacciones individuales.
- Configurar el mapeo de agregación. En la vista de modelo de Power BI Desktop, seleccione la tabla de agregación y abra Administrar agregaciones. Asigne cada columna a su columna de tabla de detalles correspondiente y especifique la función de agregación (Sum, Count, Min, Max, GroupBy).
- Oculte la tabla de agregación. Las tablas de agregación deben ocultarse a los autores de informes. El motor de consultas los usa automáticamente: los usuarios no necesitan saber que existen.
- Establecer modos de almacenamiento. La tabla de agregación usa el modo de importación para el acceso rápido en memoria. La tabla de detalles normalmente usa DirectQuery, por lo que no es necesario cargar miles de millones de filas en la memoria.
Cuando una consulta visual busca datos que coincidan con el nivel de detalle y la función de la agregación, el motor devuelve el resultado de la tabla Importar. Cuando la consulta requiere una granularidad más fina, pasa a la tabla de detalles de DirectQuery de forma transparente.
Nota:
Las agregaciones definidas por el usuario requieren un modelo compuesto (tablas con modos de almacenamiento mixto). La tabla de agregación es Import y la tabla de detalles es DirectQuery. Ambas tablas necesitan establecer relaciones coincidentes con las mismas tablas de dimensiones.
Uso de agregaciones automáticas
Las agregaciones automáticas simplifican este proceso mediante el aprendizaje automático para determinar qué resumir. En lugar de crear y asignar manualmente tablas de agregación, Power BI analiza el registro de consultas y crea, actualiza y quita automáticamente agregaciones basadas en patrones de uso reales.
Para habilitar agregaciones automáticas:
- Abra la configuración del modelo semántico en el servicio Power BI.
- Habilite el entrenamiento de agregaciones automáticas.
- Programe una o varias actualizaciones.
Con el primer ciclo de entrenamiento y actualización, Power BI evalúa el registro de consultas (que almacena siete días de datos de consulta) y crea tablas de agregación en memoria. El sistema se adapta continuamente: a medida que cambian los patrones de consulta, las agregaciones se ajustan para priorizar los resúmenes solicitados con más frecuencia.
Las agregaciones automáticas tienen varios requisitos:
- Una capacidad Premium, Premium por usuario o Fabric
- Modo de almacenamiento de DirectQuery para las tablas que necesitan agregación
- Orígenes de datos admitidos (Azure SQL Database, Synapse, Databricks, Snowflake y otros)
Puede usar agregaciones definidas por el usuario y automáticas en el mismo modelo. Las agregaciones definidas por el usuario controlan patrones conocidos y estáticos, mientras que las agregaciones automáticas se adaptan al cambio del comportamiento de las consultas.
Supervisión de la eficacia de la agregación
Después de implementar agregaciones, compruebe que se usan:
- Compruebe el historial de actualizaciones. En la configuración del modelo, el historial de actualizaciones muestra la cantidad de memoria que usa la memoria caché de agregación y cuántas consultas sirve.
- Use Azure Log Analytics. Si la capacidad está conectada a Azure Log Analytics, puede analizar el porcentaje de consultas que son satisfechas por las agregaciones en comparación con aquellas que acceden directamente al origen de datos. Esto le proporciona una vista detallada de las tasas de acierto de agregación a el nivel de consulta DAX y SQL.
Si las consultas faltan en la agregación (pasando por DirectQuery), revise los patrones de consulta. Es posible que la agregación no cubra el grano o la función que solicitan los usuarios.
Agregaciones y Direct Lake
En Microsoft Fabric, los modelos semánticos que usan el modo de almacenamiento de Direct Lake leen directamente desde tablas Delta de OneLake sin importar datos en memoria ni enviar consultas de DirectQuery. Direct Lake ya es rápido para muchos escenarios, ya que evita la sobrecarga de la importación de datos y los recorridos de ida y vuelta de consultas externas.
Las agregaciones pueden complementar Direct Lake cuando:
- La tabla Delta subyacente es muy grande y las consultas comunes solo necesitan resultados de nivel de resumen.
- Debe reducir la cantidad de datos cargados en segmentos de columna para patrones consultados con frecuencia.
Para la mayoría de los modelos de Direct Lake, empiece por probar el rendimiento sin agregaciones. Agréguelos solo cuando la medida muestre una necesidad clara.