Partager via


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

  • 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.

Configurer le notebook

Dans cette section, vous configurez un environnement de notebook avec les modules et données nécessaires.

  1. Installez SemPy à partir de PyPI à l’aide de la fonctionnalité d’installation incluse %pip dans le notebook :

    %pip install semantic-link
    
  2. Effectuez les importations nécessaires de modules dont vous aurez besoin ultérieurement :

    import sempy.fabric as fabric
    
  3. 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()
    
  4. 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)

Découvrez d’autres tutoriels pour le lien sémantique / SemPy :