Поделиться через


Руководство. Запрос данных из учетной записи Cassandra в Azure Cosmos DB

Область применения: Кассандра

Как у разработчика у вас должно быть приложение, использующее пары "ключ-значение". Вы можете использовать API для учетной записи Cassandra в Azure Cosmos DB для хранения и запроса данных ключа или значения. В этом руководстве показано, как запрашивать данные пользователей из учетной записи API для Cassandra в Azure Cosmos DB с помощью приложения Java. Приложение Java использует драйвер Java и запрашивает данные пользователя, например, идентификатор пользователя, имя пользователя, город пользователя.

В рамках этого руководства рассматриваются следующие задачи:

  • Запрос данных из таблицы Cassandra
  • Выполнить приложение

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

Необходимые компоненты

  • Эта статья относится к руководству из нескольких частей. Перед началом работы выполните предыдущие действия, чтобы создать API для учетной записи Cassandra, пространства ключей, таблицы и загрузки примеров данных в таблицу.

Запрос данных

Выполните следующие действия, чтобы запросить данные из учетной записи API для Cassandra:

  1. Откройте файл UserRepository.java, расположенный в папке src\main\java\com\azure\cosmosdb\cassandra. Добавьте в него приведенный ниже блок кода. Этот код предоставляет три метода:

    • для запрашивания данных всех пользователей в базе данных;
    • для запрашивания данных конкретного пользователя с применением фильтра по идентификатору пользователя;
    • для удаления таблицы.
    /**
    * 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. Откройте файл UserProfile.java, расположенный в папке src\main\java\com\azure\cosmosdb\cassandra. Этот класс содержит основной метод, который вызывает методы createKeyspace и createTable, а также метод вставки данных, определенные вами ранее. Теперь добавьте приведенный ниже код, который запрашивает всех пользователей или конкретного пользователя.

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

Запуск приложения Java

  1. Откройте командную строку или окно терминала. Вставьте следующий блок кода.

    Этот код изменяет каталог (cd) для пути к папке, где создан проект. Затем он выполняет команду mvn clean install, чтобы создать файл cosmosdb-cassandra-examples.jar в целевой папке. Наконец, он запускает приложение Java.

    cd "cassandra-demo"
    
    mvn clean install
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile
    
  2. Теперь на портале Azure откройте обозреватель данных и убедитесь, что таблица пользователя удалена.

Очистка ресурсов

Если они больше не нужны, вы можете удалить группу ресурсов, учетную запись Azure Cosmos DB и все связанные ресурсы. Для этого выберите группу ресурсов для виртуальной машины, выберите Удалить и подтвердите имя удаляемой группы ресурсов.

Следующие шаги

В этом руководстве вы узнали, как запрашивать данные из учетной записи API для Cassandra в Azure Cosmos DB. Теперь вы можете перейти к следующей статье: