Implémenter des agrégations

Effectué

Lorsqu’un modèle sémantique sert des rapports sur des tables de faits volumineuses (tables avec des centaines de millions ou de milliards de lignes), même un DAX optimisé et une cardinalité réduite peuvent ne pas suffire. Les agrégations fournissent un moyen de synthétiser les données à l’avance afin que les requêtes courantes retournent des résultats à partir d’un petit cache en mémoire rapide au lieu d’analyser l’intégralité de la table de détails.

Comprendre quand les agrégations aident

Les agrégations sont les plus précieuses quand trois conditions existent :

  • Tables de faits volumineuses. Tables avec des centaines de millions de lignes qui ne peuvent pas être chargées efficacement en mémoire en totalité.
  • Modèles de requête courants. Les utilisateurs interrogent fréquemment au niveau du résumé (par mois, par région, par catégorie de produit) plutôt qu’au niveau de la transaction individuelle.
  • Modèles DirectQuery ou composites. Les données détaillées se trouvent dans une source externe et les requêtes aller-retour sont lentes.

Les agrégations fonctionnent en stockant les données récapitulatives précomputées dans une table en mode Importation que le moteur de requête vérifie en premier. Si la requête peut être répondue à partir de l’agrégation, le résultat retourne immédiatement à partir de la mémoire. Sinon, la requête est redirigée vers la table de détail.

Pensez à des agrégations comme un résumé exécutif devant un long rapport. La plupart des lecteurs obtiennent ce dont ils ont besoin à partir du résumé. Seuls ceux qui ont besoin de détails complets lisent l’intégralité du document.

Utiliser des agrégations définies par l’utilisateur

Les agrégations définies par l’utilisateur vous permettent de contrôler entièrement ce qui est résumé et stocké. Pour les implémenter :

  1. Créez une table d’agrégation. Dans Power Query, créez une table qui résume la table de faits au niveau du grain souhaité. Par exemple, résumez les ventes quotidiennes par catégorie de produit et région au lieu de transactions individuelles.
  2. Configurez le mappage d’agrégation. Dans la vue Modèle de Power BI Desktop, sélectionnez la table d'agrégation et ouvrez Gérer les agrégations. Mappez chaque colonne à sa colonne de table de détails correspondante et spécifiez la fonction d’agrégation (Sum, Count, Min, Max, GroupBy).
  3. Masquer la table d’agrégation. Les tables d’agrégation doivent être masquées des auteurs de rapports. Le moteur de requête les utilise automatiquement : les utilisateurs n’ont pas besoin de savoir qu’ils existent.
  4. Définissez les modes de stockage. La table d’agrégation utilise le mode Importation pour un accès rapide en mémoire. La table de détails utilise généralement DirectQuery afin que vous n’ayez pas besoin de charger des milliards de lignes en mémoire.

Lorsqu’un visuel interroge des données correspondant à la granularité et à la fonction de l’agrégation, le moteur renvoie le résultat provenant de la table d’importation. Lorsque la requête nécessite une granularité plus fine, elle passe de manière transparente à la table de détails DirectQuery.

Note

Les agrégations définies par l’utilisateur nécessitent un modèle composite (tables avec modes de stockage mixtes). La table d’agrégation est Import et la table de détails est DirectQuery. Les deux tables doivent avoir des relations correspondantes avec les mêmes tables de dimension.

Utiliser des agrégations automatiques

Les agrégations automatiques simplifient ce processus à l’aide du Machine Learning pour déterminer ce qu’il faut résumer. Au lieu de créer et de mapper manuellement des tables d’agrégation, Power BI analyse votre journal des requêtes et crée automatiquement, met à jour et supprime des agrégations en fonction des modèles d’utilisation réels.

Pour activer les agrégations automatiques :

  1. Ouvrez les Paramètres du modèle sémantique dans le service Power BI.
  2. Activer l’apprentissage automatique des agrégations.
  3. Planifiez une ou plusieurs actualisations.

Avec le premier cycle d’entraînement et d’actualisation, Power BI évalue le journal des requêtes (qui stocke sept jours de données de requête) et crée des tables d’agrégation en mémoire. Le système s’adapte en permanence : à mesure que les modèles de requête changent, les agrégations s’ajustent pour hiérarchiser les résumés les plus fréquemment demandés.

Les agrégations automatiques ont plusieurs exigences :

  • Une capacité Premium, une capacité Premium par utilisateur ou une capacité Fabric
  • Mode de stockage DirectQuery pour les tables qui ont besoin d’une agrégation
  • Sources de données prises en charge (Azure SQL Database, Synapse, Databricks, Snowflake et autres)

Vous pouvez utiliser des agrégations définies par l’utilisateur et automatiques dans le même modèle. Les agrégations définies par l’utilisateur gèrent les modèles connus, statiques, tandis que les agrégations automatiques s’adaptent à la modification du comportement des requêtes.

Surveiller l’efficacité de l’agrégation

Après avoir implémenté des agrégations, vérifiez qu’elles sont utilisées :

  • Vérifiez l’historique des actualisations. Dans les paramètres du modèle, l’historique d’actualisation indique la quantité de mémoire utilisée par le cache d’agrégation et le nombre de requêtes qu’il sert.
  • Utiliser Azure Log Analytics. Si votre capacité est connectée à Azure Log Analytics, vous pouvez analyser le pourcentage de requêtes servies par des agrégations et des requêtes qui atteignent directement la source de données. Cela vous donne une vue détaillée des taux de réussite de l'agrégation au niveau des requêtes DAX et SQL.

Si certaines requêtes ne passent pas par l’agrégation (et sont redirigées vers DirectQuery), vérifiez les modèles de requête. L’agrégation peut ne pas couvrir le grain ou la fonction demandée par les utilisateurs.

Agrégations et lac direct

Dans Microsoft Fabric, les modèles sémantiques utilisant le mode stockage Direct Lake lisent directement à partir de tables Delta dans OneLake sans importer de données en mémoire ou en envoyant des requêtes DirectQuery. Direct Lake est déjà rapide pour de nombreux scénarios, car il évite la surcharge liée à l’importation de données et aux allers-retours de requêtes externes.

Les agrégations peuvent compléter Direct Lake quand :

  • La table Delta sous-jacente est très volumineuse et les requêtes courantes nécessitent uniquement des résultats de niveau résumé.
  • Vous devez réduire la quantité de données chargées dans des segments de colonne pour les modèles fréquemment interrogés.

Pour la plupart des modèles Direct Lake, commencez par tester les performances sans agrégations. Ajoutez-les uniquement lorsque la mesure affiche un besoin clair.