Cos'è un database a grafo?

60

Il problema: l'app deve memorizzare una raccolta di persone e di chi conoscono. A volte deve scoprire tutti quelli che conoscono qualcuno che conosce Bob. A volte deve cercare oltre per tutti coloro che sono a tre luppoli di distanza. A volte deve trovare gli amici degli amici di Bob a cui piace pescare o ascoltare sinfonie.

Il database del grafico è stato originariamente progettato per memorizzare le reti, ovvero le connessioni tra diversi elementi come le persone, i luoghi che potrebbero visitare o le cose che potrebbero utilizzare. I database relazionali possono trovare connessioni singole tra di loro, ma si bloccano quando viene chiesto di negoziare e analizzare relazioni complesse tra più parti.

Questo può essere così complicato dal punto di vista computazionale da poter minacciare un'azienda che cresce troppo rapidamente. Ad esempio, raddoppiando il numero di utenti quadruplicherà le possibili relazioni. Uno dei primi social network, Friendster, ha lottato per gestire la crescente complessità del suo grafico sociale quando è diventato popolare. Alla fine ha perso il suo vantaggio di primo motore a favore di chi disponeva di una migliore tecnologia di database.

Il database dei grafici è cresciuto in popolarità con l'ascesa dei social network, ma non c'è motivo di limitarlo al monitoraggio delle persone e delle loro amicizie. Può essere utilizzato per trovare tutti i libri che citano un libro che era nella biblioteca personale di Isaac Newton. O tutte le sostanze chimiche che reagiscono con il sale da cucina. Oppure ogni edificio raggiungibile aspettando non più di due semafori.

La parola "grafico" è spesso fonte di confusione perché i matematici usano la parola per diversi costrutti diversi e la maggior parte delle persone ha esperienza solo con la versione più conosciuta: la linea che traccia la relazione tra due variabili come tempo e denaro. Al contrario, i database a grafo sono specializzati nella memorizzazione di relazioni più arbitrarie che potrebbero non essere continue.

Il database del grafico brilla quando viene chiesto di cercare attraverso le reti definite da queste connessioni. Hanno algoritmi specializzati per compilare gli strati di relazioni che si irradiano da una voce.

Alcuni dei casi d'uso comuni

  • Motori di raccomandazione: le persone spesso cercano prodotti simili come fanno gli altri. Cioè, se una persona acquista i lacci delle scarpe dopo aver acquistato delle scarpe da ginnastica, ci sono buone probabilità che gli altri facciano lo stesso. I motori di raccomandazione cercano le persone che sono collegate dai loro acquisti e poi cercano altri prodotti strettamente connessi nel grafico.
  • Rilevamento delle frodi: i buoni clienti raramente commettono frodi e i truffatori spesso seguono lo stesso schema ancora e ancora. La creazione di un grafico delle transazioni può identificare le frodi segnalando modelli sospetti che spesso non hanno alcun collegamento con transazioni legittime.
  • Reti di conoscenza – Alcuni ricercatori di intelligenza artificiale hanno creato grafici di fatti e connessioni tra loro in modo che i computer possano approssimare il ragionamento umano seguendo percorsi.
  • Instradamento: trovare un percorso nel mondo è molto simile a trovare un percorso in un grafico astratto che modella le strade. Se le intersezioni sono nodi e le strade tra di loro i collegamenti o i bordi, il grafico è una buona rappresentazione astratta del mondo. La scelta di un percorso per un'auto autonoma richiede solo una sequenza di nodi e collegamenti tra di loro.

In generale, i database standard possono trovare facilmente connessioni a un solo salto di distanza. I database di grafici sono ottimizzati per gestire le query che possono seguire più salti e raccogliere tutti i nodi entro un raggio. Non può eseguire ricerche attraverso più link o hop senza più query.

Come si stanno avvicinando i giocatori dell'eredità

Microsoft ha aggiunto a SQL Server tabelle di nodi e edge speciali per semplificare l'esecuzione di ricerche più complesse. Queste tabelle possono essere cercate con i tradizionali comandi SELECT, ma risaltano quando il comando speciale MATCH può cercare particolari modelli di elementi e le connessioni tra di loro. Una PARTITA scritta da un allevatore di cani, ad esempio, potrebbe cercare due potenziali genitori che non sono cugini stretti.

Oracle offre un server grafico separato che si integra con i suoi prodotti principali e la combinazione memorizzerà i dati sia in tabelle grafiche che tradizionali. Lo strumento può eseguire più di 60 diversi algoritmi di grafici, come trovare la connessione più breve tra le persone o cercare gruppi particolarmente ristretti.

Entrambe le estensioni possono funzionare con SQL standard, ma entrambe integrano anche motori GraphQL per gli utenti che potrebbero voler utilizzare quel linguaggio di query. GraphQL, per inciso, è stato progettato per semplificare alcune query. Sebbene faccia un buon lavoro con i database a grafo, brilla anche con le tabelle relazionali di base.

Molti utenti stanno implementando GraphQL per attività che non sono strettamente applicazioni grafiche. Ad esempio, IBM ha integrato il framework di analisi Apache TinkerPop con Db2. Le query sono scritte in un linguaggio chiamato Gremlin che viene tradotto in richieste SQL più standard.

I nuovi arrivati

