Rychlý start: Procházení vrcholů a hran pomocí konzoly Gremlin a Azure Cosmos DB pro Apache Gremlin
PLATÍ PRO: Skřítek
Azure Cosmos DB pro Apache Gremlin je plně spravovaná databázová služba grafů, která implementuje oblíbenou Apache Tinkerpop
architekturu 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
- Účet Azure s aktivním předplatným.
- Žádné předplatné Azure? Zaregistrujte si bezplatný účet Azure.
- Nechcete předplatné Azure? Službu Azure Cosmos DB můžete vyzkoušet zdarma bez nutnosti předplatného.
- Hostitel Dockeru
- Nemáte nainstalovaný Docker? Vyzkoušejte tento rychlý start v GitHub Codespaces.
- Rozhraní příkazového řádku Azure (CLI)
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. | |
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. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
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.
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ě.
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"
Pokud jste to ještě neudělali, přihlaste se k Azure CLI pomocí
az login
.Slouží
az group create
k vytvoření nové skupiny prostředků ve vašem předplatném.az group create \ --name $resourceGroupName \ --location $location
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.
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"
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"
Poznamenejte si hodnoty NAME a KEY . Tyto přihlašovací údaje použijete později.
Vytvořte databázi s názvem
cosmicworks
usingaz cosmosdb gremlin database create
.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"
Vytvoření grafu pomocí
az cosmosdb gremlin graph create
. Pojmenujte grafproducts
, nastavte propustnost400
na a nakonec nastavte cestu ke klíči oddílu na/category
hodnotu .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.
3.4
Stáhněte si verzi image kontejnerutinkerpop/gremlin-console
.docker pull tinkerpop/gremlin-console:3.4
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.Otevřete nový terminál v kontextu pracovní složky, která obsahuje soubor remote-secure.yaml .
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
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.
Přidejte vrchol pro produkt s následujícími vlastnostmi:
Hodnota označit 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.Přidejte další vrchol produktu s těmito vlastnostmi:
Hodnota označit 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')
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']))
Spočítejte všechny vrcholy v grafu.
:> g.V().count()
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()
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ů.
Vytvořte proměnnou prostředí pro resourceGroupName , pokud ještě neexistuje.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"
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.