Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici

Concevoir des modèles sémantiques

Introduction

Dans les chapitres précédents, nous avons exploré les concepts fondamentaux des entrepôts de données (Datawarehouse) et des lacs de données (Data Lakehouse). Ces structures permettent de stocker et de gérer des volumes massifs de données brutes et traitées. Cependant, pour tirer pleinement parti de ces données, il est nécessaire de les structurer et de les contextualiser pour les rendre intelligibles et exploitables par les utilisateurs finaux.

C’est ici qu’interviennent les modèles sémantiques. Tandis que les entrepôts et lacs de données se concentrent sur le stockage et la gestion des données, les modèles sémantiques ajoutent une couche logique qui organise ces données et les enrichit avec des informations contextuelles. Cette couche sémantique permet aux utilisateurs de comprendre et d’exploiter les données de manière plus efficace, en facilitant l’accès aux informations pertinentes pour la prise de décision.

Essentiels dans Power BI, ces modèles sémantiques prennent une importance accrue avec Microsoft Fabric, en servant de base à des fonctionnalités variées telles que les chatbots avec les AI Skills, les systèmes d’alertes avec Data Activator et l’entraînement de modèles d’IA avec la bibliothèque...

Donnée, Information et Connaissance

Le terme « sémantique » appliqué aux données peut paraître un peu obscur. Il est pourtant essentiel de comprendre la différence avec les autres modes de modélisations que nous avons vus précédemment. Faisons un court détour linguistique afin de clarifier cette notion.

Les concepts de « Donnée », « Information » et « Connaissance » revêtent une importance capitale dans de nombreux domaines et notamment dans le monde de l’informatique et des systèmes d’information. Attardons-nous sur ces termes et précisons ce qu’est une « donnée » et ce qui la différencie de l’« information » ou encore de la « connaissance ».

Étymologie

  • Donnée : traduction dans le domaine de l’informatique du mot anglais data, le mot provient du latin « datum », qui signifiait à l’origine (XIIIe siècle) « don », « aumône ». Il s’est peu à peu spécialisé en mathématiques, statistiques, psychologie et informatique pour désigner ce qui constitue la base d’un savoir en construction.

  • Information : le mot remonte au XIVe siècle...

Modélisation

Nous utilisons différents types de données pour des fins variées, ces données n’ont pas de sens tant qu’elles ne sont pas contextualisées.

La sémantique signifie par définition que les données représentent un sens. Un modèle sémantique donne un sens aux données, facilitant ainsi la prise de décision. Le modèle est un ensemble d’objets, de calculs et de logiques d’entreprise qui représente un processus réel, comme les ventes, la planification de la demande ou la tarification.

La modélisation est la clé de voûte dans un système décisionnel. Elle permet aussi bien de garantir de bonnes performances que de résoudre des problématiques fonctionnelles telles que l’historisation ou la gestion des stocks par exemple. Cette représentation symbolique de la réalité décrite par le système d’information utilise les terminologies adaptées au vocabulaire de l’entreprise et de ses utilisateurs.

La méthodologie décisionnelle a été théorisée par les deux pères fondateurs de la BI moderne Ralph Kimball et Bill Inmon. Chacun d’eux a une approche différente :

  • La méthodologie de Ralph Kimball se veut plus agile : elle est dite « bottom-up ». Il s’agit de construire des petits entrepôts spécialisés par besoins fonctionnels que l’on appelle Datamart. Cette méthode a l’avantage de pouvoir livrer des lots séparés plus rapidement. Bien que les Datamarts soient autonomes, ils peuvent malgré tout composer un ensemble plus large appelé entrepôt de données....

Modèle sémantique

Dans Power BI, l’objet modèle sémantique (anciennement nommé jeu de données ou Dataset) vous permet de donner du sens à vos données, de les structurer en entités cohérentes et de les analyser selon différentes perspectives. Vous créez ainsi une couche logique permettant de définir et d’organiser les données qui seront rendues accessibles aux utilisateurs finaux pour supporter la prise de décision via entre autres des rapports, tableaux de bord ou encore via l’indétrônable Excel.

Créé depuis un logiciel de développement tel que Power BI Desktop, le modèle sémantique peut ensuite être publié sur le service en ligne et être largement partagé à travers une application Power BI :

images/09RI05.png

