Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Zoekt u een databaseoplossing voor grootschalige scenario's met een 99.999% SLA (Availability Service Level Agreement), directe automatische schaalaanpassing en automatische failover in meerdere regio's? Overweeg Azure Cosmos DB voor NoSQL.
Wilt u een OLAP-graaf (Online Analytical Processing) implementeren of een bestaande Apache Gremlin-toepassing migreren? Overweeg Graph in Microsoft Fabric.
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 eenvoudige manier om aan de slag te gaan met Gremlin, met een service die in staat is om te groeien en uit te breiden naar behoefte, met minimaal beheer noodzakelijk.
In deze quickstart gebruikt u de Gremlin-console om verbinding te maken met een zojuist gemaakte Azure Cosmos DB voor Gremlin-account.
Prerequisites
- Een Azure-account met een actief abonnement.
- Geen Azure-abonnement? Meld u aan voor een gratis Azure-account.
-
Docker-host
- Hebt u Docker niet geïnstalleerd? Probeer deze quickstart in GitHub Codespaces.
- Azure-opdrachtregelinterface (CLI)
Azure Cloud Shell
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 te starten:
| Option | Voorbeeld/Link |
|---|---|
| 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 op Windows en Linux de toetsencombinatie Ctrl+Shift+V in te drukken, of op macOS de toetsencombinatie Cmd+Shift+V te gebruiken.
Selecteer Enter om de code of opdracht uit te voeren.
Een API maken voor een Gremlin-account en relevante resources
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 createmaakt u een nieuwe resourcegroep in uw abonnement.az group create \ --name $resourceGroupName \ --location $locationHiermee
az cosmosdb createmaakt 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 trueOpmerking
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 dit commando de korting van de gratis laag niet kan toepassen, betekent dit dat er al een ander account in het abonnement is voorzien van de gratis laag.
Haal de API voor Gremlin-eindpunt NAAM 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 . Je gebruikt deze inloggegevens later.
Maak een database met de naam
cosmicworksmet behulp vanaz 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 grafiekproductseen naam en stel vervolgens de doorvoer400in 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
De Gremlin-console starten en configureren met docker
Voor de Gremlin Console gebruikt deze quickstart de tinkerpop/gremlin-console container image van Docker Hub. Deze afbeelding waarborgt 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.4versie van detinkerpop/gremlin-consolecontainerafbeelding op.docker pull tinkerpop/gremlin-console:3.4Maak 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 } }Opmerking
Vervang de
<account-name>en<account-key>placeholders met 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 een Docker-containerafbeelding 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.4Maak 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
Hoekpunten en randen maken en doorlopen
Nu de console is verbonden met het account, kunt u de standaard Gremlin-syntaxis gebruiken om zowel hoekpunten als randen te maken en te doorlopen.
Voeg een hoekpunt toe voor een product met de volgende eigenschappen:
Value etiket productID 68719518371nameKiama classic surfboardprice285.55categorysurfboards:> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')Important
Vergeet het
:>voorvoegsel niet. THis-voorvoegsel is vereist om de opdracht op afstand uit te voeren.Voeg nog een productvertex toe met deze eigenschappen:
Value etiket productID 68719518403nameMontau Turtle Surfboardprice600categorysurfboards:> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')Maak een rand met de naam
replacesom 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 graaf om alle hoekpunten te vinden die de
Kiama classic surfboardvervangen.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()Doorloop de graaf om alle hoekpunten te vinden die door
Montau Turtle Surfboardworden vervangen.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
De hulpbronnen opschonen
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 deleteom de resource groep te verwijderen.az group delete \ --name $resourceGroupName
Hoe hebben we het probleem opgelost?
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 lopende container met de API voor het Gremlin-account. Van daaruit hebt u meerdere algemene Gremlin-opdrachten uitgevoerd.