OrientDB è disponibile in due versioni: Community ed Enterprise. La Community Edition è un progetto open-source distribuito sotto licenza Apache 2.0. È utilizzabile per ogni scopo ed è disponibile in quattro versioni: MacOS, Linux e derivati di Unix, Windows e generica.
La Enterprise Edition invece è un software commerciale che arricchisce la versione base di OrientDB con caratteristiche particolari come il Query Profiler, configurazione per il Distributed Clustering, Live Monitor ed alert personalizzabili, oltre ad assistenza e supporto continuo. Entrambe le versioni possono essere scaricate dal sito ufficiale.
In questa guida faremo riferimento alla Community Edition.
Download e Installazione
Poichè OrientDB è scritto in Java, è necessario installare una Java Virtual Machine (versione 1.6 o superiore) per consentirne il corretto funzionamento.
Prenderemo come riferimento la versione per Linux, ma quanto vedremo sarà sostanzialmente analogo anche nel caso si usino altri sistemi operativi. La modalità più comune per ottenere una propria distribuzione funzionante di OrientDB è scaricare gli eseguibili e scompattare l'archivio così ottenuto.
In alternativa è possibile compilare i sorgenti, disponibili su GitHub:
> git clone git@github.com:orientechnologies/orientdb.git
> cd orientdb
> ant clean install
I precedenti comandi prima clonano l'archivio tramite git
, quindi utilizzano il tool di build automation ant
per convertirli in formato binario.
Al termine dell'installazione, vedremo che OrientDB è articolato su più cartelle, alcune delle quali sono di particolare importanza:
- bin: contiene tutti i tool per la gestione del servizio. Tra di essi, vi sono anche i primi due che utilizzeremo: lo script di avvio del DBMS, server.sh, e il client per l'interazione con esso, console.sh. Nella stessa cartella sono disponibili anche le versioni per Windows: file con il medesimo nome ma estensione .bat;
- databases: contiene tutti i database gestiti dal server. Ognuno di essi sarà contenuto in un'apposita sottocartella. Al momento dell'installazione del DBMS ne troveremo già una denominata GratefulDeadConcerts, rappresentante il database di default incluso per la sperimentazione;
- config: qui vengono conservati tutti i file di configurazione in formato XML. Il primo che utilizzeremo contiene le opzioni che regolano il funzionamento del server: orientdb-server-config.xml. Lo modificheremo per inserire le credenziali di accesso degli utenti;
- log: contiene tutti i file di log in cui verranno raccolte informazioni di controllo, utili in fase di debug ed analisi;
- lib: contiene un gran numero di file .jar, le librerie di cui OrientDB ha bisogno per funzionare;
- www: è la cartella destinata a custodire i file dell'interfaccia web. All'avvio del server, sarà reso disponibile anche l'accesso via HTTP per gestire i database tramite browser.
Per i sistemi Linux e Unix-like, si raccomanda infine di configurare opportunamente i permessi, soprattutto per quanto riguarda le cartelle bin (programmi eseguibili) e config (directory delle configurazioni):
> chmod 755 bin/*.sh
> chmod -R 777 config
Avvio del server e prime interazioni
Una volta installato il server, provvederemo subito ad avviarlo per sperimentare le prime interazioni con esso.
Tramite riga di comando, ci spostiamo nella cartella bin ed avviamo il server:
> ./server.sh &
A questo punto, iniziamo ad utilizzare la console e a svolgere le prime operazioni con il server:
> ./console.sh
Apriremo quindi un prompt vuoto che attende istruzioni per interagire con il DBMS. Per la maggior parte delle operazioni sarà necessario connettersi al server, e lo faremo con il comando connect
. Le credenziali di accesso dovranno essere impostate nel file di configurazione orientdb-server-config.xml, nella cartella config. Vi troveremo un nodo denominato <users>
:
<users>
<user resources="*" password="topolino" name="root"/>
<user resources="connect,server.listDatabases,server.dblist" password="guest" name="guest"/>
</users>
Senza entrare negli aspetti di sicurezza del servizio, trattati nel seguito della guida, nell'esempio precedente è stato previsto un account con username root e password topolino. Accederemo con questo:
> connect remote:localhost root topolino
La destinazione della connessione è data da remote:localhost
. Ciò indica che ci collegheremo al server locale via rete ma, come vedremo a breve, questo è anche il formato generico con cui si esprime l'URL di un database. Il primo comando che possiamo utilizzare subito dopo la connessione è list databases
, che ritorna un elenco dei database disponibili nel server. Possiamo inoltre ottenere una pagina di aiuto tramite il comando help
.
Creazione di un database
Per affrontare i successivi argomenti, avremo bisogno di utilizzare un database. Per crearlo si ha a disposizione il comando create database
. In particolare, al database che creeremo sarà assegnato uno storage type, scelto tra i seguenti:
- plocal: lo storage locale che colloca il database nel filesystem. Se ad esempio volessimo creare un database di nome prova nella cartella /tmp, useremmo il seguente URL:
plocal:/tmp/prova
. Nel nostro caso procederemmo come segue:
> create database plocal:/home/admin/databases/nuovodb
- remote: già incontrato in precedenza, indica che il database sarà accessibile in rete, ed il suo nome verrà accodato all'indirizzo IP. Ad esempio, per creare il database prova sul server in esecuzione in localhost, l'URL di OrientDB sarà
remote:localhost/prova
. Nel nostro caso:
> create database remote:localhost/nuovodb
- memory: il database risiederà in memoria e sarà necessario indicarne solo il nome:
> create database memory:nuovodb
Esisterebbe un quarto storage type, denominato local
, ma essendo deprecato non lo approfondiremo.
Nel caso di connessione remota, è possibile specificare le credenziali di accesso per il database (username e password) ed in questo caso sarà obbligatorio indicare anche uno storage type da scegliere tra plocal
e memory
. Ad esempio, per creare un database persistente di nome nuovodb su localhost, accessibile da utente root, utilizzeremo il seguente comando:
> create database remote:localhost/nuovodb root topolino plocal
Per quanto riguarda l'accesso al nuovo database, sarà possibile effettuarlo con l'utente root appena creato, ma anche con i tre utenti che un database OrientDB porta sempre con sè di default: reader, con accesso in lettura; writer, con accesso in scrittura; admin come superutente. Le password di admin, reader e writer saranno uguali allo username, ad esempio:
> connect remote:localhost/nuovodb writer writer