Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel montre comment utiliser un notebook Jupyter pour interagir avec Power BI et détecter les relations entre les tables avec la bibliothèque SemPy.
Dans ce tutoriel, vous allez apprendre à :
- Découvrez les relations dans un modèle sémantique (jeu de données Power BI) à l’aide de la bibliothèque Python de lien sémantique (SemPy).
- Utilisez des composants SemPy qui s’intègrent à Power BI et automatisent l’analyse de la qualité des données. Ces composants sont les suivants :
-
FabricDataFrame- une structure de type pandas améliorée avec des informations sémantiques - Fonctions qui extrayent des modèles sémantiques d’un espace de travail Fabric dans votre bloc-notes
- Fonctions qui testent les dépendances fonctionnelles et identifient les violations de relation dans vos modèles sémantiques
-
Prérequis
Souscrivez à un abonnement Microsoft Fabric . Inscrivez-vous à la version d’évaluation gratuite de Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Basculez vers Fabric à l’aide du sélecteur d’expérience situé en bas à gauche de votre page d’accueil.
Accédez aux espaces de travail dans le volet de navigation, puis sélectionnez votre espace de travail pour le définir comme espace de travail actif.
Téléchargez les modèles sémantiques Customer Profitability Sample.pbix et Customer Profitability Sample (auto).pbix à partir du référentiel GitHub fabric-samples, puis chargez-les dans votre espace de travail.
Suivre le notebook
Utilisez le bloc-notes powerbi_relationships_tutorial.ipynb pour suivre.
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
Configurez un environnement de notebook avec les modules et les données dont vous avez besoin.
Installez le
semantic-linkpackage à partir de PyPI à l’aide de la%pipcommande inline dans le notebook.%pip install semantic-linkImportez les
sempymodules que vous utiliserez ultérieurement.import sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violationsImportez la
pandasbibliothèque et définissez une option d’affichage pour la mise en forme de sortie.import pandas as pd pd.set_option('display.max_colwidth', None)
## Explore semantic models
This tutorial uses the Customer Profitability Sample semantic model [_Customer Profitability Sample.pbix_](https://github.com/microsoft/fabric-samples/blob/main/docs-samples/data-science/datasets/Customer%20Profitability%20Sample.pbix). Learn about the semantic model in [Customer Profitability sample for Power BI](/power-bi/create-reports/sample-customer-profitability).
- Use SemPy's `list_datasets` function to explore semantic models in your current workspace:
```python
fabric.list_datasets()
Pour le reste de ce notebook, utilisez deux versions du modèle sémantique Customer Profitability Sample :
- Exemple de rentabilité du client : modèle sémantique fourni dans les exemples Power BI, avec des relations de table prédéfinies
- Exemple de rentabilité du client (auto) : les mêmes données, mais les relations sont limitées à celles que power BI détecte automatiquement
Extraire des relations prédéfinies à partir de l’exemple de modèle sémantique
Chargez les relations prédéfinies dans le modèle sémantique Customer Profitability Sample à l’aide de la
list_relationshipsfonction SemPy. La fonction répertorie les relations à partir du modèle objet tabulaire (TOM).dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationshipsVisualisez le
relationshipsDataFrame en tant que graphique à l’aide de la fonction semPyplot_relationship_metadata.plot_relationship_metadata(relationships)Ce graphique montre les relations entre les tables de ce modèle sémantique tel que défini dans Power BI par un expert en matière.
Découvrir des relations supplémentaires
Si vous commencez par des relations que Power BI détecte automatiquement, vous disposez d’un ensemble plus petit.
Visualisez les relations détectées automatiquement par Power BI dans le modèle sémantique :
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)La détection automatique de Power BI manque de nombreuses relations. En outre, deux des relations détectées automatiquement sont sémantiquement incorrectes :
-
Executive[ID]->Industry[ID] -
BU[Executive_id]->Industry[ID]
-
Imprimez les relations dans une table :
autodetectedLes lignes 3 et 4 affichent des relations incorrectes avec la
Industrytable. Supprimez ces lignes.Ignorez les relations identifiées de manière incorrecte.
# Remove rows 3 and 4 which point incorrectly to Industry[ID] autodetected = autodetected[~autodetected.index.isin([3, 4])]Vous avez maintenant des relations correctes mais incomplètes. Visualisez ces relations incomplètes à l’aide de
plot_relationship_metadata:plot_relationship_metadata(autodetected)Chargez toutes les tables à partir du modèle sémantique, à l’aide des fonctions et
list_tablesdesread_tablefonctions SemPy, puis recherchez les relations entre les tables à l’aidefind_relationshipsde . Passez en revue la sortie du journal pour obtenir des informations sur le fonctionnement de cette fonction :suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )Visualisez les relations nouvellement découvertes :
plot_relationship_metadata(suggested_relationships_all)SemPy détecte toutes les relations.
Utilisez le paramètre
excludepour limiter la recherche aux relations supplémentaires qui n’ont pas été identifiées précédemment :additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
Valider les relations
Tout d’abord, chargez des données à partir du modèle sémantique Customer Profitability Sample .
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()Vérifiez que la clé primaire et la clé étrangère se chevauchent avec la
list_relationship_violationsfonction. Passez la sortie de lalist_relationshipsfonction àlist_relationship_violations.list_relationship_violations(tables, fabric.list_relationships(dataset))Les résultats révèlent des insights utiles. Par exemple, l’une des sept valeurs dans
Fact[Product Key]n’est pas présente dansProduct[Product Key], et la clé manquante est50.L’analyse exploratoire des données et le nettoyage des données sont itératifs. Ce que vous apprenez dépend de vos questions et de la façon dont vous explorez les données. Le lien sémantique ajoute des outils qui vous aident à effectuer davantage de travail avec vos données.
Contenu connexe
Explorez d’autres tutoriels pour le lien sémantique et 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 : Extraire et calculer des mesures Power BI à partir d’un notebook Jupyter
- Tutoriel : Découvrir des relations dans le jeu de données Synthea, à l’aide d’un lien sémantique
- Tutoriel : Valider des données à l’aide de SemPy et Great Expectations (GX)