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 Termini aggiuntivi per l'uso delle versioni preliminari di Microsoft Azure.

Un database a grafo è un tipo di database che rappresenta le informazioni come nodi (entità) e archi (relazioni) anziché tabelle e righe. Questa struttura semplifica l'esplorazione di connessioni e modelli complessi tra i dati.

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 sia progettazioni opzionali rispetto allo schema che progettazioni guidate da esso, e permette di esprimere relazioni complesse. 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.

Annotazioni

Gli esempi in questo articolo usano il set di dati del grafo di esempio di social network.

Concetti di base del database Graph

Un database a grafo organizza i dati in tre blocchi predefiniti fondamentali:

  • I nodi rappresentano entità come persone, prodotti o luoghi. I nodi possono avere etichette e proprietà che descrivono i relativi attributi. Ad esempio, un Person nodo potrebbe avere proprietà come firstName, lastNamee age.
  • Gli archi rappresentano la modalità di connessione delle entità, ad esempio FRIENDS_WITH, PURCHASEDo LOCATED_IN. Gli archi possono anche contenere proprietà ed etichette per acquisire 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).

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. Il costo di un attraversamento dipende dal numero di archi che tocca (quartiere locale), non dalle dimensioni totali del set di dati. Questa caratteristica rende le domande su percorsi, connessioni e schemi, come 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 schemi, ad esempio Graph Query Language (GQL), per descrivere questi attraversamenti in modo conciso. Lo stesso gruppo di lavoro internazionale che supervisiona SQL (ISO/IEC 39075) sta standardizzando GQL, che allinea le query sui grafi 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.

Flessibilità dello schema e del modello di dati del grafo

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. Per altre informazioni sul modello di dati usato nel grafico in Microsoft Fabric, vedere Grafici delle proprietà etichettate.

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 - modellare le relazioni tra le persone e le loro interazioni
  • Grafici delle conoscenze: connettere concetti, entità e fatti per la ricerca semantica e il ragionamento
  • Sistemi di raccomandazione: attraversa le interazioni degli elementi utente per visualizzare suggerimenti personalizzati
  • Frodi e reti di rischio: rilevare modelli sospetti tra account, transazioni e dispositivi
  • Topologia di rete e IT: eseguire il mapping delle dipendenze tra server, servizi e componenti dell'infrastruttura
  • Analisi delle dipendenze della supply chain : tracciare le origini dei componenti e le relazioni tra i fornitori

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

Un database a grafo è una soluzione ideale quando le relazioni determinano le domande principali a cui è necessario rispondere. 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.

Confronto del grafo in Microsoft Fabric con i database grafi indipendenti

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, il grafico 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 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. Nei sistemi grafici, i carichi di lavoro consumano unità di capacità condivise (CU) con ridimensionamento automatico e metriche centralizzate, il che semplifica le operazioni e può ridurre i costi.
  • Scalabilità: alcuni database a grafo autonomi dipendono dalla scalabilità verso l'alto o dal clustering specifico del fornitore. Graph è progettato per grafici su larga scala e usa il partizionamento orizzontale su più ruoli di lavoro per gestire in modo efficiente i carichi di lavoro big data.
  • Strumenti e competenze: i sistemi a grafo specifici del fornitore possono richiedere linguaggi specializzati e framework di analisi separati. Graph 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 usa la governance di OneLake, il linaggiamento e il controllo degli accessi basato sui ruoli (RBAC) dell'area di lavoro, in modo che la conformità, l'auditing e le autorizzazioni rimangano coerenti con il resto dell'ambiente Fabric.