Comme toutes les charges de travail présentées précédemment, Power BI peut être utilisé indépendamment ou dans le cadre d’une solution plus complète. Ainsi, Power BI peut être utilisé pour récupérer, transformer et enrichir des données avec Power Query, les corréler et rajouter des règles métier dans le modèle sémantique. Mais d’autres solutions incluant l’usage de Dataflow et de Datamart ou encore de Lakehouse ou Warehouse peuvent être...

Architecture tabulaire

Pour l’utiliser pleinement et effectuer des optimisations - qui peuvent devenir nécessaires au fil du temps -, nous devons comprendre de nombreux détails techniques concernant l’architecture tabulaire des modèles sémantiques. Les rapports sont souvent la partie émergée de l’iceberg mais le modèle sémantique est tout autant important. Lorsque, depuis un rapport, une requête est générée, celle-ci est envoyée au modèle tabulaire qui l’exécute. Dans certains cas, il devra accéder à une base de données SQL si le modèle utilise le mode Direct Query, scanner un stockage VertiPaq si le modèle est en mode import ou encore se connecter à un autre modèle tabulaire dans le cas d’un modèle composite ou Live Connexion. Nous le verrons par la suite, mais il est aussi possible de mixer ces modes dans un même modèle.

images/09RI06.png

Deux moteurs vont permettre aux bases de données tabulaires de répondre aux requêtes des utilisateurs :

  • Formula Engine (FE) : lorsqu’une base de données tabulaire reçoit une requête, le moteur de formule analyse son contenu et le transforme en un arbre d’opérateurs pour être exécuté. Bien qu’il soit extrêmement puissant, le moteur de formule est monotâche et n’utilise qu’un seul cœur (CPU). Cette spécificité du moteur de calcul influencera diverses décisions lors de l’optimisation du code DAX étant donné que le moteur de calcul est souvent moins rapide que les moteurs de stockage. Les étapes effectuées par le moteur de formule ne sont pas mises en cache et s’exécuteront à chaque nouvelle exécution de la requête.

  • Storage Engine (SE) : le moteur de stockage VertiPaq est un système de gestion de base de données en colonnes dans lequel les données résident en mémoire. Lorsque le moteur de formule nécessite l’accès aux données, il fait appel au moteur de stockage. Quand une requête est transmise au moteur de stockage, les résultats obtenus peuvent être conservés pour des usages ultérieurs, ce qui peut diminuer significativement le...

Mode d’accès aux données

Les modèles sémantiques peuvent se connecter à plusieurs sources de données (dans Fabric, OnPremises et en Multicloud) et de différentes façons. En fonction du type de sources, les données peuvent être importées, interrogées directement à l’aide de Direct Query ou via une connexion de type Live ou encore Composite et plus récemment en Direct Lake depuis le OneLake. Regardons en détail chacun de ces modes.

1. Import

La façon la plus performante de consommer des données dans Power BI est de les importer dans le modèle de données. Lorsque vous importez des données, vous en créez une copie qui reste statique jusqu’à ce que vous actualisiez de nouveau votre ensemble de données.

Les données importées sont toujours persistées sur la couche de stockage. Lorsqu’elles sont interrogées ou actualisées, les données doivent être entièrement chargées en mémoire, ce qui confère au modèle des performances optimales.

images/09RI12.png

Lorsqu’elles sont rafraîchies, les données sont compressées et optimisées, puis stockées sur le disque par le moteur de stockage VertiPaq.

Si les modèles en import présentent des avantages indéniables, ils présentent également des inconvénients :

  • L’ensemble du modèle doit être chargé en mémoire avant que Power BI puisse interroger le modèle, ce qui peut exercer une pression sur les ressources disponibles, en particulier lorsque le nombre et la taille des modèles augmentent.

  • Les données du modèle doivent être rafraîchies et leurs actualisations planifiées.

  • Une actualisation complète supprime toutes les données de toutes les tables et les recharge à partir de la source de données. Cette opération peut être coûteuse en termes de temps et de ressources pour le service Power BI et les sources de données. Power BI peut réaliser une actualisation incrémentielle pour éviter de tronquer et de recharger des tables entières, nous aborderons ce sujet dans la section Optimisations.

Si le mode Import est toujours à...

Création d’un modèle

