Condividi tramite


Esercitazione: Creare un'API per l'account Cassandra in Azure Cosmos DB usando un'applicazione Java per archiviare dati di tipo chiave/valore

SI APPLICA A: Cassandra

Gli sviluppatori possono avere applicazioni che usano coppie chiave/valore. È possibile usare un'API per l'account Cassandra in Azure Cosmos DB per archiviare i dati chiave/valore. Questa esercitazione descrive come usare un'applicazione Java per creare un account API per Cassandra in Azure Cosmos DB, aggiungere un database (detto anche keyspace) e aggiungere una tabella. L'applicazione Java usa il driver Java per creare un database utente contenente dettagli, ad esempio l'ID utente, il nome utente e la città dell'utente.

Questa esercitazione illustra le attività seguenti:

  • Creare un account di database Cassandra.
  • Ottieni la stringa di connessione dell'account.
  • Creare un progetto Maven e aggiungere le dipendenze.
  • Aggiungere un database e una tabella.
  • Avvia l'app.

Prerequisiti

Creare un account di database

  1. Nel menu del portale di Azure o nella home page selezionare Crea una risorsa.

  2. Nella pagina Nuovo cercare e selezionare Azure Cosmos DB.

  3. Nella pagina Azure Cosmos DB selezionare Crea.

  4. Nella pagina API , nella sezione Cassandra , selezionare Crea.

    L'API determina il tipo di account da creare. Azure Cosmos DB mette a disposizione cinque API: NoSQL per i database di documenti, Gremlin per i database di grafi, MongoDB per i database di documenti, Azure Table e Cassandra. È necessario creare un account separato per ogni API.

    Selezionare Cassandra perché in questa esercitazione si sta creando una tabella che funziona con l'API per Cassandra.

    Per altre informazioni sull'API per Cassandra, vedere Informazioni su Azure Cosmos DB per Apache Cassandra.

  5. Nella pagina Crea account Azure Cosmos DB immettere le impostazioni di base per il nuovo account Azure Cosmos DB.

    Impostazione valore Descrizione
    Abbonamento La tua sottoscrizione. Selezionare la sottoscrizione di Azure da usare per l'account Azure Cosmos DB.
    Gruppo di risorse Crea nuovo elemento.

    Immettere quindi lo stesso nome di Nome account.
    Selezionare Crea nuovo. Immettere quindi il nome di un nuovo gruppo di risorse per l'account. Per semplicità, usare lo stesso nome usato come nome dell'account Azure Cosmos DB.
    Account Name: Immettere un nome univoco. Immettere un nome univoco per identificare l'account Azure Cosmos DB. L'URI dell'account, cassandra.cosmos.azure.com, aggiunto al nome dell'account univoco.

    Il nome dell'account può usare solo lettere minuscole, numeri e trattini (-) e deve avere una lunghezza compresa tra 3 e 31 caratteri.
    Ubicazione Area più vicina agli utenti. Selezionare una posizione geografica in cui ospitare l'account Azure Cosmos DB. Usare la località più vicina agli utenti per offrire loro la massima velocità di accesso ai dati.
    Modalità capacità Velocità effettiva con provisioning o serverless. Selezionare Velocità effettiva con provisioning per creare un account in modalità Velocità effettiva con provisioning. Selezionare Serverless per creare un account in modalità serverless .
    Applica lo sconto del piano gratuito di Azure Cosmos DB Applicare o Non applicare. Con il livello gratuito di Azure Cosmos DB si ottengono gratuitamente i primi 1.000 UR/sec e 25 GB di spazio di archiviazione in un account. Altre informazioni sul livello gratuito.
    Limitare la larghezza di banda totale dell'account Selezionare questa opzione per limitare la velocità effettiva dell'account. Questa opzione è utile se si vuole limitare la velocità effettiva totale dell'account a un valore specifico.

    Note

    È possibile avere fino a un account Azure Cosmos DB di livello gratuito per ogni sottoscrizione di Azure. È necessario acconsentire esplicitamente quando si crea l'account. Se non viene visualizzata l'opzione per applicare lo sconto del livello gratuito, un altro account nella sottoscrizione è stato abilitato con il livello gratuito.

    Pagina del nuovo account per Azure Cosmos DB for Apache Cassandra

  6. Nella scheda Distribuzione globale configurare i dettagli seguenti. Usare i valori predefiniti per questa esercitazione.

    Impostazione valore Descrizione
    Ridondanza geografica Disabilitazione Abilitare o disabilitare la distribuzione globale nell'account associando la propria area a un'altra area. È possibile aggiungere altre aree al proprio account in un secondo momento.
    Scritture in più aree Disabilitazione La funzionalità Scritture in più aree consente di sfruttare la velocità effettiva di cui è stato effettuato il provisioning per i database e i contenitori in tutto il mondo.
    Zone di disponibilità Disabilitazione Le zone di disponibilità sono posizioni isolate all'interno di un'area di Azure. Ogni zona è costituita da uno o più data center dotati di impianti indipendenti per l'alimentazione, il raffreddamento e la connettività di rete.

    Le opzioni seguenti non sono disponibili se si seleziona Serverless come modalità capacità:

    • Applica sconto per il livello gratuito
    • Ridondanza geografica
    • Scritture in più aree
  7. Facoltativamente, è possibile configurare altri dettagli nelle schede seguenti:

  8. Selezionare Rivedi e crea.

  9. Esaminare le impostazioni dell'account e quindi selezionare Crea. La creazione dell'account richiede alcuni minuti. Attendere che la pagina del portale visualizzi La distribuzione è stata completata.

    Screenshot che mostra il riquadro Notifiche del portale di Azure.

  10. Selezionare Vai alla risorsa per passare alla pagina dell'account Azure Cosmos DB.

Ottenere i dettagli della connessione dell'account

Ottenere le informazioni sulla stringa di connessione dal portale di Azure e copiarle nel file di configurazione di Java. La stringa di connessione consente all'app di comunicare con il database ospitato.

  1. Nel portale di Azure passare all'account Azure Cosmos DB.

  2. Aprire il riquadro Stringa di connessione.

  3. Copiare i valori PUNTO DI CONTATTO, PORTA, NOME UTENTE e PASSWORD PRIMARIA da usare nei passaggi successivi.

Creare il progetto e le dipendenze

Il progetto di esempio Java usato in questo articolo è ospitato in GitHub. È possibile eseguire i passaggi descritti in questo articolo o scaricare l'esempio dal repository azure-cosmos-db-cassandra-java-getting-started .

Dopo aver scaricato i file, aggiornare le informazioni sulla stringa di connessione all'interno del file java-examples\src\main\resources\config.properties ed eseguirlo.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Per compilare l'esempio da zero, seguire questa procedura:

  1. Dal terminale o dal prompt dei comandi creare un nuovo progetto Maven denominato cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Trova la cartella cassandra-demo. Usando un editor di testo, aprire il pom.xml file generato.

    Aggiungere le dipendenze di Cassandra e compilare i plug-in richiesti dal progetto, come illustrato nel file pom.xml .

  3. Nella cartella cassandra-demo\src\main, creare una nuova cartella denominata resources. Nella cartella resources, aggiungi i file config.properties e log4j.properties:

    • Il file config.properties archivia l'endpoint di connessione e i valori chiave dell'account dell'API per Cassandra.
    • Il file log4j.properties definisce il livello di registrazione richiesto quando si interagisce con l'API per Cassandra.
  4. Passare alla cartella src/main/java/com/azure/cosmosdb/cassandra/. All'interno della cassandra cartella creare un'altra cartella denominata utils. La nuova cartella archivia le classi di utilità necessarie per connettersi all'API per l'account Cassandra.

    Aggiungere la classe CassandraUtils per creare il cluster e per aprire e chiudere le sessioni di Cassandra. Il cluster si connette all'account dell'API per Cassandra in Azure Cosmos DB e restituisce una sessione per l'accesso. Usare la classe Configurations per leggere le informazioni sulla stringa di connessione dal config.properties file.

  5. L'esempio Java crea un database con informazioni sull'utente, ad esempio il nome utente, l'ID utente e la città dell'utente. È necessario definire get metodi e set per accedere ai dettagli utente nella funzione principale.

    Creare una classe User.java nella cartella src/main/java/com/azure/cosmosdb/cassandra/ con i metodi get e set.

