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.
Un schéma de graphe est la collection de types de nœuds, de types de bord et de leurs propriétés qui définissent la structure de votre graphe. Un schéma de graphe bien conçu facilite l’interrogation, la maintenance et l’extension de vos données. Cet article fournit les meilleures pratiques pour transformer des données tabulaires dans un lakehouse en un graphique de propriétés labeled property graph efficace dans Microsoft Fabric.
Utilisez ces instructions avant de commencer la modélisation dans l’éditeur de modèle de graphe. Pour obtenir des instructions pas à pas sur la création de nœuds et de bords, consultez le didacticiel sur le graphique. Les exemples de cet article utilisent l’exemple de jeu de données Adventure Works.
Cet article décrit le flux de travail de modélisation Fabric pris en charge. Pour les concepts formels GQL et la syntaxe standard qui décrivent les structures de graphes, voir Types de graphes GQL. Graph n’accepte actuellement pas directement les déclarations de type graphe.
Important
Graph ne prend actuellement pas en charge l’évolution du schéma. Après avoir créé un modèle de graphe et chargé ses données, toutes les modifications structurelles, telles que l’ajout ou la suppression de types de nœuds, de types de périphérie et de propriétés, vous obligent à recharger toutes les données avant d’interroger la structure mise à jour. Pour recharger les données, sélectionnez Enregistrer dans le ruban supérieur. Ce processus de rechargement des données prend du temps et consomme de la capacité. Planifiez donc soigneusement votre schéma avant de commencer la modélisation.
Prerequisites
- Un espace de travail Fabric avec un lakehouse, qui contient vos tables sources.
- Connaissance de l’éditeur de modèle de graphe.
- Facultatif : l’exemple de jeu de données Adventure Works pour suivre les exemples de cet article.
Comprendre les types de nœuds et les types de périphérie
Avant de concevoir un schéma, comprenez ces concepts fondamentaux :
Un type de nœud définit un type d’entité dans votre graphique, tel qu’un client, un produit ou une commande. Elle comprend :
- Une étiquette de nœud, c’est le nom qui identifie cette catégorie de nœud. Par exemple :
Customer. Vous utilisez l’étiquette dans les requêtes pour faire référence aux nœuds de ce type. - Une table source, qui est la table du lakehouse fournissant les données source pour le type de nœud. Par exemple, la table adventureworks_customers .
- Colonne clé qui identifie de manière unique chaque nœud. Par exemple :
CustomerID_K. -
Propriétés, qui sont des colonnes de la table que vous pouvez ajouter en tant qu’attributs sur chaque nœud. Par exemple,
FirstName,LastNameetEmailAddress.
Un nœud est une instance individuelle d’un type de nœud , une ligne dans la table source. Par exemple, chaque ligne de adventureworks_customers devient un Customer nœud.
Un type de périphérie définit un type de relation entre deux types de nœuds. Elle comprend :
- Un libellé d’arête, qui est le nom qui identifie cette catégorie de relation. Par exemple :
purchases. - Table source qui contient les données de relation entre les nœuds d’origine et cible. Par exemple, la table adventureworks_orders .
- Type de nœud d’origine et type de nœud cible que le bord connecte. Par exemple,
Customeren tant qu’origine etOrderen tant que cible.
Un bord est une instance individuelle d’un type de périphérie : une ligne dans la table source qui connecte deux nœuds spécifiques.
Note
Dans l’éditeur de modèle de graphique, les boutons Ajouter un nœud et Ajouter des arêtes créent des types de nœuds et des types de bord, et non des nœuds ou des arêtes individuels.
Identifier les entités et les relations
Commencez par identifier les entités (éléments) et les relations (connexions ) dans vos données. Les entités deviennent des types de nœuds. Les connexions entre entités deviennent des types d'arêtes.
Posez ces questions sur vos tables sources :
- Quelles sont les entités principales ? Les lignes qui représentent des éléments réels distincts sont des candidats pour les types de nœuds. Par exemple, les clients, les produits, les commandes et les employés.
- Comment ces entités sont-elles liées les unes aux autres ? Les colonnes qui référencent des lignes dans une autre table (clés étrangères) suggèrent des types de bord. Par exemple,
CustomerID_FKdans uneorderstable pointe vers lacustomerstable, ce qui suggère la modélisation d’unpurchasesbord. - Existe-t-il des entités incorporées ? Une colonne à l'intérieur d'une table peut représenter une entité distincte qu'il convient d'extraire en tant que type de nœud à part entière. Pour obtenir un exemple, consultez Choisir des types de nœuds. Pour obtenir une procédure pas à pas, consultez Ajouter plusieurs types de nœuds et de périphérie à partir d’une table source.
Choisir des types de nœuds
Créez un type de nœud pour chaque entité que vous devez interroger ou parcourir indépendamment. Utilisez ces instructions :
| Définissez l’entité comme type de nœud lorsque... | Conservez-le en tant que propriété quand... |
|---|---|
| Vous devez parcourir jusqu'à ou à travers cela. | Il s’agit de métadonnées descriptives que vous lisez uniquement, et non pas parcourir. |
| Plusieurs entités partagent une relation avec elle. | Il est unique à l’entité à laquelle il appartient. |
| Vous devez faire des correspondances ou regrouper par cela directement dans les requêtes. | Vous appliquez ce filtre uniquement comme propriété d'une autre entité. |
Exemple: Dans le jeu de données Adventure Works, Country commence en tant que colonne sur la employees table. Si vous devez interroger « quels employés vivent dans le même pays ? » ou « quels pays ont le plus d’employés ? », extrayez Country en son propre type de nœud. Si vous n’avez besoin d’afficher le pays d’un employé qu’en tant qu’étiquette, laissez-le comme propriété.
Choisir des colonnes clés
Chaque type de nœud nécessite une colonne clé (ou une clé composée) qui identifie de manière unique chaque nœud. Choisissez soigneusement les clés :
-
Utilisez des identificateurs uniques existants à partir de vos tables sources. Par exemple,
CustomerID_KouProductID_K. -
Évitez les clés de substitution qui n’ont pas de signification métier , sauf si aucune clé naturelle n’existe. Par exemple, préférez
CustomerIDà un numéro de ligne s'incrémentant automatiquement. -
Utilisez des clés composées lorsqu’une seule colonne ne garantit pas l’unicité. Par exemple, un
ProductVersionnœud peut avoir besoin à la foisProductIDetVersionNumberen tant que clé. - Mettre en correspondance les types de données entre les colonnes clés et les colonnes clés étrangères utilisées dans les mappages de périphérie. Les types incompatibles provoquent des échecs lors de la création d'arêtes.
Ajouter des propriétés de nœud
Lorsque vous créez un type de nœud, choisissez les propriétés de la table source à inclure comme propriétés dans le type de nœud, en particulier les propriétés pour lesquelles les règles d’accès OneLake Security ont été appliquées à la table source sous-jacente.
Ajoutez des propriétés pendant la création du nœud avec le bouton + Ajouter une propriété . Vous pouvez également ajouter des propriétés à un nœud existant en double-cliquant sur le type de nœud dans l’éditeur de modèle de graphique pour ouvrir la boîte de dialogue Modifier le nœud et sélectionner Modifier la définition. Sélectionnez Ajouter une propriété, puis choisissez des colonnes dans la table source.
Chaque propriété devient partie intégrante des données du graphe qui doivent être chargées et maintenues. Évitez d’ajouter des propriétés dont vous n’avez pas besoin pour les requêtes ou l’analyse.
Pour chaque type de nœud, conservez uniquement les propriétés suivantes :
- Requis pour l’unicité du nœud (colonnes clés)
- Utilisé dans
WHEREfiltres ouRETURNprojections dans vos requêtes - Nécessaire pour l’analyse ou la visualisation en aval
Pour plus d’informations sur la façon dont le nombre de propriétés affecte les performances des requêtes, consultez Renvoyer uniquement les propriétés dont vous avez besoin.
Choisir des types de données
Sélectionnez des types de données qui représentent les valeurs sources et les opérations effectuées par les requêtes :
- Utilisez
INTpour les identifiants et comptages entiers lorsque les valeurs sources sont numériques. - Utilisez
ZONED DATETIMEpour les horodatages au lieu des dates formatées en chaîne. - Utilisez
BOOLEANpour les indicateurs true/false au lieu de valeurs de chaîne comme"yes"ou"no".
Pour obtenir la liste complète des types pris en charge, consultez limitations actuelles : types de données.
Choisir des types de bordure
Les types edge définissent les relations entre les types de nœuds. Chaque type de périphérie connecte un type de nœud d’origine à un type de nœud cible via une table source.
Suivez ces instructions :
-
Utilisez des étiquettes descriptives qui agissent comme des verbes ou des expressions verbales. Par exemple,
purchases, ,sells,livesInetbelongsTo. Un bord bien nommé facilite la lecture des requêtes. - Réfléchissez soigneusement à la direction. Les arêtes du graphique sont dirigées. Choisissez la direction qui représente le mieux la relation réelle. Par exemple,
Customer--les achats -->Orderse lit plus naturellement queOrder--purchasedBy -->Customer. - Donnez des noms distincts aux types de périphérie qui connectent différentes paires de types de nœud. Si « commande vendue par l'employé » et « commande achetée par le client » se connectent à
Order, nommez-lessellsetpurchasesplutôt que de leur donner à la fois la même étiquette. Pour plus d’informations, consultez les limitations de création de périphérie.
Ajouter des propriétés aux types d'arêtes
Comme les nœuds, les types de périphérie commencent sans propriétés. Vous pouvez éventuellement ajouter des propriétés lorsque les données décrivent la relation elle-même plutôt que l’un ou l’autre point de terminaison. Les propriétés edge sont les plus utiles lorsque vous écrivez des requêtes GQL qui doivent filtrer, agréger ou retourner des données sur la relation elle-même.
Pour ajouter une propriété, double-cliquez sur un type de bord dans l’éditeur de modèle de graphique pour ouvrir la boîte de dialogue d’édition de bord, puis sélectionnez Modifier la définition. Sélectionnez Ajouter une propriété, puis choisissez des colonnes dans la table source.
Quand ajouter des propriétés de périphérie : Si une colonne répond à « combien ? », « quand ? » ou « de quelle façon ? » à propos de la connexion entre deux nœuds, elle appartient à la périphérie, et non sur l’un ou l’autre des nœuds.
Exemple : Dans le jeu de données Adventure Works, l'arête contains relie Order à Product via la table adventureworks_orders. Les colonnes comme OrderQty, UnitPriceet LineTotal décrivent la relation : combien d’un produit étaient dans un ordre spécifique, à quel prix. Les colonnes comme OrderDate ou ShipDate décrivent l’ordre lui-même et appartiennent au type de Order nœud, et non sur le bord.
Important
La table source d’un bord doit contenir des colonnes qui correspondent aux colonnes clés des types de nœuds d’origine et cible dans les valeurs et le type de données. Les tables que vous utilisez pour créer des types de nœuds peuvent également servir de tables sources de périphérie si elles répondent à cette exigence.
Modèles courants de conversion de tableaux en graphiques
Le tableau suivant résume la façon dont certaines structures de données tabulaires courantes se traduisent en éléments de graphique :
| Structure tabulaire | Résultat du graphique | Exemple |
|---|---|---|
| Un-à-plusieurs : Table parente + table enfant avec clé étrangère | Deux types de nœuds connectés par un type d'arête. |
Customer
--
achats -->Order |
| Plusieurs-à-plusieurs : Table de jonction reliant deux tables | Type d'arête entre deux types de nœuds. |
Vendor
--
produit-->Product |
| Entité incorporée : Colonne représentant une entité partagée | Type de nœud extrait avec arête. |
Employee
--
résideDans-->Country |
| Hiérarchie: Chaîne de tables parent-enfant | Types de nœuds liés par arêtes à chaque niveau. |
Product
--
isDeType-->Subcategory --appartient à-->Category |
Pour obtenir une procédure pas à pas du modèle d’entité incorporée, consultez Ajouter plusieurs types de nœuds et de périphérie à partir d’une table source.
Modifier votre schéma de graphe
Le graphe n’applique pas les changements structurels de façon incrémentale. Lorsque vous changez les types de nœuds, les types d’arêtes, les propriétés, les clés ou les mappages, sauvegarder le modèle de graphe existant recharge toutes ses données et reconstruit le graphe interrogable.
Pour modifier votre schéma de graphe :
- Ouvrez l’élément de graphe existant dans l’éditeur de modèle de graphe.
- Ajoutez, modifiez ou supprimez les types de nœuds, types d’arêtes, propriétés, clés et correspondances selon les besoins.
- Sélectionnez Enregistrer pour valider le modèle mis à jour et rechargez toutes les données du graphe.
- Après le rechargement, lancez des requêtes représentatives pour vérifier la structure et les données mises à jour.