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


Руководство по созданию API для Cassandra в Azure Cosmos DB с помощью Java-приложения для хранения данных в формате ключ/значение

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

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

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

  • Создайте учетную запись базы данных Cassandra.
  • Получите строку подключения учетной записи.
  • Создайте проект Maven и зависимости.
  • Добавьте базу данных и таблицу.
  • Запустите приложение.

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

Создание учетной записи базы данных

  1. В меню портала Azure или домашней странице выберите "Создать ресурс".

  2. На странице Создание найдите и выберите Azure Cosmos DB.

  3. На странице Azure Cosmos DB выберите Создать.

  4. На странице API в разделе Cassandra выберите "Создать".

    API определяет тип учетной записи, которую нужно создать. Azure Cosmos DB предоставляет пять API: NoSQL для баз данных документов, Gremlin для графовых баз данных, MongoDB для баз данных документов, таблиц Azure и Cassandra. Для каждого API требуется создать отдельную учетную запись.

    Выберите Cassandra , так как в этом руководстве вы создаете таблицу, которая работает с API для Cassandra.

    Дополнительные сведения об API для Cassandra см. в статье "Что такое Azure Cosmos DB для Apache Cassandra?".

  5. На странице "Создание учетной записи Azure Cosmos DB " введите основные параметры для новой учетной записи Azure Cosmos DB.

    Параметр значение Описание
    Подписка Ваша подписка Выберите подписку Azure, которую вы хотите использовать для этой учетной записи Azure Cosmos DB.
    Группа ресурсов Создайте новое.

    Затем введите то же имя, что и имя учетной записи.
    Выберите Создать. Затем введите новое имя группы ресурсов для учетной записи. Для удобства можно использовать то же имя, которое присвоено учетной записи Azure Cosmos DB.
    Имя аккаунта Введите уникальное имя. Введите уникальное имя для идентификации вашей учетной записи Azure Cosmos DB. URI учетной записи, cassandra.cosmos.azure.com, присоединяемый к уникальному имени учетной записи.

    Имя учетной записи может использовать только строчные буквы, цифры и дефисы (-) и должно составлять от 3 до 31 символов.
    Местоположение Регион, ближайший к вашим пользователям. Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным.
    Режим емкости Подготовленная пропускная способность или бессерверная пропускная способность. Выберите подготовленную пропускную способность для создания учетной записи в режиме подготовленной пропускной способности . Выберите "Бессерверный ", чтобы создать учетную запись в бессерверном режиме.
    Применение скидки на бесплатный план Azure Cosmos DB Применить или не применять. В бесплатном уровне Azure Cosmos DB вы получаете первые 1000 RU/с и 25 ГБ хранилища бесплатно в учетной записи. Дополнительные сведения о бесплатном уровне.
    Ограничение общей пропускной способности учетной записи Выберите, чтобы ограничить пропускную способность учетной записи. Этот параметр полезен, если требуется ограничить общую пропускную способность учетной записи определенным значением.

    Примечание.

    Вы можете иметь одну бесплатную учетную запись уровня Azure Cosmos DB на одну подписку Azure. При создании учетной записи необходимо дать согласие. Если вы не видите возможность воспользоваться скидкой на бесплатный уровень, значит, другая учетная запись в подписке уже использовала бесплатный уровень.

    Страница новой учетной записи Для Azure Cosmos DB для Apache Cassandra

  6. На вкладке "Глобальное распределение" настройте следующие сведения. Используйте значения по умолчанию для этого руководства.

    Параметр значение Описание
    Геоизбыточность Отключить Включает или отключает глобальное распределение в вашей учетной записи, связывая ваш регион с парным регионом. В дальнейшем в учетную запись можно добавить дополнительные регионы.
    Многорегиональные записи Отключить Благодаря возможности многорегионной записи вы можете воспользоваться подготовленной пропускной способностью для баз данных и контейнеров по всему миру.
    Зоны доступности Отключить Зоны доступности — это изолированные расположения в регионе Azure. Каждая зона состоит из одного или нескольких центров обработки данных, оснащенных независимыми системами электроснабжения, охлаждения и сетевого взаимодействия.

    Если вы выберете Бессерверный в качестве режима емкости, следующие параметры будут недоступны:

    • Применить скидку на бесплатный уровень
    • Геоизбыточность
    • Многорегиональные записи
  7. При необходимости можно настроить другие сведения на следующих вкладках:

  8. Выберите Review + create (Просмотреть и создать).

  9. Проверьте параметры учетной записи, а затем нажмите кнопку Создать. Создание учетной записи занимает несколько минут. Дождитесь, пока на странице портала появится сообщение Развертывание выполнено.

    Снимок экрана: панель уведомлений портала Azure.

  10. Выберите Перейти к ресурсу, чтобы перейти на страницу учетной записи Azure Cosmos DB.

