Condividi tramite


Che cos'è un database a grafo?

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 altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

I database a grafo offrono un modo efficace per modellare ed eseguire query sui dati connessi. A differenza dei database relazionali tradizionali che archiviano i dati nelle tabelle, i database a grafo rappresentano informazioni come nodi (entità) e archi (relazioni), semplificando l'esplorazione più flessibile di connessioni e modelli complessi.

Il tipo di database a grafo più comunemente usato implementa il modello grafo delle proprietà con etichetta : le entità (nodi) e le relazioni (archi) possono avere etichette e proprietà (coppie chiave-valore). Questo modello flessibile consente progettazioni sia facoltative che basate su schema e consente di esprimere semantica avanzata. Poiché le connessioni vengono memorizzate in modo esplicito come archi, le query attraversano le relazioni seguendo gli archi anziché eseguire join onerosi in fase di query.

Importante

Questo articolo utilizza esclusivamente il dataset di esempio dei grafi dei social network.

Concetti di base del database Graph

  • I nodi rappresentano entità come persone, prodotti o luoghi. I nodi possono avere etichette e proprietà che descrivono i relativi attributi. Ad esempio, un nodo Person potrebbe avere proprietà come firstName, lastName e age.
  • Gli archi rappresentano la modalità di connessione delle entità, ad esempio FRIENDS_WITH, PURCHASE o LOCATED_IN. Gli archi possono anche contenere proprietà ed etichette per codificare i metadati delle relazioni.
  • Le proprietà associano i dettagli ai nodi e ai bordi( ad esempio, il nome di una persona o un bordo dalla data). Poiché le relazioni vengono archiviate in modo esplicito come archi, le query esplorano il grafico seguendo le connessioni anziché calcolarle in fase di query.

Come funziona l'interrogazione delle relazioni

Le query graph recuperano le informazioni connesse passando da un nodo iniziale ai relativi vicini, quindi ai relativi vicini e così via. Lo sforzo eseguito da un attraversamento è associato al numero di archi che tocca (il quartiere locale), non alle dimensioni totali del set di dati. Questo rende le domande sui percorsi, connessioni e modelli, come ad esempio amici di amici, percorsi più brevi o dipendenze multi-hop, naturali ed efficienti da esprimere.

I database a grafo usano linguaggi di query basati su criteri, ad esempio il linguaggio GQL (Graph Query Language) sempre più adottato, per descrivere questi attraversamenti in modo conciso. GQL viene standardizzato dallo stesso gruppo di lavoro internazionale che supervisiona SQL (ISO/IEC 39075), allineando l'esecuzione di query del grafo agli standard di database stabiliti.

Esempio (criteri di ricerca con GQL):

MATCH (p:Person {firstName: "Annemarie"})-[:knows]->(friend)-[:likes]->(c:Comment)
RETURN c
ORDER BY c.creationDate
LIMIT 100

Questo schema si legge come: a partire dal nodo Persona per Annemarie, seguire :knows gli archi di ogni nodo amico, quindi seguire :likes gli archi fino ai nodi correlati :Comment. Restituisce i 100 commenti più recenti ordinati in base alla data di creazione.

Modellazione e schema

I modelli di dati a grafo sono schema-optional: è possibile usare uno schema fisso quando è necessaria una governance avanzata o evolvere il modello man mano che appaiono nuovi tipi di nodo, relazioni o proprietà. Questo approccio riduce la necessità di duplicazione dei dati e consente ai team di unificare i dati da più origini senza riprogettazione iniziale pesante.

Usi comuni per i database a grafo

I database a grafo si allineano strettamente ai domini in cui le connessioni generano valore, ad esempio.

  • Social network
  • Grafici delle informazioni
  • Sistemi di raccomandazione
  • Reti di frode e rischio
  • Topologia di rete e IT
  • Analisi delle dipendenze della supply chain

In questi scenari, le domande riguardano meno i singoli record e più il numero di entità che si relazionano e interagiscono attraverso vari passaggi.

Quando prendere in considerazione un database a grafo

Scegliere un database a grafo quando:

  • Le domande principali riguardano percorsi, quartieri e modelli nei dati connessi
  • Il numero di hop è variabile o non noto in anticipo
  • È necessario combinare e esplorare le relazioni tra set di dati diversi

Se si pone regolarmente questi tipi di domande, un modello a grafo è una scelta naturale.

Grafo in Microsoft Fabric

La rappresentazione dei dati come grafico e l'archiviazione in un database a grafo autonomo separato spesso introduce un sovraccarico ETL (estrazione, trasformazione, caricamento). Al contrario, Graph in Microsoft Fabric opera direttamente su OneLake, riducendo o eliminando la necessità di pipeline ETL separate e duplicazione dei dati. Considerare questi compromessi:

  • Spostamento e duplicazione dei dati: i database a grafo autonomi richiedono in genere l'estrazione, la trasformazione e il caricamento dei dati in un archivio separato, che aumenta la complessità e possono causare set di dati duplicati. Graph in Microsoft Fabric opera su OneLake in modo da poter modellare ed eseguire query sui dati connessi senza spostarli.
  • Costi operativi: gli stack di grafici autonomi vengono eseguiti come cluster o servizi separati e spesso comportano addebiti per la capacità inattiva. I carichi di lavoro a grafo in Fabric utilizzano unità di capacità in pool (CU) con scalabilità automatica e metriche centralizzate, il che semplifica le operazioni e riduce i costi.
  • Scalabilità: alcuni database a grafo autonomi dipendono dalla scalabilità verso l'alto o dal clustering specifico del fornitore. Graph in Microsoft Fabric è progettato per grafici su larga scala e usa il partizionamento orizzontale su larga scala tra più ruoli di lavoro per gestire in modo efficiente i carichi di lavoro di Big Data.
  • Strumenti e competenze: i sistemi a grafo specifici del fornitore possono richiedere linguaggi specializzati e framework di analisi separati. Graph in Microsoft Fabric offre modellazione unificata, query basate su standard (GQL), algoritmi di analisi dei gragrafi predefiniti, integrazione di BI e intelligenza artificiale e strumenti esplorativi bassi/senza codice. Queste funzionalità consentono a un set più ampio di utenti di usare i dati connessi.
  • Governance e sicurezza: le distribuzioni a grafo separate richiedono configurazioni di governance e sicurezza indipendenti. Graph in Microsoft Fabric utilizza la governance di OneLake, la tracciabilità e il controllo degli accessi basato sui ruoli dell'area di lavoro (RBAC), in modo che la conformità, la verifica e le autorizzazioni rimangano coerenti con il resto dell'ambiente Fabric.