Partage via


Explorez et validez les relations dans les modèles sémantiques et les cadres de données

Dans cet article, vous apprendrez à utiliser les fonctions de lien sémantique SemPy pour découvrir et valider les relations dans vos modèles sémantiques Power BI et DataFrames pandas.

Dans la science des données et le Machine Learning, il est important de comprendre la structure et les relations au sein de vos données. Power BI est un outil puissant qui vous permet de modéliser et de visualiser ces structures et ces relations. Pour obtenir plus d'informations ou construire des modèles d'apprentissage automatique, vous pouvez aller plus loin en utilisant les fonctions de lien sémantique dans les modules de la bibliothèque SemPy.

Les scientifiques des données et les analystes commerciaux peuvent utiliser les fonctions SemPy pour lister, visualiser et valider les relations dans les modèles sémantiques Power BI, ou trouver et valider les relations dans les DataFrames pandas.

Prérequis

  • Créez un notebook pour copier/coller du code dans des cellules.

  • Pour Spark 3.4 et versions ultérieures, le lien sémantique est disponible dans le runtime par défaut lors de l’utilisation de Fabric et il n’est pas nécessaire de l’installer. Pour Spark 3.3 et versions antérieures, ou pour effectuer une mise à jour vers la dernière version du lien sémantique, exécutez la commande suivante :

    %pip install -U semantic-link
    
  • Ajoutez un lakehouse à votre notebook.

Lister les relations dans les modèles sémantiques

La list_relationships fonction du module renvoie une liste de toutes les relations trouvées dans un modèle sempy.fabricsémantique Power BI. La liste vous aide à comprendre la structure de vos données et la façon dont les différents tableaux et colonnes sont reliés.

Cette fonction utilise des liens sémantiques pour fournir des DataFrames annotées. Les DataFrames comprennent les métadonnées nécessaires pour comprendre les relations au sein du modèle sémantique. Les DataFrames annotées facilitent l'analyse de la structure du modèle sémantique et son utilisation dans des modèles d'apprentissage automatique ou d'autres tâches d'analyse de données.

Pour utiliser la fonction list_relationships, vous devez d'abord importer le module sempy.fabric. Ensuite, vous appelez la fonction en utilisant le nom ou l'UUID de votre modèle sémantique Power BI, comme le montre l'exemple suivant :

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

Le code précédent appelle la fonction list_relationships avec un modèle sémantique Power BI appelé my_dataset. La fonction retourne un DataFrame pandas avec une ligne par relation, ce qui vous permet d’explorer et d’analyser facilement les relations dans le modèle sémantique.

Remarque

Votre notebook, votre modèle sémantique de jeu de données Power BI et votre lakehouse peuvent être situés dans le même espace de travail ou dans des espaces de travail différents. Par défaut, SemPy tente d’accéder à votre modèle sémantique à partir de :

  • L'espace de travail de votre maison de lac, si vous avez attaché une maison de lac à votre carnet.
  • L’espace de travail de votre notebook, s’il n’y a pas de lakehouse attaché.

Si votre modèle sémantique n'est pas situé dans l'un de ces espaces de travail, vous devez spécifier l'espace de travail de votre modèle sémantique lorsque vous appelez une méthode SemPy.

Visualiser les relations dans les modèles sémantiques

Cette fonction plot_relationship_metadatapermet de visualiser les relations dans un modèle sémantique afin de mieux comprendre la structure du modèle. Cette fonction crée un graphique qui affiche les liens entre les tableaux et les colonnes. Le graphique facilite la compréhension de la structure du modèle sémantique et de la manière dont les différents éléments sont liés.

L’exemple suivant explique comment utiliser la plot_relationship_metadata fonction :

import sempy.fabric as fabric
from sempy.relationships import plot_relationship_metadata

relationships = fabric.list_relationships("my_dataset")
plot_relationship_metadata(relationships)

Dans le code précédent, la fonction list_relationships récupère les relations dans le modèle sémantique my_dataset, et la fonction plot_relationship_metadata crée un graphique pour visualiser ces relations.

Vous pouvez personnaliser le graphique en définissant les colonnes à inclure, en spécifiant comment gérer les clés manquantes et en fournissant d'autres attributs graphviz.

Validez les relations dans les modèles sémantiques

Maintenant que vous avez une meilleure compréhension des relations dans votre modèle sémantique, vous pouvez utiliser la fonction list_relationship_violations pour valider ces relations et identifier tout problème ou incohérence potentiel. La fonction list_relationship_violations vous aide à valider le contenu de vos tables pour vous assurer qu’elles correspondent aux relations définies dans votre modèle sémantique.

