Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa funzionalità è attualmente disponibile in anteprima pubblica. Questa anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per ulteriori informazioni, vedere Condizioni d'uso supplementari per le anteprime di Microsoft Azure.
Uno schema del grafo è la raccolta di tipi di nodo, tipi di arco e le relative proprietà che definiscono la struttura del grafico. Uno schema di grafo ben progettato rende più semplice interrogare, gestire ed estendere i tuoi dati. Questo articolo illustra le procedure consigliate per trasformare i dati tabulari all'interno di un lakehouse in un grafo di proprietà etichettato in Microsoft Fabric.
Usare queste linee guida prima di iniziare la modellazione nell'editor di modelli a grafo. Per istruzioni dettagliate sulla creazione di nodi e archi, consultare il tutorial sul grafo. Gli esempi in questo articolo usano il set di dati di esempio Adventure Works.
Importante
Il grafico attualmente non supporta l'evoluzione dello schema. Dopo aver modellato i dati, la struttura di nodi, archi e proprietà è fissa. Le modifiche strutturali, ad esempio l'aggiunta di proprietà, la modifica di etichette o la modifica dei tipi di relazione, richiedono la creazione di un nuovo modello a grafo e il ricaricamento di tutti i dati. Questo processo richiede tempo e utilizza la capacità, quindi pianificare accuratamente lo schema prima di iniziare la modellazione.
Prerequisiti
- Area di lavoro Fabric con una lakehouse contenente le tabelle di origine.
- Familiarità con l'editor di modelli a grafo.
- Facoltativo: il set di dati di esempio Adventure Works per seguire gli esempi in questo articolo.
Informazioni sui tipi di nodo e sui tipi di arco
Prima di progettare uno schema, comprendere questi concetti di base:
Un tipo di nodo definisce un tipo di entità nel grafico, ad esempio un cliente, un prodotto o un ordine. È costituito da:
-
Etichetta, ovvero il nome che identifica questa categoria di nodo. Ad esempio:
Customer. Si usa l'etichetta nelle query per fare riferimento ai nodi di questo tipo. - Tabella di mapping, ovvero la tabella lakehouse che fornisce i dati di origine per il tipo di nodo. Ad esempio, la tabella adventureworks_customers .
-
Colonna chiave che identifica in modo univoco ogni nodo (ID etichettato nell'editor dei modelli a grafo). Ad esempio:
CustomerID_K. -
Proprietà, ovvero colonne della tabella che diventano attributi in ogni nodo. Ad esempio,
FirstName,LastName, eEmailAddress.
Un nodo è una singola istanza di un tipo di nodo, una riga nella tabella di mapping. Ad esempio, ogni riga in adventureworks_customers diventa un Customer nodo.
Un tipo di arco definisce un tipo di relazione tra due tipi di nodo. È costituito da:
-
Etichetta, ovvero il nome che identifica questa categoria di relazione. Ad esempio:
purchases. - Tabella di mapping che contiene i dati della relazione tra i nodi di origine e di destinazione. Ad esempio, la tabella adventureworks_orders .
- Un tipo di nodo sorgente e un tipo di nodo di destinazione che l'arco connette. Ad esempio,
Customercome origine eOrdercome destinazione.
Un arco è una singola istanza di un tipo di arco, una riga nella tabella di mapping che connette due nodi specifici.
Annotazioni
Nell'editor dei modelli a grafo i pulsanti Aggiungi nodo e Aggiungi bordo creano tipi di nodo e tipi di arco, non singoli nodi o archi.
Identificare entità e relazioni
Per iniziare, identificare le entità (elementi) e le relazioni (connessioni ) nei dati. Le entità diventano tipi di nodo. Le connessioni tra le entità diventano tipi di arco.
Porre queste domande sulle tabelle di origine:
- Quali sono le entità primarie? Le righe che rappresentano elementi reali distinti sono candidati per i tipi di nodo. Ad esempio, clienti, prodotti, ordini e dipendenti.
- In che modo queste entità sono correlate tra loro? Le colonne che fanno riferimento a righe in un'altra tabella (chiavi esterne) suggeriscono tipi di arco. Ad esempio,
CustomerID_FKin unaorderstabella punta allacustomerstabella, che suggerisce la modellazione di unpurchasesbordo. - Sono presenti entità incorporate? Una colonna all'interno di una tabella può rappresentare un'entità distinta da estrarre nel proprio tipo di nodo. Per un esempio, vedere Scegliere i tipi di nodo. Per una procedura dettagliata, vedere Aggiungere più tipi di nodo e di arco da una tabella di mapping.
Scegliere i tipi di nodo
Creare un tipo di nodo per ogni entità di cui è necessario eseguire query o attraversare in modo indipendente. Usare queste linee guida:
| Impostare l'entità su un tipo di nodo quando... | Mantieni come proprietà quando... |
|---|---|
| È necessario arrivare fino a esso o attraversarlo. | Si tratta di metadati descrittivi che vengono letti, non esplorati. |
| Più entità condividono una relazione con essa. | È univoco per l'entità a cui appartiene. |
| È necessario abbinare o raggruppare direttamente in base a esso nelle query. | Puoi filtrare solo in base a essa come proprietà di un'altra entità. |
Esempio: Nel set di dati Adventure Works Country inizia come colonna nella tabella employees. Se è necessario eseguire una query su "quali dipendenti risiedono nello stesso paese?" o "quali paesi hanno la maggior parte dei dipendenti?", estrarre Country nel proprio tipo di nodo. Se è sufficiente visualizzare il paese di un dipendente come etichetta, lasciarlo come proprietà.
Scegliere le colonne chiave
Ogni tipo di nodo richiede una colonna chiave (o una chiave composta) che identifica in modo univoco ogni nodo. Scegliere attentamente le chiavi:
-
Usare gli identificatori univoci esistenti dalle tabelle di origine. Ad esempio,
CustomerID_KoProductID_K. -
Evitare chiavi surrogate che non hanno significato aziendale a meno che non esista alcuna chiave naturale. Ad esempio, preferire
CustomerIDrispetto a un numero di riga con incremento automatico. -
Usare chiavi composte quando una singola colonna non garantisce l'univocità. Ad esempio, un
ProductVersionnodo potrebbe richiedere siaProductIDcheVersionNumbercome chiave. - Trova la corrispondenza dei tipi di dati tra le colonne chiave e le colonne chiave esterna usate nei mapping dei bordi. I tipi non corrispondenti causano errori di creazione dei bordi.
Suggerimento
Definire i vincoli di chiave del nodo per consentire al motore di query di eseguire ricerche dirette sulle proprietà chiave. Questa ottimizzazione velocizza le query che cercano nodi specifici in base alla chiave.
Scegliere i tipi di arco
I tipi di arco definiscono le relazioni tra i tipi di nodo. Ogni tipo di arco connette un tipo di nodo di origine a un tipo di nodo di destinazione tramite una tabella di mappatura.
Seguire queste linee guida:
-
Usare etichette descrittive che vengono lette come verbi o frasi verbali. Ad esempio,
purchases,sells,livesInebelongsTo. Un "edge" ben nominato semplifica la lettura delle query. - Considerare attentamente la direzione. I bordi del grafico sono diretti. Scegliere la direzione che meglio rappresenta la relazione reale. Ad esempio,
Customer--acquisti-->Ordersi legge più naturalmente diOrder--acquistatoDa-->Customer. - Assegnate nomi distinti ai tipi di edge che connettono coppie di tipi di nodo diverse. Se sia "ordine venduto da dipendente" che "ordine acquistato da cliente" si connettono a
Order, denominarlisellsepurchasesinvece di assegnare a entrambi la stessa etichetta. Per altre informazioni, vedere Limitazioni per la creazione dei bordi.
Aggiungere proprietà ai tipi di arco
A differenza dei tipi di nodo, i tipi di arco iniziano senza proprietà. Facoltativamente, è possibile aggiungere proprietà quando i dati descrivono la relazione stessa anziché uno degli endpoint. Le proprietà edge sono più utili quando si scrivono query GQL che devono filtrare, aggregare o restituire dati sulla relazione stessa.
Per aggiungere una proprietà, fare doppio clic su un bordo nell'editor del modello a grafo per aprire la finestra di dialogo Modifica schema arco, selezionare Aggiungi proprietà e quindi scegliere una colonna dalla tabella di mappatura.
Quando aggiungere proprietà perimetrali: Se una colonna risponde a "quanto?", "quando?", o "in che modo?" sulla connessione tra due nodi, appartiene al bordo, non su entrambi i nodi.
Esempio: Nel set di dati Adventure Works, l'contains arco collega Order a Product tramite la tabella adventureworks_orders. Colonne come OrderQty, UnitPricee LineTotal descrivono la relazione , ovvero il numero di un prodotto in un ordine specifico, a quale prezzo. Colonne come OrderDate o ShipDate descrivono l'ordine stesso e appartengono al Order tipo di nodo, non sul bordo.
Importante
La tabella di mapping per un arco deve contenere colonne che corrispondono alle colonne chiave dei tipi di nodo di origine e di destinazione nei valori e nel tipo di dati. Le tabelle usate per creare tipi di nodo possono fungere anche da tabelle di mapping dei bordi se soddisfano questo requisito.
Rimuovere le proprietà non necessarie
Quando si crea un tipo di nodo da una tabella di mapping, ogni colonna della tabella diventa una proprietà per impostazione predefinita. Le proprietà eccessive aumentano l'archiviazione, le query lente e rendono il grafico più difficile da gestire. Per questi motivi, rimuovere le proprietà non necessarie per le query o l'analisi.
Annotazioni
I tipi di arco funzionano in modo diverso: iniziano senza proprietà. È possibile aggiungere manualmente solo le proprietà necessarie usando il pulsante Aggiungi proprietà nella finestra di dialogo Modifica schema edge .
Per ogni tipo di nodo mantenere solo le proprietà seguenti:
- Obbligatorio per l'univocità del nodo (colonne chiave)
- Usato nei filtri
WHEREo nelle proiezioniRETURNdelle query - Necessario per l'analisi o la visualizzazione downstream
Per altre informazioni sul modo in cui il conteggio delle proprietà influisce sulle prestazioni delle query, vedere Restituire solo le proprietà necessarie.
Scegliere i tipi di dati
Selezionare il tipo di dati più specifico per ogni proprietà. I tipi corretti migliorano sia l'efficienza di archiviazione che le prestazioni delle query:
- Usare
INToUINT64per identificatori numerici e conteggi. I confronti numerici sono più veloci rispetto ai confronti tra stringhe. - Usare
ZONED DATETIMEper i timestamp anziché per le date in formato stringa. - Usare
BOOLEANper flag true/false anziché valori stringa come"yes"o"no".
Per l'elenco completo dei tipi supportati, vedere Limitazioni correnti - Tipi di dati.
Modelli tabulari a grafo comuni
Nella tabella seguente viene riepilogato il modo in cui alcune strutture di dati tabulari comuni vengono convertite in elementi del grafo:
| Struttura tabulare | Risultato grafico | Esempio |
|---|---|---|
| Uno-a-molti: Tabella padre + tabella figlio con chiave esterna | Due tipi di nodo connessi da un tipo di arco. |
Customer
--
acquisti-->Order |
| Molti-a-molti: Tabella di giunzione che collega due tabelle | Tipo di arco tra due tipi di nodo. |
Vendor
--
produce-->Product |
| Entità incorporata: Colonna che rappresenta un'entità condivisa | Tipo di nodo estratto con arco. |
Employee
--
livesIn-->Country |
| Gerarchia: Catena di tabelle padre-figlio | Tipi di nodo collegati da archi a ogni livello. |
Product
--
isOfType-->Subcategory --belongsTo-->Category |
Per una procedura dettagliata del modello di entità incorporata, vedere Aggiungere più tipi di nodi e archi da una tabella di mapping.
Modificare lo schema del grafo
Graph non supporta l'evoluzione dello schema. Dopo aver salvato un modello a grafo, la struttura dei tipi di nodo, i tipi di arco e le relative proprietà è fissa. Per apportare modifiche strutturali, ad esempio l'aggiunta di una proprietà a un tipo di nodo, la rimozione di un tipo di arco o la modifica di una colonna chiave, è necessario creare un nuovo modello a grafo e ricaricare i dati.
Per modificare lo schema del grafo:
- Nella tua area di lavoro, crea un nuovo elemento grafico che si collega alla stessa lakehouse.
- Nell'editor dei modelli a grafo aggiungere i tipi di nodo e i tipi di arco necessari, incluse eventuali proprietà nuove o modificate.
- Configurare le colonne chiave e le mappature dei bordi. Assicurarsi che i tipi di dati corrispondano tra le colonne chiave e le colonne chiave esterna.
- Selezionare Salva per inserire i dati e compilare il nuovo grafico.
- Aggiornare tutti i set di query in modo che puntino al nuovo grafico.
- Dopo aver verificato che il nuovo grafico funzioni come previsto, eliminare l'elemento del grafo originale se non è necessario.