domenica 19 luglio 2015

[Neo4j] Introduzione A Neo4j

1 Che cos'è Neo4j?

 

Negli ultimi anni i social network, nel bene o nel male, stanno prendendo il sopravvento e vengono utilizzati da molte persone per scambiare immagini, video o semplicemente chattare con sconosciuti o loro conoscenti in varie parti del mondo.
Da un punto di vista degli "analisti" del web, portali come Facebook o Twitter sono fonti primarie di informazioni da cui ottenere grandi insiemi di dati per costruire enormi dataset e analizzare questi ultimi per diversi tipi di finalita.
Uno degli aspetti piu interessenti da analizzare è la possibilità di costruire dei grafi sociali a partire da questi dataset su quali effettuare studi specifici e/o conoscere, per esempio, le relazioni esistenti tra followers di Twitter.
Per poter memorizzare e gestire questi enormi dataset in modo efficace e scalabile, risulta impossibile utilizzare database relazionali come Postgres o Mysql poiche questa famiglia di Rdbms non soddisfa la proprietà di scalabilità richiesta su migliaia/milioni di record.
Per ovviare a tutti questi problemi si utilizzano dei Graph Database, come Neo4j, che appartengono alla famiglia dei Database NoSql.
In dettaglio, Neo4j è un NoSql Graph Database open source, scritto in Java e in scala.
Le sue proprieta principali sono:
  • supporto per le transazioni ACIDE;
  • supporto per la clusterizzazione;
  • materializzazione di relazioni a tempo di creazione;
  • tempo costante di attraversamento di relazioni per grafi con visita in profondita e in ampiezza;
  • memorizzazione e caching compatto per i grafi.

2 Installazione Neo4j

 

Questa breve guida al funzionamento è rivolta agli utilizzatori di Ubuntu/Linux. Per coloro che sono interessati all'installazione per windows rimando al sito principale di Neo4j.
Scarichiamo dal sito Neo4j la versione community edition e scompattiamola dove piu ci interessa(io l'ho scompattata nella home)
Ora, aggiungiamo dei riferimenti alla cartella dove è presente Neo4j nel file ".bashrc"(se non ci fosse tale file creaiamolo).
Lanciamo il terminale ed eseguiamo:

Adesso tutto è pronto per lanciare da browser Neo4j-server all'indirizzo http://localhost:7474.

3 Primi passi in Neo4j

 

 Creiamo i primi nodi e le prime relazioni nel nostro GraphDatabase inserendo nella parte in alto a destra questa sequenza di query Cypher(linguaggio utilizzato per effetturare inserimenti e effettuare ricerche e tanto altro in neo4j).

A questo punto il grafo è stato creato e verrà restituito come risultato

Added 11 labels, created 11 nodes, set 15 properties, created 16 relationships, statement executed in 1086 ms.

Ora, visualizziamo il grafo mediante la query:
$MATCH ()-[r:PRODOTTO_IN]->() RETURN r
Il risultato sarà il seguente:
 
Quello che abbiamo visto oggi sono i primi passi nel mondo di neo4j, se avrete la pazienza e la curiosità di seguirmi nei prossimi giorni approfondiremo insieme i vari aspetti di questo potente e flessibile Gdbms.
Prima di lasciarvi vi consiglio da terminale di chiudere l'istanza di Neo4j-server lanciando:

Nessun commento:

Posta un commento