• cassandra-java

    Cassandra e Java

    In questo articolo vedremo come utilizzare il database NoSQL Cassandra con Java.

    In un precedente articolo dal titolo Il database NoSQL Cassandra su questo blog abbiamo introdotto il database NoSQL Cassandra, mentre in un altro articolo dal titolo Cassandra su OSX abbiamo visto come installare Cassandra su Mac. Un altro articolo dal titolo Tipi di dati in Cassandra ha affrontato la tipologia dei tipi di dati messi a disposizione da Cassandra. In questo articolo vedremo un esempio di connessione ad un database Cassandra da un client Java.

     

    Introduzione

    Le tecnologie utilizzate (con relative versioni) sono le seguenti:

    • Java 1.8.0_45
    • Cassandra 3.11.1
    • Datastax Driver 3.40
    • Maven 3.3.3
    • Eclipse IDE for Java Developers 4.5.0

    Verrà creata una semplice applicazione Java standalone che si collega ad un database Cassandra ed effettua delle operazioni CRUD su una tabella.

     

    Creazione del progetto Maven in Eclipse

    Dal menu File –> New –> Maven Project (se Maven Project non figura tra le voci dei nuovi progetti, seleziona File –> New –> Other –>Maven –> Maven Project), seleziona la location di default del workspace e clicca su Next. Seleziona l’archetype maven-archetype-quickstart e clicca su Next. 

    Valorizzare i campi proposti dalla maschera nel seguente modo:

    maven-eclipse-cassandra

    Le voci da riempire sono:

    • groupId: identifica il progetto in modo univoco rispetto a tutti gli altri progetti; la naming convention per questo valore segue le regole dei nomi dei package, a partire dal nome del dominio seguito dai sottogruppi che identificano i moduli del progetto;
    • artifactId: è il nome del jar del progetto senza la versione;
    • version: numero di versione;
    • package: il package del progetto.

    Clicca sul pulsante Finish: Eclipse crea il progetto con la seguente struttura.

    progetto-maven-eclipse-cassandra

     

    Modifica del file pom.xml con le dipendenze

    Modifica il file pom.xml nell root del progetto Eclipse e aggiungi le versioni del driver Cassandra Datastax tra le proprietà, e le dipendenze. Il file pom.xml modificato sarà il seguente:

    Esistono diverse modalità per accedere ad un database Cassandra da Java; in questo articolo userò il Client Java DataStax. Il driver Java DataStax per Cassandra è disponibile su GitHub all’indirizzo https://github.com/datastax/java-driver. Qui si afferma che si tratta di un “driver client Java per Apache Cassandra” che “funziona esclusivamente con Cassandra Query Language versione 3 (CQL3)” ed è “concesso in licenza Apache, versione 2.0”.

     

    Creazione della classe CassandraConnector

    Crea la classe CassandraConnector per connetterti a Cassandra da Java. Abbiamo bisogno di un oggetto Cluster e deve essere fornito un indirizzo di un nodo come contact point. Se non viene fornito un numero di porta, verrà usata la porta standard 9042. Queste impostazioni consentono al driver di scoprire la topologia del cluster.

    A questo punto modifica il metodo main della classe App.java per invocare la classe appena create per la connessione a Cassandra.

    L’esecuzione dell’applicazione darà il seguente output:

    Connecting to IP Address localhost:9042…
    Connected to cluster: Test Cluster
    Datacenter: datacenter1; Host: localhost/127.0.0.1; Rack: rack1

     

    Creazione del Keyspace e di una tabella da cqlsh

    Da terminale lancia il client a riga di comando cqlsh e crea un keyspace di nome HR, con strategia di Replica SimpleStrategy e replication_factor=3 (quindi abbiamo 3 repliche) con il seguente comando:

    Poi crea la tabella Employees con il seguente comando:

    Adesso che abbiamo un keyspace e una tabella, vediamo come eseguire dei comandi nel linguaggio CQL in Java.

     

    Inserimento dei dati in tabella

    Per inserire i dati nella tabella dobbiamo creare una classe di utility DateCodec per la data.

    Modifico il connector per registrare il DateCodec.

    Creo la classe EmployeePersistence che definisce il metodo per effettuare un’operazione di INSERT nella tabella:

    Infine modifico la classe App.java e il metodo main per lanciare l’inserimento:

    Posso verificare il contenuto del database lanciando da cqlsh il comando seguente:

     

    Scaricare i sorgenti del progetto

    Per scaricare i sorgenti del progetto clicca sull’icona sotto.

    ProgettoHibernate.zip
    ProgettoCassandra.zip

     

    Giulio Cantali – IT Consultant

    Creatore di Database Master, il primo percorso per diventare esperti di database

Lascia un commento

Se vuoi condividere la tua opinione, lascia un commento

Puoi usare questi tag e attributi: HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">