Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.
Вы хотите реализовать граф интерактивной аналитической обработки (OLAP) или перенести существующее приложение Apache Gremlin? Рассмотрим Graph в Microsoft Fabric.
Azure Cosmos DB для Apache Gremlin — это полностью управляемая служба базы данных графов, реализующая популярную платформу вычислений графов с помощью языка запросов Gremlin. API Gremlin предоставляет вам простой способ начать работу с Gremlin благодаря службе, которая может увеличиваться и расширяться настолько, насколько вам это необходимо, с минимальными усилиями по управлению.
В этом кратком руководстве вы используете консоль Gremlin для подключения к только что созданной учетной записи Azure Cosmos DB для работы с Gremlin.
Предпосылки
- Учетная запись Azure с активной подпиской.
- Нет подписки Azure? Зарегистрируйте бесплатную учетную запись Azure.
-
Узел Docker
- Не установлен Docker? Попробуйте это краткое руководство по началу работы в GitHub Codespaces.
- Интерфейс командной строки Azure (CLI)
Azure Cloud Shell
Azure предоставляет Azure Cloud Shell, интерактивную оболочку, которую можно использовать через браузер. Вы можете использовать Bash или PowerShell с Cloud Shell для работы со службами Azure. Для выполнения кода в этой статье можно использовать предустановленные команды Cloud Shell, не устанавливая ничего в локальной среде.
Чтобы запустить Azure Cloud Shell, выполните приведенные действия.
| Опция | Пример/Ссылка |
|---|---|
| Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. |
|
| Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. |
|
| Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
|
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в сеанс Cloud Shell, выбрав Ctrl+Shift+V в Windows и Linux или выбрав Cmd+Shift+V в macOS.
Нажмите Enter, чтобы запустить код или команду.
Создание API для учетной записи Gremlin и соответствующих ресурсов
Перед использованием консоли Gremlin необходимо создать API для аккаунта Gremlin. Кроме того, полезно иметь базу данных и граф в наличии.
Создайте переменные оболочки для accountName, resourceGroupName и location.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart" location="westus" # Variable for account name with a randomly generated suffix let suffix=$RANDOM*$RANDOM accountName="msdocs-gremlin-$suffix"Если вы еще не сделали этого, войдите в Azure CLI с помощью
az login.Используйте
az group create, чтобы создать новую группу ресурсов в подписке.az group create \ --name $resourceGroupName \ --location $locationИспользуется
az cosmosdb createдля создания нового API для учетной записи Gremlin с параметрами по умолчанию.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier trueЗамечание
Вы можете иметь не более одной учетной записи Azure Cosmos DB уровня "Бесплатный" на одну подписку Azure и должны выбрать этот вариант при создании учетной записи. Если эта команда не применяет скидку на бесплатный уровень, это означает, что другая учетная запись в подписке уже была активирована для бесплатного уровня.
Получение API для конечной точки Gremlin NAME для учетной записи с использованием
az cosmosdb show.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"Найдите ключ из списка ключей для учетной записи
az-cosmosdb-keys-list.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"Запишите значения NAME и KEY. Вы используете эти учетные данные позже.
Создайте базу данных с именем
cosmicworksс помощьюaz cosmosdb gremlin database create.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"Создание графа с помощью
az cosmosdb gremlin graph create. Присвойте графуproductsимя, а затем задайте пропускную способность400и, наконец, задайте путь ключа/categoryсекции.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Запуск и настройка консоли Gremlin с помощью Docker
В консоли Gremlin в этом быстром старте используется tinkerpop/gremlin-console образ контейнера из Docker Hub. Это изображение гарантирует, что вы используете соответствующую версию консоли (3.4) для подключения к API для Gremlin. После запуска консоли подключитесь из локального узла Docker к удаленному API для учетной записи Gremlin.
Получите версию
3.4образа контейнераtinkerpop/gremlin-console.docker pull tinkerpop/gremlin-console:3.4Создайте пустую рабочую папку. В пустой папке создайте файл remote-secure.yaml . Добавьте эту конфигурацию YAML в файл.
hosts: [<account-name>.gremlin.cosmos.azure.com] port: 443 username: /dbs/cosmicworks/colls/products password: <account-key> connectionPool: { enableSsl: true, sslEnabledProtocols: [TLSv1.2] } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0, config: { serializeResultToString: true } }Замечание
Замените заполнители
<account-name>и<account-key>на значения NAME и KEY, полученные ранее в этом кратком руководстве.Откройте новый терминал в контексте рабочей папки, включающую файл remote-secure.yaml .
Запустите образ контейнера Docker в интерактивном (
--interactive --tty) режиме. Убедитесь, что текущая рабочая папка монтируется на путь/opt/gremlin-console/conf/в контейнере.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4В контейнере консоли Gremlin подключитесь к удаленной учетной записи (API для Gremlin) с помощью файла конфигурации remote-secure.yaml .
:remote connect tinkerpop.server conf/remote-secure.yaml
Создание и обход вершин и ребер
Теперь, когда консоль подключена к учетной записи, используйте стандартный синтаксис Gremlin для создания и обхода вершин и ребер.
Добавьте вершину для продукта со следующими свойствами:
Value label productидентификатор 68719518371nameKiama classic surfboardprice285.55categorysurfboards:> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')Important
Не забывайте
:>префикс. Префикс THis требуется для удаленного выполнения команды.Добавьте еще одну вершину продукта с этими свойствами:
Value label productидентификатор 68719518403nameMontau Turtle Surfboardprice600categorysurfboards:> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')Создайте ребро с именем
replaces, чтобы определить связь между двумя продуктами.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))Подсчитывать все вершины в графе.
:> g.V().count()Путешествуйте по графу, чтобы найти все вершины, которые заменяют
Kiama classic surfboard.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()Проходит по графу, чтобы найти все вершины, которые
Montau Turtle Surfboardзаменяет.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Очистите ресурсы
Если вам больше не нужен API для учетной записи Gremlin, удалите соответствующую группу ресурсов.
Создайте переменную оболочки для resourceGroupName , если она еще не существует.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"Используется
az group deleteдля удаления группы ресурсов.az group delete \ --name $resourceGroupName
Как мы решили проблему?
Azure Cosmos DB для Apache Gremlin решает нашу проблему, предлагая Gremlin в качестве службы. Благодаря этому предложению вам не требуется создавать собственные экземпляры серверов Gremlin или управлять собственной инфраструктурой. Еще больше вы можете масштабировать решение по мере роста потребностей.
Чтобы подключиться к учетной записи API для Gremlin, вы использовали tinkerpop/gremlin-console образ контейнера для запуска Gremlin-консоли таким образом, чтобы не требовалась локальная установка. Затем вы использовали конфигурацию, хранящуюся в файле remote-secure.yaml, для подключения из запущенного контейнера к API с использованием учетной записи Gremlin. После этого вы выполнили несколько распространенных команд Gremlin.