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

ПРИМЕНЯЕТСЯ К: Кассандра

Important

Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.

Вы хотите перенести существующее приложение Apache Cassandra? Рассмотрим управляемый экземпляр Azure для Apache Cassandra.

Как у разработчика, у вас могут быть приложения, которые используют пары «ключ-значение». Вы можете использовать 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.

    Настройки Value Description
    Подписка Ваша подписка Выберите подписку 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/c и 25 ГБ хранилища бесплатно. Дополнительные сведения о бесплатном уровне.
    Ограничение общей пропускной способности учетной записи Выберите, чтобы ограничить пропускную способность учетной записи. Этот параметр полезен, если требуется ограничить общую пропускную способность учетной записи определенным значением.

    Замечание

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

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

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

    Настройки Value Description
    Геоизбыточность Disable Включает или отключает глобальное распределение в вашей учетной записи, связывая ваш регион с парным регионом. В дальнейшем в учетную запись можно добавить дополнительные регионы.
    Многорегиональные записи Disable Благодаря возможности многорегионной записи вы можете воспользоваться подготовленной пропускной способностью для баз данных и контейнеров по всему миру.
    Зоны доступности Disable Зоны доступности — это изолированные расположения в регионе 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. Теперь вы можете перейти к следующей статье: