Quickstart: Hoekpunten en randen doorlopen met de Gremlin-console en Azure Cosmos DB voor Apache Gremlin
VAN TOEPASSING OP: Gremlin
Azure Cosmos DB voor Apache Gremlin is een volledig beheerde graafdatabaseservice die het populaire Apache Tinkerpop
, een graafcomputingframework implementeert met behulp van de Gremlin-querytaal. De API voor Gremlin biedt u een lage wrijving manier om aan de slag te gaan met Gremlin met een service die zo veel mogelijk kan groeien en uitschalen als u nodig hebt met minimaal beheer.
In deze quickstart gebruikt u de Gremlin-console om verbinding te maken met een zojuist gemaakte Azure Cosmos DB voor Gremlin-account.
- Een Azure-account met een actief abonnement.
- Geen Azure-abonnement? Meld u aan voor een gratis Azure-account.
- Wilt u geen Azure-abonnement? U kunt Azure Cosmos DB gratis proberen zonder dat u een abonnement nodig hebt.
- Docker-host
- Hebt u Docker niet geïnstalleerd? Probeer deze quickstart in GitHub Codespaces.
- Azure-opdrachtregelinterface (CLI)
Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.
Om Azure Cloud Shell op te starten:
Optie | Voorbeeld/koppeling |
---|---|
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. | |
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. | |
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. |
Azure Cloud Shell gebruiken:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.
Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.
Selecteer Enter om de code of opdracht uit te voeren.
De API voor het Gremlin-account moet worden gemaakt voordat u de Gremlin-console gebruikt. Daarnaast helpt het ook om de database en grafiek op hun plaats te krijgen.
Maak shell-variabelen voor accountName, resourceGroupName en locatie.
# 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"
Als u dat nog niet hebt gedaan, meldt u zich aan bij de Azure CLI met behulp van
az login
.Hiermee
az group create
maakt u een nieuwe resourcegroep in uw abonnement.az group create \ --name $resourceGroupName \ --location $location
Hiermee
az cosmosdb create
maakt u een nieuwe API voor een Gremlin-account met standaardinstellingen.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier true
Notitie
U kunt per Azure-abonnement maximaal één gratis laag voor het Azure Cosmos DB-account hebben, en u moet zich aanmelden wanneer u het account maakt. Als deze opdracht de korting op de gratis laag niet kan toepassen, betekent dit dat er al een ander account in het abonnement is ingeschakeld met de gratis laag.
Haal de API voor Gremlin-eindpuntNAAM op voor het account met behulp van
az cosmosdb show
.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"
Zoek de SLEUTEL in de lijst met sleutels voor het account met
az-cosmosdb-keys-list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"
Noteer de waarden NAME en KEY . U gebruikt deze referenties later.
Maak een database met de naam
cosmicworks
.az cosmosdb gremlin database create
az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"
Een grafiek maken met behulp van
az cosmosdb gremlin graph create
. Geef de grafiekproducts
een naam en stel vervolgens de doorvoer400
in op en stel ten slotte het pad naar de partitiesleutel in op/category
.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Voor de Gremlin-console gebruikt deze quickstart de tinkerpop/gremlin-console
containerinstallatiekopieën van Docker Hub. Deze installatiekopieën zorgen ervoor dat u de juiste versie van de console (3.4
) gebruikt voor verbinding met de API voor Gremlin. Zodra de console wordt uitgevoerd, maakt u vanaf uw lokale Docker-host verbinding met de externe API voor het Gremlin-account.
Haal de
3.4
versie van detinkerpop/gremlin-console
containerinstallatiekopie op.docker pull tinkerpop/gremlin-console:3.4
Maak een lege werkmap. Maak in de lege map een remote-secure.yaml-bestand . Voeg deze YAML-configuratie toe aan het bestand.
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 } }
Notitie
Vervang de
<account-name>
tijdelijke aanduidingen door<account-key>
de waarden NAME en KEY die u eerder in deze quickstart hebt verkregen.Open een nieuwe terminal in de context van uw werkmap met het bestand remote-secure.yaml .
Voer de Docker-containerinstallatiekopieën uit in de interactieve modus (
--interactive --tty
). Zorg ervoor dat u de huidige werkmap koppelt aan het/opt/gremlin-console/conf/
pad in de container.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
Maak in de Gremlin-consolecontainer verbinding met het externe account (API voor Gremlin) met behulp van het remote-secure.yaml-configuratiebestand .
:remote connect tinkerpop.server conf/remote-secure.yaml
Nu de console is verbonden met het account, gebruikt u de standaard Gremlin-syntaxis om zowel hoekpunten als randen te maken en te doorlopen.
Voeg een hoekpunt toe voor een product met de volgende eigenschappen:
Waarde etiket product
id 68719518371
name
Kiama classic surfboard
price
285.55
category
surfboards
:> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')
Belangrijk
Mist het
:>
voorvoegsel niet. THis-voorvoegsel is vereist om de opdracht op afstand uit te voeren.Voeg nog een productpunt toe met deze eigenschappen:
Waarde etiket product
id 68719518403
name
Montau Turtle Surfboard
price
600
category
surfboards
:> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')
Maak een rand met de naam
replaces
om een relatie tussen de twee producten te definiëren.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
Tel alle hoekpunten in de grafiek.
:> g.V().count()
Doorkruis de grafiek om alle hoekpunten te vinden die de
Kiama classic surfboard
.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
Ga door de grafiek om alle hoekpunten te vinden die
Montau Turtle Surfboard
worden vervangen.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Wanneer u de API voor het Gremlin-account niet meer nodig hebt, verwijdert u de bijbehorende resourcegroep.
Maak een shellvariabele voor resourceGroupName als deze nog niet bestaat.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"
Gebruik
az group delete
dit om de resourcegroep te verwijderen.az group delete \ --name $resourceGroupName
Azure Cosmos DB voor Apache Gremlin heeft ons probleem opgelost door Gremlin als een service aan te bieden. Met deze aanbieding hoeft u niet uw eigen Gremlin-serverexemplaren op te stellen of uw eigen infrastructuur te beheren. Nog meer kunt u uw oplossing schalen naarmate uw behoeften na verloop van tijd toenemen.
Als u verbinding wilt maken met de API voor het Gremlin-account, hebt u de tinkerpop/gremlin-console
containerinstallatiekopieën gebruikt om de gremlin-console uit te voeren op een manier waarvoor geen lokale installatie is vereist. Vervolgens hebt u de configuratie gebruikt die is opgeslagen in het bestand remote-secure.yaml om verbinding te maken vanuit de actieve container voor het Gremlin-account. Van daaruit hebt u meerdere algemene Gremlin-opdrachten uitgevoerd.