Получение сведений о подключении учетной записи

Получите сведения о строке подключения с портала Azure и скопируйте их в файл конфигурации Java. Строка подключения обеспечивает обмен данными между вашим приложением и размещенной базой данных.

  1. В портал Azure перейдите к учетной записи Azure Cosmos DB.

  2. Откройте панель Строка подключения.

  3. Скопируйте значения CONTACT POINT, PORT, USERNAME и PRIMARY PASSWORD, которые пригодятся вам на следующих этапах.

Создание проекта и зависимостей

Пример проекта Java, используемый в этой статье, размещен на GitHub. Вы можете выполнить действия, описанные в этой статье, или скачать пример из репозитория azure-cosmos-db-cassandra-java-getting-started .

После загрузки файлов обновите строку подключения в файле java-examples\src\main\resources\config.properties и запустите его.

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

Чтобы создать пример с нуля, выполните следующие действия.

  1. В терминале или командной строке создайте новый проект Maven под названием cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Найдите папку cassandra-demo. С помощью текстового редактора откройте pom.xml созданный файл.

    Добавьте зависимости Cassandra и плагины сборки, необходимые вашему проекту, как показано в файле pom.xml.

  3. В папке cassandra-demo\src\main создайте папку с именем resources. В папке resources добавьте config.properties и log4j.properties файлы:

    • Файл config.properties хранит конечную точку подключения и ключевые значения API для учетной записи Cassandra.
    • Файл log4j.properties определяет уровень ведения журнала, необходимый для взаимодействия с API для Cassandra.
  4. Перейдите в папку src/main/java/com/azure/cosmosdb/cassandra/. В папке cassandra создайте другую папку с именем utils. В новой папке хранятся служебные классы, необходимые для подключения к учетной записи API для Cassandra.

    Добавьте класс CassandraUtils для создания кластера и открытия и закрытия сеансов Cassandra. Кластер подключается к учетной записи API для Cassandra в Azure Cosmos DB и возвращает сеанс для доступа. Используйте класс Configurations для чтения сведений о строке config.properties подключения из файла.

  5. Пример Java создает базу данных с данными пользователя, такими как имя пользователя, идентификатор пользователя и город пользователя. Необходимо определить get и set методы для доступа к сведениям о пользователе в главной функции.

    Создайте класс User.java в папке src/main/java/com/azure/cosmosdb/cassandra/ с методами get и set.

Добавление базы данных и таблицы

В этом разделе описывается, как добавить базу данных (пространство ключей) и таблицу с помощью языка запросов Cassandra (CQL).

  1. В папке src\main\java\com\azure\cosmosdb\cassandra создайте папку с именем repository.

  2. Создайте класс Java UserRepository и добавьте в него следующий код:

    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. Найдите папку src\main\java\com\azure\cosmosdb\cassandra и создайте новую вложенную папку с именем examples.

  4. Создайте класс Java UserProfile. Этот класс содержит основной метод, который вызывает сначала метод createKeyspace, а затем метод createTable, которые вы определили ранее.

    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"); 
            } 
        } 
    } 
    

Выполнить приложение

  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 откройте обозреватель данных , чтобы убедиться, что пространство ключей и таблица были созданы.

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

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