Esercitazione: Eseguire query sui dati da un account API for Cassandra in Azure Cosmos DB

SI APPLICA A: Cassandra

Gli sviluppatori possono avere applicazioni che usano coppie chiave/valore. È possibile usare un account API for Cassandra in Azure Cosmos DB per archiviare ed eseguire query sui dati chiave-valore. Questa esercitazione illustra come eseguire query sui dati utente da un account API for Cassandra in Azure Cosmos DB usando un'applicazione Java. L'applicazione Java usa il driver Java per eseguire query sui dati utente, tra cui ID utente, nome utente e città dell'utente.

Questa esercitazione illustra le attività seguenti:

  • Eseguire query sui dati da una tabella di Cassandra
  • Eseguire l'app

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

  • Questo articolo fa parte di un'esercitazione in più parti. Prima di iniziare, assicurarsi di completare i passaggi precedenti per creare account, keyspace e tabella dell'API for Cassandra e per caricare dati di esempio nella tabella.

Eseguire query sui dati

Usare la procedura seguente per eseguire query sui dati dall'account API for Cassandra:

  1. Aprire il file UserRepository.java nella cartella src\main\java\com\azure\cosmosdb\cassandra. Aggiungere il blocco di codice seguente. Questo codice fornisce tre metodi:

    • Per eseguire query su tutti gli utenti del database
    • Per eseguire query su un utente specifico filtrato in base all'ID utente
    • Per eliminare una tabella
    /**
    * Select all rows from user table
    */
    public void selectAllUsers() {
    
      final String query = "SELECT * FROM uprofile.user";
      List<Row> rows = session.execute(query).all();
    
      for (Row row : rows) {
         LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
      }
    }
    
    /**
    * Select a row from user table
    *
    * @param id user_id
    */
    public void selectUser(int id) {
       final String query = "SELECT * FROM uprofile.user where user_id = 3";
       Row row = session.execute(query).one();
    
       LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
    }
    
    /**
    * Delete user table.
    */
    public void deleteTable() {
      final String query = "DROP TABLE IF EXISTS uprofile.user";
      session.execute(query);
    }
    
  2. Aprire il file UserProfile.java nella cartella src\main\java\com\azure\cosmosdb\cassandra. Questa classe contiene il metodo principale che chiama i metodi per l'inserimento dei dati createKeyspace e createTable definiti in precedenza. A questo punto aggiungere il codice seguente che esegue una query per tutti gli utenti o un utente specifico:

    LOGGER.info("Select all users");
    repository.selectAllUsers();
    
    LOGGER.info("Select a user by id (3)");
    repository.selectUser(3);
    
    LOGGER.info("Delete the users profile table");
    repository.deleteTable();
    

Eseguire l'app Java

  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
    
  2. A questo punto, nel portale di Azure, aprire Esplora dati e verificare che la tabella utente sia eliminata.

Pulire le risorse

Quando non sono più necessari, è possibile eliminare il gruppo di risorse, l'account Azure Cosmos DB e tutte le risorse correlate. A tale scopo, selezionare il gruppo di risorse per la macchina virtuale, selezionare Elimina e quindi confermare il nome del gruppo di risorse da eliminare.

Passaggi successivi

In questa esercitazione si è appreso come eseguire query sui dati da un account API for Cassandra in Azure Cosmos DB. È possibile passare all'articolo successivo: