Tutorial: Consultar dados de uma API para a conta do Cassandra no Azure Cosmos DB

APLICA-SE A: Cassandra

Enquanto programador, poderá ter aplicações que utilizam pares chave/valor. Pode utilizar uma API para a conta do Cassandra no Azure Cosmos DB para armazenar e consultar os dados de chave/valor. Este tutorial mostra como consultar dados de utilizadores a partir de uma API para a conta do Cassandra no Azure Cosmos DB através de uma aplicação Java. A aplicação Java utiliza o controlador Java e consulta os dados de utilizador, como o ID de utilizador, o nome de utilizador e a cidade do utilizador.

Este tutorial abrange as seguintes tarefas:

  • Consultar dados de uma tabela do Cassandra
  • Executar a aplicação

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

  • Este artigo pertence a um tutorial com várias partes. Antes de começar, certifique-se de que conclui os passos anteriores para criar a API para a conta do Cassandra, espaço de chaves, tabela e carregar dados de exemplo para a tabela.

Consultar dados

Utilize os seguintes passos para consultar dados da sua API para a conta do Cassandra:

  1. Abra o ficheiro UserRepository.java na pasta src\main\java\com\azure\cosmosdb\cassandra. Anexe o seguinte bloco de código. Este código fornece três métodos:

    • Para consultar todos os utilizadores na base de dados
    • Para consultar um utilizador específico, filtrado por ID de utilizador
    • Para eliminar uma tabela
    /**
    * 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. Abra o ficheiro UserProfile.java na pasta src\main\java\com\azure\cosmosdb\cassandra. Esta classe contém o método principal que chama os métodos createKeyspace, createTable e inserir dados definidos anteriormente. Agora, anexe o código seguinte, que consulta todos os utilizadores ou um utilizador específico:

    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();
    

Executar a aplicação Java

  1. Abra uma linha de comandos ou janela de terminal. Cole o seguinte bloco de código.

    Este código altera o diretório (cd) para o caminho da pasta onde criou o projeto. Em seguida, executa o comando mvn clean install para gerar o ficheiro cosmosdb-cassandra-examples.jar na pasta de destino. Por fim, executa a aplicação Java.

    cd "cassandra-demo"
    
    mvn clean install
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile
    
  2. Agora, no portal do Azure, abra o Data Explorer e verifique se a tabela de utilizador foi eliminada.

Limpar os recursos

Quando já não forem necessários, pode eliminar o grupo de recursos, a conta do Azure Cosmos DB e todos os recursos relacionados. Para tal, selecione o grupo de recursos da máquina virtual, selecione Eliminar e, em seguida, confirme o nome do grupo de recursos a eliminar.

Passos seguintes

Neste tutorial, aprendeu a consultar dados a partir de uma API para conta do Cassandra no Azure Cosmos DB. Pode agora avançar para o artigo seguinte: