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

SI APPLICA A: Cassandra

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

Questa esercitazione illustra le attività seguenti:

  • Creare un account di database Cassandra
  • Ottenere la stringa di connessione dell’account
  • Creare il progetto e le dipendenze Maven
  • Aggiungere un database e una tabella
  • Eseguire l'app

Prerequisiti

Creare un account di database

  1. Nel menu del portale di Azure o dalla pagina Home 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 selezionare Crea nella sezione Cassandra.

    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 questo argomento di avvio rapido si creerà una tabella che utilizza l'API per Cassandra.

    Altre informazioni sull'API per Cassandra.

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

    Impostazione valore Descrizione
    Subscription Sottoscrizione in uso Selezionare la sottoscrizione di Azure da usare per l'account Azure Cosmos DB.
    Gruppo di risorse Crea nuovo

    Immettere quindi lo stesso nome specificato nome dell'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.
    Nome conto Immettere un nome univoco Immettere un nome univoco per identificare l'account Azure Cosmos DB. L'URI dell'account sarà cassandra.cosmos.azure.com e verrà aggiunto al nome dell'account univoco.

    Il nome dell'account può contenere solo lettere minuscole, numeri e trattini e deve avere una lunghezza compresa tra 3 e 31 caratteri.
    Ufficio Area più vicina ai propri 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à di capacità Provisioning velocità effettiva o Serverless Selezionare Provisioning velocità effettiva per creare un account in modalità Provisioning velocità effettiva. Selezionare Serverless per creare un account in modalità Serverless.
    Applicare lo sconto in base al livello gratuito di Azure Cosmos DB Applicare o non applicare Il livello gratuito di Azure Cosmos DB offre i primi 1000 UR/s e 25 GB di spazio di archiviazione gratuiti per account. Altre informazioni sul livello gratuito.
    Limitare la velocità effettiva totale dell'account Selezionare per limitare la velocità effettiva dell'account Questa opzione è utile se si vuole limitare la velocità effettiva totale dell'account in base a un valore specifico.

    Nota

    È possibile avere fino a un account Azure Cosmos DB del livello gratuito per ogni sottoscrizione di Azure ed è necessario acconsentire esplicitamente durante la creazione dell'account. Se l'opzione per l'applicazione dello sconto per il livello gratuito non è visualizzata, un altro account nella sottoscrizione è già stato abilitato per il livello gratuito.

    The new account page for Azure Cosmos DB for Apache Cassandra

  6. Nella scheda Distribuzione globale configurare i dettagli seguenti. Ai fini di questa guida introduttiva è possibile lasciare i valori predefiniti:

    Impostazione valore Descrizione
    Ridondanza geografica Disabilita 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 Disabilita 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à Disabilita Le zone di disponibilità sono località 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.

    Nota

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

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

    • Rete: consente di configurare l'accesso da una rete virtuale.
    • Criteri di backup: consente di configurare i criteri di backup periodici o continui.
    • Crittografia: consente di usare una chiave gestita dal servizio o una chiave gestita dal cliente.
    • Tag: i tag sono coppie nome-valore che consentono di classificare le risorse e visualizzare dati di fatturazione consolidati tramite l'applicazione dello stesso tag a più risorse e gruppi di risorse.
  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.

    The Azure portal Notifications pane

  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 documento 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 i passaggi indicati di seguito:

  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 file pom.xml che è stato generato.

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

  3. Nella cartella cassandra-demo\src\main, creare una nuova cartella denominata resources. Nella cartella di risorse, aggiungere 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 cartella di cassandra, creare un'altra cartella denominata utils. La nuova cartella archivia le classi di utilità necessarie per connettersi all'account dell'API per 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 Configurazioni per leggere le informazioni sulla stringa di connessione dal file config.properties.

  5. L'esempio Java crea un database con informazioni sull'utente, ad esempio nome utente, ID utente e città dell'utente. È necessario definire i metodi di get e set per accedere ai dettagli dell'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 con 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 principale che chiama i metodi creareKeyspace e creareTabelle 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. A questo punto, nel portale di Azure, aprire Esplora dati per confermare che sono stati creati il keyspace e la tabella.

Passaggi successivi

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