La conception d’un modèle sémantique Power BI suit généralement les étapes suivantes :

  • Identifier les besoins et les objectifs des utilisateurs finaux en termes de données et d’analyses.

  • Choisir les sources de données appropriées qui contiennent les informations nécessaires. 

  • Importer ou se connecter aux sources de données.

  • Transformer et nettoyer les données en utilisant l’éditeur Power Query ou depuis des Notebooks ou des dataflows en amont.

  • Définir les relations entre les tables de données en utilisant le diagramme du modèle. 

  • Créer les mesures en utilisant le langage DAX.

  • Attribuer des formats, des catégories et des propriétés aux colonnes et aux mesures.

  • Appliquer les meilleures pratiques de modélisation, telles que la création d’une table distincte pour les dates, l’utilisation d’un schéma en étoile…

  • Tester et valider le modèle sémantique en utilisant des outils tels que le Générateur de performances ou via des outils tiers comme Tabular Editor ou DAX Studio.

  • Publier le modèle sémantique sur le service où il peut être partagé et consommé par les utilisateurs finaux et notamment distribué à travers des applications.

Dans cette partie, nous discuterons de l’établissement des relations entre les tables, de l’importance de disposer d’une table dédiée à l’analyse chronologique, de la génération de tables et de colonnes calculées, de la mise en place de hiérarchies et de mesures, ainsi que des méthodes pour configurer une sécurité fine d’accès aux données, et ce, dans le but d’optimiser et faciliter l’analyse des utilisateurs finaux.

1. Type de données

Lors de la conception d’un modèle sémantique dans Power BI, il est important de choisir le bon type de données pour chaque colonne ou mesure. Cela permet de s’assurer que les données sont stockées efficacement, affichées correctement et calculées avec précision.

Numériques

  • Nombre entier : pour les nombres entiers positifs ou négatifs...

Optimisations

Vous avez pu, au cours de la lecture de ce chapitre, vous rendre compte des nombreuses innovations permettant de faire des modèles sémantiques un outil performant d’analyse et d’interprétation des données. Cependant, avec l’augmentation du volume de données qui peut être simplement lié à un historique grandissant, ou du nombre d’utilisateurs des rapports, un besoin d’optimisation peut se faire ressentir.

Les bonnes pratiques doivent être adaptées aux exigences spécifiques de chaque entreprise et vérifiées dans leur contexte particulier. Il n’existe pas de solution universelle qui convienne à toutes les situations, chaque optimisation doit être soigneusement testée et mesurée avant d’être mise en production. Certaines pratiques sont plus pertinentes pour des modèles sémantiques volumineux, sensibles ou complexes. Il est crucial d’ajuster les optimisations en fonction de la criticité du modèle afin de ne pas entraver l’utilisation en libre-service, mais plutôt de la soutenir via un centre d’excellence. 

Si vous travaillez pour une entreprise de taille relativement importante, vous pouvez vous doter d’un centre d’excellence. C’est une équipe ou une structure dédiée à l’amélioration continue des pratiques, à la formation et au soutien des utilisateurs, garantissant ainsi l’adoption et l’efficacité des solutions implémentées dans toute l’organisation. Vous pouvez également mettre en place une « communauté de pratiques ».

1. Intégrité référentielle

Lorsque vous utilisez le mode Direct Query, l’option Intégrité référentielle supposée est disponible et peut améliorer les performances des requêtes dans certains cas.

images/09RI45.png

Cette option vous permet d’indiquer que la relation entre les tables est basée sur l’intégrité référentielle, c’est-à-dire qu’il n’y a pas de valeurs orphelines dans les colonnes de clés étrangères. En activant cette option, vous pouvez améliorer les performances des requêtes...

Copilot

Copilot pour Power BI propose diverses fonctionnalités conçues pour enrichir la façon de travailler avec les données et ceux depuis le service Power BI et Power BI Desktop. Lorsqu’ils sont activés, les Copilots exploitent la puissance de l’intelligence artificielle générative pour vous aider à maximiser l’utilisation de vos données. Vous trouverez les quelques prérequis à son usage à l’adresse suivante : https://go.fabricbook.fr/ch9-47.

Rappelons quelques précautions : les réponses de Copilot peuvent inclure un contenu inexact, ainsi garder toujours un esprit critique sur ce qui vous est suggéré, vous restez le pilote ! Explorons maintenant les divers types d’applications et les opportunités qu’elles présentent en ce qui concerne la conception des modèles sémantiques depuis Power BI Desktop.

Écriture d’une requête DAX

Exemple avec la création d’une requête DAX pour analyser les ventes par magasins et par produits :

images/09RI71.png

Modification d’une requête DAX

Exemple avec l’actualisation de la requête précédente afin d’y inclure un filtre sur l’année 2024 :

images/09RI72.png

Compréhension d’une requête DAX

Exemple avec la requête précédente :

images/09RI73.png

Création...