Un certo numero di nuove startup stanno costruendo database grafici da zero. Alcuni sono puramente commerciali e molti offrono modelli ibridi.

Neo4j è un database open source completo che può essere eseguito localmente o acquistato come servizio dal cloud Aura di Neo4J. L'azienda offre anche strumenti per la navigazione attraverso le reti (Bloom) e l'implementazione di algoritmi di ricerca in rete più sofisticati per analizzare i nodi più importanti della rete e prevedere le prestazioni. Gli algoritmi di centralità, ad esempio, individuano i nodi più influenti utilizzando il numero e la struttura delle connessioni. Gli algoritmi di rilevamento della comunità cercano gruppi di nodi strettamente connessi.

Il prodotto omonimo di ArangoDB è disponibile come licenza della community, prodotto aziendale o istanza che può essere avviata in uno qualsiasi dei principali cloud. L'azienda afferma che il suo prodotto è "multimodale", il che significa che i nodi possono agire come archivi chiave / valore NoSQL, parti di un grafico o entrambi. La versione Enterprise aggiunge funzionalità extra per la diffusione di grafici più grandi su più macchine per prestazioni più veloci. Lo strumento funziona per mantenere i record oi nodi collegati sulla stessa macchina per velocizzare gli algoritmi che richiedono la ricerca o l'attraversamento locale.

Neptune di Amazon è un database a grafo distribuito ottimizzato per set di dati di grandi dimensioni e tempi di risposta rapidi. Funziona con due popolari linguaggi di query (TinkerPop e SparQL). È completamente gestito e ha un prezzo come servizio integrato con gli altri servizi AWS.

Dgraph è un database a grafo distribuito con un nucleo disponibile con la licenza Apache racchiuso da una raccolta di routine aziendali che supportano set di dati più grandi. Il linguaggio di query principale è GraphQL, sviluppato da Facebook per il recupero dei dati più generale. Dgraph ha inoltre esteso il linguaggio principale con una serie di routine incentrate sulla ricerca e l'estrazione delle connessioni del grafico. Questa estensione, chiamata DQL, può eseguire attività più sofisticate come trovare il nodo con il maggior numero di bordi in entrata che corrispondono a un particolare predicato.

JanusGraph è un progetto della Linux Foundation progettato per archiviare e analizzare grafici molto grandi. Il lavoro è supportato da una serie di aziende, tra cui Target. Il codice sorgente viene rilasciato con la licenza Apache e funziona insieme ad alcuni dei grandi database NoSQL come Apache HBase, Bigtable di Google o Berkeley DB di Oracle. Il codice è strettamente integrato con molti altri progetti Apache, come Spark per l'analisi distribuita del grafico, Lucene per l'archiviazione e la ricerca di testo grezzo e TinkerPop per l'interrogazione e la visualizzazione dei risultati.

TigerGraph è progettato per grandi aziende con grandi set di dati che potrebbero voler eseguire lo strumento localmente o iscriversi a un servizio in TigerGraph Cloud. Le analisi sono rivolte a settori con casi d'uso ben compresi come i regolamenti che chiedono alle banche di monitorare i flussi di denaro tra i conti per fermare il riciclaggio di denaro.

C'è qualcosa che un database a grafo come servizio non può fare?

I database a grafo sono in gran parte superset di database normali e molti di essi sono stati creati aggiungendo nuove strutture di tabelle ai database esistenti. Di solito possono fare tutto ciò che un database normale può realizzare e anche cercare attraverso le reti definite nei dati.

Alcuni algoritmi di ricerca di grafici più semplici potrebbero non richiedere le funzionalità extra di un database di grafici. Un abile programmatore può duplicarli con un po 'di codice. I risultati, tuttavia, possono essere molto più lenti, soprattutto quando l'analisi richiede più query. Ciò significa più hardware e più licenze per gestire lo stesso carico di lavoro.

La vera domanda è se il caso d'uso necessita delle funzionalità extra e del sacrificio associati alle tabelle grafiche. Il tuo algoritmo dovrà utilizzare una raccolta più ampia di oggetti poco connessi? C'è qualche idea di località o prossimità che deve far parte dell'algoritmo? La regola sulla vicinanza o prossimità è abbastanza forte da consentire agli algoritmi di ignorare i nodi che non sono particolarmente vicini? Ad esempio, un algoritmo di raccomandazione di un ristorante potrebbe suggerire solo luoghi nelle vicinanze. Gli utenti saranno soddisfatti dei consigli se non includono un luogo particolarmente degno di nota che si adatta perfettamente ma si trova appena fuori dal raggio di ricerca?

Questo articolo fa parte di una serie sulle tendenze della tecnologia dei database aziendali.

VentureBeat

La missione di VentureBeat è quella di essere una piazza della città digitale per i responsabili delle decisioni tecniche per acquisire conoscenze sulla tecnologia trasformativa e sulle transazioni.

Il nostro sito fornisce informazioni essenziali sulle tecnologie e strategie dei dati per guidarti mentre guidi le tue organizzazioni. Ti invitiamo a diventare un membro della nostra community, per accedere a:

  • informazioni aggiornate sugli argomenti di tuo interesse
  • le nostre newsletter
  • contenuti gated leader di pensiero e accesso scontato ai nostri eventi preziosi, come Transform
  • funzionalità di rete e altro ancora

Diventare membro