Rychlý start: Procházení vrcholů a hran pomocí konzoly Gremlin a Azure Cosmos DB pro Apache Gremlin

PLATÍ PRO: Gremlin

Azure Cosmos DB pro Apache Gremlin je plně spravovaná databázová služba grafů, která implementuje oblíbenou Apache Tinkerpoparchitekturu grafových výpočtů pomocí dotazovacího jazyka Gremlin. Rozhraní API pro Gremlin poskytuje rychlý způsob, jak začít používat Gremlin se službou, která může růst a škálovat podle potřeby s minimální správou.

V tomto rychlém startu se pomocí konzoly Gremlin připojíte k nově vytvořenému účtu Azure Cosmos DB pro Gremlin.

Požadavky

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Screenshot that shows an example of Try It for Azure Cloud Shell.
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Button to launch Azure Cloud Shell.
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Vytvoření rozhraní API pro účet Gremlin a relevantní prostředky

Rozhraní API pro účet Gremlin by se mělo vytvořit před použitím konzoly Gremlin. Kromě toho pomáhá mít také databázi a graf na místě.

  1. Vytvořte proměnné prostředí pro accountName, resourceGroupName a umístění.

    # 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"
    
  2. Pokud jste to ještě neudělali, přihlaste se k Azure CLI pomocí az login.

  3. Slouží az group create k vytvoření nové skupiny prostředků ve vašem předplatném.

    az group create \
        --name $resourceGroupName \
        --location $location
    
  4. Slouží az cosmosdb create k vytvoření nového rozhraní API pro účet Gremlin s výchozím nastavením.

    az cosmosdb create \
        --resource-group $resourceGroupName \
        --name $accountName \
        --capabilities "EnableGremlin" \
        --locations regionName=$location \
        --enable-free-tier true
    

    Poznámka:

    Pro každé předplatné Azure můžete mít maximálně jeden účet Azure Cosmos DB úrovně Free a při vytváření tohoto účtu se musíte přihlásit. Pokud se tomuto příkazu nepodaří uplatnit slevu na úroveň Free, znamená to, že u úrovně Free už byl povolený jiný účet v předplatném.

  5. Získejte rozhraní API pro název koncového bodu Gremlin pro účet pomocí az cosmosdb show.

    az cosmosdb show \
        --resource-group $resourceGroupName \
        --name $accountName \
        --query "name"
    
  6. Najděte klíč ze seznamu klíčů pro účet pomocí az-cosmosdb-keys-list.

    az cosmosdb keys list \
        --resource-group $resourceGroupName \
        --name $accountName \
        --type "keys" \
        --query "primaryMasterKey"
    
  7. Poznamenejte si hodnoty NAME a KEY . Tyto přihlašovací údaje použijete později.

  8. Vytvořte databázi s názvem cosmicworks using az cosmosdb gremlin database create.

    az cosmosdb gremlin database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name "cosmicworks"
    
  9. Vytvoření grafu pomocí az cosmosdb gremlin graph create. Pojmenujte graf products, nastavte propustnost 400na a nakonec nastavte cestu ke klíči oddílu na /categoryhodnotu .

    az cosmosdb gremlin graph create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --database-name "cosmicworks" \
        --name "products" \
        --partition-key-path "/category" \
        --throughput 400
    

Spuštění a konfigurace konzoly Gremlin pomocí Dockeru

Pro konzolu Gremlin tento rychlý start používá image kontejneru tinkerpop/gremlin-console z Docker Hubu. Tato image zajišťuje, že pro připojení k rozhraní API pro Gremlin používáte odpovídající verzi konzoly (3.4). Po spuštění konzoly se připojte z místního hostitele Dockeru ke vzdálenému rozhraní API pro účet Gremlin.

  1. 3.4 Stáhněte si verzi image kontejnerutinkerpop/gremlin-console.

    docker pull tinkerpop/gremlin-console:3.4
    
  2. Vytvořte prázdnou pracovní složku. V prázdné složce vytvořte soubor remote-secure.yaml . Přidejte do souboru tuto konfiguraci 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
      }
    }
    

    Poznámka:

    <account-name> Nahraďte zástupné <account-key> symboly hodnotami NAME a KEY získanými dříve v tomto rychlém startu.

  3. Otevřete nový terminál v kontextu pracovní složky, která obsahuje soubor remote-secure.yaml .

  4. Spusťte image kontejneru Dockeru v interaktivním--interactive --tty () režimu. Ujistěte se, že aktuální pracovní složku připojíte k /opt/gremlin-console/conf/ cestě v kontejneru.

    docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
    
  5. V kontejneru konzoly Gremlin se připojte ke vzdálenému účtu (API pro Gremlin) pomocí konfiguračního souboru remote-secure.yaml .

    :remote connect tinkerpop.server conf/remote-secure.yaml
    

Vytváření a procházení vrcholů a hran

Teď, když je konzola připojená k účtu, použijte standardní syntaxi Gremlin k vytvoření a procházení vrcholů i hran.

  1. Přidejte vrchol pro produkt s následujícími vlastnostmi:

    Hodnota
    Popisek 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')
    

    Důležité

    Nezamlžujte předponu :> . Předpona THis je nutná ke vzdálenému spuštění příkazu.

  2. Přidejte další vrchol produktu s těmito vlastnostmi:

    Hodnota
    Popisek 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')
    
  3. Vytvořte hranu s názvem replaces , která definuje vztah mezi těmito dvěma produkty.

    :> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
    
  4. Spočítejte všechny vrcholy v grafu.

    :> g.V().count()
    
  5. Projděte graf a vyhledejte všechny vrcholy, které nahradí Kiama classic surfboard.

    :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
    
  6. Projděte graf a vyhledejte všechny vrcholy, které Montau Turtle Surfboard nahradí.

    :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
    

Vyčištění prostředků

Pokud už rozhraní API pro účet Gremlin nepotřebujete, odstraňte odpovídající skupinu prostředků.

  1. Vytvořte proměnnou prostředí pro resourceGroupName , pokud ještě neexistuje.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos-gremlin-quickstart"
    
  2. Slouží az group delete k odstranění skupiny prostředků.

    az group delete \
        --name $resourceGroupName
    

Jak jsme tento problém vyřešili?

Azure Cosmos DB pro Apache Gremlin vyřešila náš problém tím, že nabízí Gremlin jako službu. Díky této nabídce nemusíte vystát vlastní instance serveru Gremlin ani spravovat vlastní infrastrukturu. Ještě více můžete škálovat své řešení podle svých potřeb v průběhu času.

Pokud se chcete připojit k účtu Rozhraní API pro Gremlin, použili tinkerpop/gremlin-console jste image kontejneru ke spuštění konzoly Gremlin způsobem, který nevyžaduje místní instalaci. Pak jste použili konfiguraci uloženou v souboru remote-secure.yaml k připojení ze spuštěného kontejneru, který používá účet API pro Gremlin. Odtud jste spustili několik běžných příkazů Gremlin.

Další krok