Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Letar du efter en databaslösning för storskaliga scenarier med ett serviceavtal på 99,999% tillgänglighetsnivå (SLA), snabb autoskalning och automatisk redundans i flera regioner? Överväg Azure Cosmos DB för NoSQL.
Vill du implementera ett OLAP-diagram (Online Analytical Processing) eller migrera ett befintligt Apache Gremlin-program? Överväg Graph i Microsoft Fabric.
Azure Cosmos DB för Apache Gremlin är en fullständigt hanterad grafdatabastjänst som implementerar det populära Apache Tinkerpop, ett diagramberäkningsramverk med hjälp av Gremlin-frågespråket. API:et för Gremlin ger dig ett sätt att komma igång med gremlin med en tjänst som kan växa och skalas ut så mycket du behöver med minimal hantering.
I den här snabbstarten använder du Gremlin-konsolen för att ansluta till ett nyligen skapat Azure Cosmos DB för Gremlin-konto.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration.
- Ingen Azure-prenumeration? Registrera dig för ett kostnadsfritt Azure-konto.
 
- 
              Docker-värd
- Har du inte Docker installerat? Prova den här snabbstarten i GitHub Codespaces.
 
- Kommandoradsgränssnitt för Azure (CLI)
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
| Alternativ | Exempel/länk | 
|---|---|
| Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. |   | 
| Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. |   | 
| Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |   | 
Så här använder du Azure Cloud Shell:
- Starta Cloud Shell. 
- Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot. 
- Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS. 
- Välj Retur för att köra koden eller kommandot. 
Skapa ett API för Gremlin-konto och relevanta resurser
API:et för Gremlin-kontot ska skapas innan du använder Gremlin-konsolen. Dessutom hjälper det att även ha databasen och grafen på plats.
- Skapa gränssnittsvariabler för accountName, resourceGroupName och plats. - # 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"
- Om du inte redan har gjort det loggar du in på Azure CLI med . - az login
- Använd - az group createför att skapa en ny resursgrupp i din prenumeration.- az group create \ --name $resourceGroupName \ --location $location
- Använd - az cosmosdb createför att skapa ett nytt API för Gremlin-konto med standardinställningar.- az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier true- Kommentar - Du kan högst ha ett Azure Cosmos DB-konto med kostnadsfri nivå per Azure-prenumeration och du måste välja det när du skapar kontot. Om det här kommandot inte kan tillämpa rabatten på den kostnadsfria nivån innebär det att ett annat konto i prenumerationen redan har aktiverats med den kostnadsfria nivån. 
- Hämta API:et för Gremlin-slutpunktens NAMN för kontot med hjälp av - az cosmosdb show.- az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"
- Hitta nyckeln i listan med nycklar för kontot med - az-cosmosdb-keys-list.- az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"
- Registrera värdena NAME och KEY. Du använder dessa autentiseringsuppgifter senare. 
- Skapa en databas med namnet - cosmicworksmed .- az cosmosdb gremlin database create- az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"
- Skapa en graf med hjälp av - az cosmosdb gremlin graph create. Namnge grafen- productsoch ange sedan dataflödet till- 400och ställ slutligen in partitionsnyckelsökvägen till- /category.- az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Starta och konfigurera Gremlin-konsolen med Docker
För gremlin-konsolen använder den här snabbstarten containeravbildningen tinkerpop/gremlin-console från Docker Hub. Den här avbildningen ser till att du använder rätt version av konsolen (3.4) för anslutning till API:et för Gremlin. När konsolen körs ansluter du från din lokala Docker-värd till fjärr-API:et för Gremlin-kontot.
- 3.4Hämta containeravbildningens- tinkerpop/gremlin-consoleversion.- docker pull tinkerpop/gremlin-console:3.4
- Skapa en tom arbetsmapp. Skapa en remote-secure.yaml-fil i den tomma mappen. Lägg till den här YAML-konfigurationen i filen. - 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 } }- Kommentar - <account-name>Ersätt platshållarna och- <account-key>med värdena NAME och KEY som hämtades tidigare i den här snabbstarten.
- Öppna en ny terminal i kontexten för arbetsmappen som innehåller filen remote-secure.yaml . 
- Kör Docker-containeravbildningen i interaktivt ( - --interactive --tty) läge. Se till att du monterar den aktuella arbetsmappen på- /opt/gremlin-console/conf/sökvägen i containern.- docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
- I Gremlin-konsolcontainern ansluter du till fjärrkontot (API för Gremlin) med hjälp av konfigurationsfilen remote-secure.yaml . - :remote connect tinkerpop.server conf/remote-secure.yaml
Skapa och passera hörn och kanter
Nu när konsolen är ansluten till kontot använder du Gremlin-standardsyntaxen för att skapa och passera både hörn och kanter.
- Lägg till ett hörn för en produkt med följande egenskaper: - Värde - etikett - 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')- Viktigt! - Glöm inte prefixet - :>. THis-prefix krävs för att köra kommandot via fjärranslutning.
- Lägg till ytterligare ett produkthörn med följande egenskaper: - Värde - etikett - 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')
- Skapa en kant med namnet - replacesför att definiera en relation mellan de två produkterna.- :> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
- Räkna alla hörn i diagrammet. - :> g.V().count()
- Bläddra i grafen för att hitta alla hörn som ersätter - Kiama classic surfboard.- :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
- Bläddra i diagrammet för att hitta alla hörn som - Montau Turtle Surfboardersätter.- :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Rensa resurser
När du inte längre behöver API:et för Gremlin-kontot tar du bort motsvarande resursgrupp.
- Skapa en gränssnittsvariabel för resourceGroupName om den inte redan finns. - # Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"
- Använd - az group deleteför att ta bort resursgruppen.- az group delete \ --name $resourceGroupName
Hur löste vi problemet?
Azure Cosmos DB för Apache Gremlin löste vårt problem genom att erbjuda Gremlin som en tjänst. Med det här erbjudandet behöver du inte stå upp för dina egna Gremlin-serverinstanser eller hantera din egen infrastruktur. Ännu mer kan du skala din lösning när dina behov växer över tid.
För att ansluta till API:et för Gremlin-kontot använde du containeravbildningen tinkerpop/gremlin-console för att köra Gremlin-konsolen på ett sätt som inte krävde någon lokal installation. Sedan använde du konfigurationen som lagras i filen remote-secure.yaml för att ansluta från containern som körs api:et för Gremlin-kontot. Därifrån körde du flera vanliga Gremlin-kommandon.