En utilisant cette fonction, vous pouvez identifier les incohérences avec la multiplicité de relation spécifiée et résoudre les problèmes avant qu’ils n’affectent vos modèles d’analyse de données ou de Machine Learning.

Pour utiliser la fonction list_relationship_violations, vous devez d'abord importer le module sempy.fabric et lire les tables de votre modèle sémantique. Ensuite, vous appelez la fonction avec un dictionnaire qui mappe les noms de tables aux DataFrames avec du contenu de table.

L'exemple de code suivant montre comment dresser la liste des violations de relations :

import sempy.fabric as fabric

tables = {
    "Sales": fabric.read_table("my_dataset", "Sales"),
    "Products": fabric.read_table("my_dataset", "Products"),
    "Customers": fabric.read_table("my_dataset", "Customers"),
}

fabric.list_relationship_violations(tables)

Le code précédent appelle la fonction list_relationship_violations avec un dictionnaire qui contient les tables Ventes, Produitset Clients du modèle sémantique my_dataset. Vous pouvez personnaliser la fonction en fixant un seuil de couverture, en spécifiant comment traiter les clés manquantes et en définissant le nombre de clés manquantes à signaler.

La fonction retourne un DataFrame pandas avec une ligne par violation de relation, ce qui vous permet d’identifier et de résoudre facilement les problèmes au sein de votre modèle sémantique. En utilisant la fonction list_relationship_violations, vous pouvez vous assurer que votre modèle sémantique est cohérent et précis, ce qui vous permet de créer des modèles Machine Learning plus fiables et d’obtenir des insights plus approfondis sur vos données.

Rechercher des relations dans des DataFrames pandas

Bien que les fonctions list_relationships, plot_relationships_df et list_relationship_violationsdu module Fabric soient des outils puissants pour explorer les relations au sein des modèles sémantiques, vous pouvez également avoir besoin de découvrir des relations au sein d'autres sources de données importées en tant que pandas DataFrames.

C’est là que la fonction find_relationships du module sempy.relationship entre en jeu.

La fonction find_relationships du module sempy.relationships aide les scientifiques des données et les analystes commerciaux à découvrir des relations potentielles dans une liste de DataFrames pandas. À l’aide de cette fonction, vous pouvez identifier les connexions possibles entre les tables et les colonnes, ce qui vous permet de mieux comprendre la structure de vos données et la façon dont différents éléments sont liés.

L'exemple de code suivant montre comment trouver des relations dans les DataFrames pandas :

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Le code précédent appelle la fonction find_relationships avec une liste de trois Pandas DataFrames : df_sales, df_products, et df_customers. La fonction retourne un DataFrame pandas avec une ligne par relation potentielle, ce qui vous permet d’explorer et d’analyser facilement les relations au sein de vos données.

Vous pouvez personnaliser la fonction en spécifiant un seuil de couverture, un seuil de similarité de nom, une liste de relations à exclure et s’il faut inclure des relations plusieurs à plusieurs.

Valider les relations dans les DataFrames pandas

Après avoir découvert des relations potentielles dans vos DataFrames pandas à l'aide de la fonction find_relationships, vous pouvez utiliser la fonction list_relationship_violations pour valider ces relations et identifier tout problème ou incohérence potentiel.

La fonction list_relationship_violations valide le contenu de vos tables pour s'assurer qu'elles correspondent aux relations découvertes. En utilisant cette fonction pour identifier les incohérences avec la multiplicité des relations spécifiée, vous pouvez résoudre les problèmes avant qu'ils n'aient un impact sur vos modèles d'analyse de données ou d'apprentissage automatique.

L'exemple de code suivant montre comment trouver des violations de relations dans les DataFrames pandas :

from sempy.relationships import find_relationships, list_relationship_violations

tables = [df_sales, df_products, df_customers]
relationships = find_relationships(tables)

list_relationship_violations(tables, relationships)

Le code précédent appelle la fonction list_relationship_violations avec une liste de trois DataFrames pandas, df_sales, df_products, etdf_customers plus le DataFrame des relations de la fonction find_relationships. La fonction list_relationship_violations retourne un DataFrame pandas avec une ligne par violation de relation, ce qui vous permet d’identifier et de résoudre facilement les problèmes au sein de vos données.

Vous pouvez personnaliser la fonction en fixant un seuil de couverture, en spécifiant comment traiter les clés manquantes et en définissant le nombre de clés manquantes à signaler.

En utilisant la fonction list_relationship_violations avec des DataFrames pandas, vous pouvez vous assurer que vos données sont cohérentes et précises, ce qui vous permet de créer des modèles Machine Learning plus fiables et d’obtenir des insights plus approfondis sur vos données.