Aggiungere un database e una tabella

Questa sezione descrive come aggiungere un database (keyspace) e una tabella usando cassandra Query Language (CQL).

  1. Nella cartella src\main\java\com\azure\cosmosdb\cassandra, creare una nuova cartella denominata repository.

  2. Creare la classe Java UserRepository e aggiungervi i seguenti codici:

    package com.azure.cosmosdb.cassandra.repository; 
    import java.util.List; 
    import com.datastax.driver.core.BoundStatement; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Row; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Create a Cassandra session 
     */ 
    public class UserRepository { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); 
        private Session session; 
        public UserRepository(Session session) { 
            this.session = session; 
        } 
    
        /** 
        * Create keyspace uprofile in cassandra DB 
         */ 
    
        public void createKeyspace() { 
             final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; 
            session.execute(query); 
            LOGGER.info("Created keyspace 'uprofile'"); 
        } 
    
        /** 
         * Create user table in cassandra DB 
         */ 
    
        public void createTable() { 
            final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"; 
            session.execute(query); 
            LOGGER.info("Created table 'user'"); 
        } 
    } 
    
  3. Trovare la cartella src\main\java\com\azure\cosmosdb\cassandra e creare una nuova sottocartella denominata examples.

  4. Creare la classe Java UserProfile. Questa classe contiene il metodo main che chiama i metodi createKeyspace e createTable definiti in precedenza.

    package com.azure.cosmosdb.cassandra.examples; 
    import java.io.IOException; 
    import com.azure.cosmosdb.cassandra.repository.UserRepository; 
    import com.azure.cosmosdb.cassandra.util.CassandraUtils; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Example class which will demonstrate following operations on Cassandra Database on CosmosDB 
     * - Create Keyspace 
     * - Create Table 
     * - Insert Rows 
     * - Select all data from a table 
     * - Select a row from a table 
     */ 
    
    public class UserProfile { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); 
        public static void main(String[] s) throws Exception { 
            CassandraUtils utils = new CassandraUtils(); 
            Session cassandraSession = utils.getSession(); 
    
            try { 
                UserRepository repository = new UserRepository(cassandraSession); 
                //Create keyspace in cassandra database 
                repository.createKeyspace(); 
                //Create table in cassandra database 
                repository.createTable(); 
    
            } finally { 
                utils.close(); 
                LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); 
            } 
        } 
    } 
    

Eseguire l'app

  1. Aprire un prompt dei comandi o una finestra del terminale. Incollare il codice seguente.

    Questo codice modifica la directory (cd) nel percorso della cartella in cui è stato creato il progetto. Quindi, esegue il comando mvn clean install per generare il file cosmosdb-cassandra-examples.jar all'interno della cartella di destinazione. Infine, esegue l'applicazione Java.

    cd cassandra-demo
    
    mvn clean install 
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 
    

    Nella finestra del terminale vengono visualizzate notifiche per il completamento della creazione di keyspace e tabella.

  2. Nel portale di Azure aprire Esplora dati per verificare che il keyspace e la tabella siano stati creati.

Passo successivo

In questa esercitazione si è appreso come creare un account API per Cassandra in Azure Cosmos DB, un database e una tabella usando un'applicazione Java. È possibile passare all'articolo successivo: