Краткое руководство. Создание приложения Cassandra с помощью пакета SDK для Python и Azure Cosmos DB

ПРИМЕНИМО К: Кассандра

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

Предварительные требования

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

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

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

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

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

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

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

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

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

    Примечание

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

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

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

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

    Примечание

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

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

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

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

    Область Уведомления на портале Azure

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

Клонирование примера приложения

Теперь давайте клонируем API для приложения Cassandra из GitHub, задали строку подключения и запустите ее. Вы видите, насколько просто работать с данными программным способом.

  1. Откройте командную строку. Создайте папку с именем git-samples. Затем закройте командную строку.

    md "C:\git-samples"
    
  2. Откройте окно терминала git, например git bash, и выполните команду cd, чтобы перейти в новую папку для установки примера приложения.

    cd "C:\git-samples"
    
  3. Выполните команду ниже, чтобы клонировать репозиторий с примером. Эта команда создает копию примера приложения на локальном компьютере.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-python-getting-started.git
    

Просмотр кода

Это необязательный шаг. Если вы хотите узнать, как создавать ресурсы базы данных в коде, изучите приведенные ниже фрагменты кода. Фрагменты кода взяты из файла pyquickstart.py. Если вас это не интересует, можете сразу переходить к разделу Обновление строки подключения.

  • Ресурс cluster инициализируется с помощь таких сведений, как contactPoint и port, полученных на портале Azure. cluster Затем подключается к Azure Cosmos DB для Apache Cassandra с помощью connect() метода . Разрешенное подключение устанавливается с использованием имени пользователя, пароля и сертификата по умолчанию или сертификата, указанного в файле конфигурации.

    ssl_context = SSLContext(PROTOCOL_TLSv1_2)
    ssl_context.verify_mode = CERT_NONE
    auth_provider = PlainTextAuthProvider(username=cfg.config['username'], password=cfg.config['password'])
    cluster = Cluster([cfg.config['contactPoint']], port = cfg.config['port'], auth_provider=auth_provider,ssl_context=ssl_context)
    session = cluster.connect()
    
  • Создается пространство ключей.

    print ("\nCreating Keyspace")
    execute_command('CREATE KEYSPACE IF NOT EXISTS uprofile WITH replication = {\'class\': \'NetworkTopologyStrategy\', \'datacenter\' : \'1\' }');
    
  • Создается таблица.

    print ("\nCreating Table")
    execute_command('CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)');
    
  • Вставляются сущности ключа и значения.

    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [1,'Lybkov','Seattle'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [2,'Doniv','Dubai'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [3,'Keviv','Chennai'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [4,'Ehtevs','Pune'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [5,'Dnivog','Belgaum'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [6,'Ateegk','Narewadi'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [7,'KannabbuS','Yamkanmardi'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [8,'Jonas','Atlanta'])
    
  • Запрос на получение всех значений ключа.

    print ("\nSelecting All")
    rows = session.execute('SELECT * FROM uprofile.user')
    PrintTable(rows)
    
  • Запрос на получение значения ключа.

    print ("\nSelecting Id=1")
    rows = session.execute('SELECT * FROM uprofile.user where user_id=1')
    PrintTable(rows)
    

Обновление строки подключения

Теперь вернитесь на портал Azure, чтобы получить данные строки подключения. Скопируйте эти данные в приложение. Строка подключения обеспечивает обмен данными между вашим приложением и размещенной базой данных.

  1. Выберите элемент Строка подключения в своей учетной записи Azure Cosmos DB на портале Azure.

  2. Нажмите кнопку в правой части экрана, чтобы скопировать верхнее значение "Contact point" (Контакт).

    Просмотр и копирование имени пользователя, пароля и контакта в колонке строки подключения на портале Azure

  3. Откройте файл config.py.

  4. Вставьте полученное на портале значение параметра Contact point (Контакт) над элементом <FILLME> в строке 10.

    Теперь строка 10 должна выглядеть примерно так:

    'contactPoint': 'cosmos-db-quickstarts.cassandra.cosmosdb.azure.com'

  5. Вставьте значение PORT на портале в строке <FILLME> 12.

    Теперь строка 12 должна выглядеть примерно так:

    'port': 10350,

  6. Скопируйте значение параметра "Пользователь" на портале и вставьте его над элементом <FILLME> в строке 6.

    Теперь строка 6 должна выглядеть примерно так:

    'username': 'cosmos-db-quickstart',

  7. Скопируйте значение параметра "Пароль" с портала и вставьте его над элементом <FILLME> в строке 8.

    Теперь строка 8 должна выглядеть примерно так:

    'password' = '2Ggkr662ifxz2Mg==';`

  8. Сохраните файл config.py.

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

  1. Выполните команду cd в окне терминала git, чтобы переключиться на папку azure-cosmos-db-cassandra-python-getting-started.

  2. Чтобы установить необходимые модули, выполните следующие команды:

    python -m pip install cassandra-driver==3.20.2
    python -m pip install prettytable
    python -m pip install requests
    python -m pip install pyopenssl
    

    Примечание

    Мы рекомендуем использовать драйвер Python версии 3.20.2 для использования с API для Cassandra. Более поздние версии могут приводить к ошибкам.

  3. Запустите приложение Python с помощью следующей команды:

    python pyquickstart.py
    
  4. Проверьте результаты из командной строки.

    Нажмите клавиши CTRL+C, чтобы остановить выполнение программы и закрыть окно консоли.

    Просмотр и проверка выходных данных

  5. На портале Azure откройте обозреватель данных, чтобы запросить, изменить и обработать новые данные.

    Просмотр данных в обозревателе данных

Просмотр соглашений об уровне обслуживания на портале Azure

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

Чтобы просмотреть метрики и соглашения об уровне обслуживания, сделайте следующее:

  1. Выберите Метрики в меню навигации учетной записи Azure Cosmos DB.

  2. Выберите вкладку, например Задержка, и укажите временной интервал справа. Сравните на диаграмме строки Actual (Фактическое значение) и SLA (Соглашение об уровне обслуживания).

    Набор метрик Azure Cosmos DB

  3. Просмотрите метрики на других вкладках.

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

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

  1. На панели поиска портала Azure найдите и выберите Группы ресурсов.

  2. Выберите из списка группу ресурсов, созданную для этого краткого руководства.

    Выбор удаляемой группы ресурсов

  3. На странице обзора группы ресурсов выберите Удалить группу ресурсов.

    удаление группы ресурсов.

  4. В следующем окне введите имя группы ресурсов, которую требуется удалить, и щелкните Удалить.

Дальнейшие действия

Из этого краткого руководства вы узнали, как создать учетную запись Azure Cosmos DB с ПОМОЩЬЮ API для Cassandra и запустить приложение Cassandra python, которое создает базу данных и контейнер Cassandra. Теперь вы можете импортировать другие данные в учетную запись Azure Cosmos DB.