Краткое руководство по созданию приложения Cassandra с помощью .NET Core и Azure Cosmos DB
Область применения: Кассандра
В этом кратком руководстве показано, как использовать .NET Core и API Azure Cosmos DB для Cassandra для создания приложения профиля, клонируя пример из GitHub. Кроме того, здесь показано, как создать учетную запись Azure Cosmos DB на веб-портале Azure.
Azure Cosmos DB — это многомодельная служба базы данных от Microsoft, распространяемая по всему миру. Вы можете быстро создавать и запрашивать документы, таблицы, пары "ключ — значение" и базы данных графов, используя возможности глобального распределения и горизонтального масштабирования Azure Cosmos DB.
Необходимые компоненты
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. Кроме того, бесплатную пробную версию Azure Cosmos DB можно использовать без подписки Azure, без оплаты и каких-либо обязательств.
Кроме того, вам потребуется:
- Visual Studio последней версии с рабочей нагрузкой разработки для Azure. Вы можете приступить к работе с бесплатной интегрированной среды разработки сообщества Visual Studio. При установке Visual Studio включите рабочую нагрузку разработки для Azure.
- Установите Git, чтобы клонировать пример.
Создание учетной записи базы данных
На домашней странице или в меню портала Azure выберите Создать ресурс.
На странице Создание найдите и выберите Azure Cosmos DB.
На странице Azure Cosmos DB выберите Создать.
На странице API выберите "Создать" в разделе Cassandra.
API определяет тип учетной записи, которую нужно создать. Azure Cosmos DB предоставляет пять API: NoSQL для баз данных документов, Gremlin для графовых баз данных, MongoDB для баз данных документов, таблиц Azure и Cassandra. Для каждого API требуется создать отдельную учетную запись.
Выберите Cassandra, так как в этом кратком руководстве вы создаете таблицу, которая работает с API для Cassandra.
На странице "Создание учетной записи 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. Каждая зона состоит из одного или нескольких центров обработки данных, оснащенных независимыми системами электроснабжения, охлаждения и сетевого взаимодействия. Примечание.
Следующие параметры недоступны, если вы выбрали значение Бессерверный для параметра Режим емкости:
- Применить скидку бесплатного уровня
- Геоизбыточность
- Операции записи с поддержкой нескольких регионов
При необходимости можно настроить дополнительные сведения на следующих вкладках.
- Сеть: настройка доступа из виртуальной сети.
- Политика резервного копирования: настройте политику периодического или непрерывного резервного копирования.
- Шифрование: используйте либо ключ, управляемый службой, либо ключ, управляемый клиентом.
- Теги: теги — это пары имя — значение, которые можно назначать различным ресурсам и группам ресурсов для их категоризации и консолидированного отображения счетов.
Выберите Review + create (Просмотреть и создать).
Проверьте параметры учетной записи, а затем нажмите кнопку Создать. Создание учетной записи занимает несколько минут. Дождитесь, пока на странице портала появится сообщение Развертывание выполнено.
Выберите Перейти к ресурсу, чтобы перейти на страницу учетной записи Azure Cosmos DB.
Клонирование примера приложения
Теперь перейдем к работе с кодом. Клонируем API для приложения Cassandra из GitHub, задайте строка подключения и запустите его. Вы узнаете, как можно упростить работу с данными программным способом.
Откройте командную строку. Создайте папку с именем
git-samples
. Затем закройте командную строку.md "C:\git-samples"
Откройте окно терминала git, например git bash, и выполните команду
cd
, чтобы перейти в новую папку для установки примера приложения.cd "C:\git-samples"
Выполните команду ниже, чтобы клонировать репозиторий с примером. Эта команда создает копию примера приложения на локальном компьютере.
git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-dotnet-core-getting-started.git
Затем откройте файл решения CassandraQuickStartSample в Visual Studio.
Просмотр кода
Этот шаг необязательный. Если вы хотите узнать, как создавать ресурсы базы данных в коде, изучите приведенные ниже фрагменты кода. Фрагменты кода взяты из файла Program.cs
, установленного в папке C:\git-samples\azure-cosmos-db-cassandra-dotnet-core-getting-started\CassandraQuickStart
, с помощью метода async Task ProcessAsync()
. Если вас это не интересует, можете сразу переходить к разделу Обновление строки подключения.
Инициализируйте сеанс путем подключения к конечной точке кластера Cassandra. API для Cassandra в Azure Cosmos DB поддерживает только TLSv1.2.
var options = new Cassandra.SSLOptions(SslProtocols.Tls12, true, ValidateServerCertificate); options.SetHostNameResolver((ipAddress) => CASSANDRACONTACTPOINT); Cluster cluster = Cluster .Builder() .WithCredentials(USERNAME, PASSWORD) .WithPort(CASSANDRAPORT) .AddContactPoint(CASSANDRACONTACTPOINT) .WithSSL(options) .Build() ; ISession session = await cluster.ConnectAsync();
Удалите существующее пространства ключей, если оно уже существует.
await session.ExecuteAsync(new SimpleStatement("DROP KEYSPACE IF EXISTS uprofile"));
Создайте пространство ключей.
await session.ExecuteAsync(new SimpleStatement("CREATE KEYSPACE uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };"));
Создать новую таблицу.
await session.ExecuteAsync(new SimpleStatement("CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"));
Вставьте пользовательские сущности, используя объект IMapper с новым сеансом, который подключается к пространству ключей uprofile.
await mapper.InsertAsync<User>(new User(1, "LyubovK", "Dubai"));
Выполните запрос на получение информации обо всех пользователях.
foreach (User user in await mapper.FetchAsync<User>("Select * from user")) { Console.WriteLine(user); }
Выполните запрос на получение информации об одном пользователе.
mapper.FirstOrDefault<User>("Select * from user where user_id = ?", 3);
Обновление строки подключения
Теперь вернитесь на портал Azure, чтобы получить данные строки подключения. Скопируйте эти данные в приложение. Информация из строки подключения обеспечивает обмен данными между приложением и размещенной базой данных.
На портале Azure выберите Строка подключения.
Используйте кнопку в правой части экрана, чтобы скопировать значение параметра USERNAME.
В Visual Studio откройте файл Program.cs.
Вставьте полученное на портале значение USERNAME вместо элемента
<PROVIDE>
в строке 13.Теперь строка 13 в файле Program.cs будет выглядеть примерно так:
private const string UserName = "cosmos-db-quickstart";
Также можно вставить это же значение вместо
<PROVIDE>
в строке 15 в качестве значения для параметра CONTACT POINT:private const string CassandraContactPoint = "cosmos-db-quickstarts.cassandra.cosmosdb.azure.com"; // DnsName
Вернитесь на портал и скопируйте значение PASSWORD. Вставьте полученное на портале значение PASSWORD вместо элемента
<PROVIDE>
в строке 14.Теперь строка 14 в файле Program.cs будет выглядеть примерно так:
private const string Password = "2Ggkr662ifxz2Mg...==";
Вернитесь на портал и скопируйте значение CONTACT POINT (Точка контакта). Вставьте полученное на портале значение параметра CONTACT POINT над элементом
<PROVIDE>
в строке 16.Теперь строка 16 в файле Program.cs будет выглядеть примерно так:
private const string CASSANDRACONTACTPOINT = "quickstart-cassandra-api.cassandra.cosmos.azure.com";
Сохраните файл Program.cs.
Запустите приложение .NET Core
В Visual Studio выберите Сервис>Диспетчер пакетов NuGet>Консоль диспетчера пакетов.
В командной строке введите указанную ниже команду, чтобы установить пакет NuGet драйвера .NET.
Install-Package CassandraCSharpDriver
Нажмите клавиши CTRL + F5 для запуска приложения. Приложение откроется в окне консоли.
Нажмите клавиши CTRL+C, чтобы остановить выполнение программы и закрыть окно консоли.
На портале Azure откройте обозреватель данных, чтобы запросить, изменить и обработать новые данные.
Просмотр соглашений об уровне обслуживания на портале Azure
Портал Azure отслеживает пропускную способность учетной записи Azure Cosmos DB, хранилище, доступность, задержку и согласованность. На диаграммах метрик, связанных с соглашением об уровне обслуживания для Azure Cosmos DB, отображается значение, указанное в соглашении об уровне обслуживания, в сравнении с фактической производительностью. Этот набор метрик обеспечивает прозрачный мониторинг выполнения соглашения об уровне обслуживания.
Чтобы просмотреть метрики и соглашения об уровне обслуживания, сделайте следующее:
Выберите метрики в меню навигации учетной записи Azure Cosmos DB.
Выберите вкладку, например Задержка, и укажите временной интервал справа. Сравните на диаграмме строки Actual (Фактическое значение) и SLA (Соглашение об уровне обслуживания).
Просмотрите метрики на других вкладках.
Очистка ресурсов
После завершения работы с приложением и учетной записью Azure Cosmos DB можно удалить созданные ресурсы Azure, чтобы избежать дополнительных расходов. Удаление ресурсов:
На панели поиска портала Azure найдите и выберите Группы ресурсов.
Выберите из списка группу ресурсов, созданную для этого краткого руководства.
На странице обзора группы ресурсов выберите Удалить группу ресурсов.
В следующем окне введите имя группы ресурсов, которую требуется удалить, и щелкните Удалить.
Следующие шаги
В этом кратком руководстве описано, как создать учетную запись Azure Cosmos DB и контейнер с помощью обозревателя данных, а также как запустить веб-приложение. Теперь вы можете импортировать другие данные в учетную запись Azure Cosmos DB.