Tutoriel : Extraire et calculer des mesures Power BI à partir d’un notebook Jupyter
Ce tutoriel montre comment utiliser SemPy (préversion) pour calculer des mesures dans les modèles sémantiques (jeux de données Power BI).
Dans ce tutoriel, vous allez apprendre à :
- Évaluez les mesures Power BI par programmation via une interface Python de la bibliothèque Python de lien sémantique (SemPy).
- Familiarisez-vous avec les composants de SemPy qui permettent de combler l’écart entre l’IA et la BI. Ces composants sont les suivants :
- FabricDataFrame : structure de type pandas améliorée avec des informations sémantiques supplémentaires.
- Fonctions utiles qui vous permettent d’extraire des modèles sémantiques, notamment des données brutes, des configurations et des mesures.
Prérequis
Obtenir un abonnement Microsoft Fabric. Ou, inscrivez-vous pour un essai gratuit de Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Utilisez le sélecteur d’expérience en bas à gauche de votre page d’accueil pour basculer vers Fabric.
Sélectionnez Espaces de travail dans le volet de navigation gauche pour rechercher et sélectionner votre espace de travail. Cet espace de travail devient votre espace de travail actuel.
Téléchargez le modèle sémantique Retail Analysis Sample PBIX.pbix et chargez-le dans votre espace de travail.
Suivre le notebook
Le notebook powerbi_measures_tutorial.ipynb vient avec ce tutoriel.
Pour ouvrir le bloc-notes associé pour ce didacticiel, suivez les instructions de Préparer votre système pour les didacticiels de science des données pour importer le bloc-notes dans votre espace de travail.
Si vous préférez copier et coller le code de cette page, vous pouvez créer un nouveau notebook.
Assurez-vous d’attacher un lakehouse au notebook avant de commencer à exécuter du code.
Configurer le notebook
Dans cette section, vous configurez un environnement de notebook avec les modules et données nécessaires.
Installez
SemPy
à partir de PyPI à l’aide de la fonctionnalité d’installation incluse%pip
dans le notebook :%pip install semantic-link
Effectuez les importations nécessaires de modules dont vous aurez besoin ultérieurement :
import sempy.fabric as fabric
Vous pouvez vous connecter à l’espace de travail Power BI. Répertoriez les modèles sémantiques dans l’espace de travail :
fabric.list_datasets()
Charger le modèle sémantique. Dans ce tutoriel, vous utilisez le modèle sémantique Retail Analysis Sample PBIX :
dataset = "Retail Analysis Sample PBIX"
Lister les mesures d’espace de travail
Listez les mesures du modèle sémantique à l’aide de la fonction list_measures
de SemPy comme suit :
fabric.list_measures(dataset)
Évaluer les mesures
Dans cette section, vous évaluez les mesures de différentes façons à l’aide de la fonction evaluate_measure
de SemPy.
Évaluer une mesure brute
Dans le code suivant, utilisez la fonction evaluate_measure
de SemPy pour calculer une mesure préconfigurée appelée « Average Selling Area Size ». Vous pouvez voir la formule sous-jacente de cette mesure dans la sortie de la cellule précédente.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
Évaluer une mesure avec groupby_columns
Vous pouvez regrouper la sortie des mesures par certaines colonnes en fournissant le paramètre supplémentaire groupby_columns
:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Dans le code précédent, vous avez regroupé les colonnes Chain
et DistrictName
de la table Store
dans le modèle sémantique.
Évaluer une mesure avec des filtres
Vous pouvez également utiliser le paramètre filters
afin de spécifier des valeurs spécifiques que peut contenir le résultat pour des colonnes en particulier :
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
Dans le code précédent, Store
est le nom de la table, Territory
est le nom de la colonne et PA
est l’une des valeurs autorisées par le filtre.
Évaluer une mesure sur plusieurs tables
Vous pouvez regrouper la mesure par colonnes qui englobent plusieurs tables du modèle sémantique.
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
Évaluer plusieurs mesures
La fonction evaluate_measure
vous permet de fournir les identificateurs de plusieurs mesures et de générer les valeurs calculées dans le même DataFrame :
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Utiliser le connecteur XMLA Power BI
Le client de modèle sémantique par défaut s’accompagne des API REST de Power BI. S'il y a des problèmes lors de l'exécution de requêtes avec ce client, il est possible de basculer le backend vers l'interface XMLA de Power BI à l'aide de use_xmla=True
. Les paramètres SemPy restent les mêmes pour le calcul de mesures avec XMLA.
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
Contenu associé
Découvrez d’autres tutoriels pour le lien sémantique / SemPy :
- Tutoriel : Nettoyer les données avec des dépendances fonctionnelles
- Tutoriel : Analyser les dépendances fonctionnelles dans un modèle sémantique d’échantillon
- Tutoriel : Découvrir des relations dans le modèle sémantique, à l’aide du lien sémantique
- Tutoriel : Découvrir les relations dans le jeu de données Synthea, en utilisant le lien sémantique
- Tutoriel : Valider des données à l’aide de SemPy et Great Expectations (GX)