Hızlı Başlangıç: Gremlin konsolu ve Apache Gremlin için Azure Cosmos DB ile köşeleri ve kenarları dolaşma
ŞUNLAR IÇIN GEÇERLIDIR: Gremlin
Apache Gremlin için Azure Cosmos DB, Gremlin sorgu dilini kullanan popüler Apache Tinkerpop
bir graf bilgi işlem çerçevesi uygulayan tam olarak yönetilen bir graf veritabanı hizmetidir. Gremlin API'si, minimum yönetimle gremlin'i istediğiniz kadar büyüyebilen ve ölçeği genişletebilen bir hizmetle kullanmaya başlamanız için düşük uyuşmalı bir yol sunar.
Bu hızlı başlangıçta Gremlin konsolunu kullanarak yeni oluşturulan gremlin için Azure Cosmos DB hesabına bağlanacaksınız.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı.
- Azure aboneliği yok mu? Ücretsiz bir Azure hesabına kaydolun.
- Azure aboneliği istemiyor musunuz? Abonelik gerektirmeden Azure Cosmos DB'i ücretsiz deneyebilirsiniz.
- Docker konağı
- Azure Komut Satırı Arabirimi (CLI)
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
Seçenek | Örnek/Bağlantı |
---|---|
Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. | |
https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. | |
Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Windows ve Linux'ta Ctrl+Shift V'yi seçerek veya macOS üzerinde Cmd+Shift++V'yi seçerek kodu veya komutu Cloud Shell oturumuna yapıştırın.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
Gremlin hesabı ve ilgili kaynaklar için API oluşturma
Gremlin hesabı api'sinin Gremlin konsolunu kullanmadan önce oluşturulması gerekir. Ayrıca, veritabanının ve grafiğin yerinde olması da yardımcı olur.
accountName, resourceGroupName ve location için kabuk değişkenleri oluşturun.
# 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"
Henüz yapmadıysanız kullanarak
az login
Azure CLI'da oturum açın.Aboneliğinizde yeni bir kaynak grubu oluşturmak için kullanın
az group create
.az group create \ --name $resourceGroupName \ --location $location
Varsayılan ayarlarla Gremlin hesabı için yeni bir API oluşturmak için kullanın
az cosmosdb create
.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier true
Not
Azure aboneliği başına bir ücretsiz katman Azure Cosmos DB hesabına sahip olabilirsiniz. Bunu hesabı oluştururken kabul etmeniz gerekir. Bu komut ücretsiz katman indirimini uygulayamazsa, bu abonelikteki başka bir hesabın ücretsiz katmanla zaten etkinleştirildiği anlamına gelir.
kullanarak
az cosmosdb show
hesabın Gremlin uç nokta ADı API'sini alın.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"
ile hesabın
az-cosmosdb-keys-list
anahtar listesinden KEY değerini bulun.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"
AD ve ANAHTAR değerlerini kaydedin. Bu kimlik bilgilerini daha sonra kullanacaksınız.
kullanarak
az cosmosdb gremlin database create
adlıcosmicworks
bir veritabanı oluşturun.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"
kullanarak
az cosmosdb gremlin graph create
bir grafik oluşturun. Grafıproducts
adlandırın, ardından aktarım hızını olarak400
ayarlayın ve son olarak bölüm anahtarı yolunu olarak/category
ayarlayın.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Docker kullanarak Gremlin konsolunu başlatma ve yapılandırma
Gremlin konsolu için bu hızlı başlangıçta Docker Hub'daki tinkerpop/gremlin-console
kapsayıcı görüntüsü kullanılır. Bu görüntü, Gremlin API'siyle bağlantı için konsolun (3.4
) uygun sürümünü kullanmanızı sağlar. Konsol çalıştırıldıktan sonra yerel Docker ana bilgisayarınızdan Gremlin hesabı için uzak API'ye bağlanın.
3.4
Kapsayıcı görüntüsününtinkerpop/gremlin-console
sürümünü çekin.docker pull tinkerpop/gremlin-console:3.4
Boş bir çalışma klasörü oluşturun. Boş klasörde remote-secure.yaml dosyası oluşturun. Bu YAML yapılandırmasını dosyaya ekleyin.
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 } }
Not
<account-name>
ve<account-key>
yer tutucularını bu hızlı başlangıçta daha önce elde edilen AD ve ANAHTAR değerleriyle değiştirin.remote-secure.yaml dosyasını içeren çalışma klasörünüz bağlamında yeni bir terminal açın.
Docker kapsayıcı görüntüsünü etkileşimli (
--interactive --tty
) modda çalıştırın. Geçerli çalışma klasörünü kapsayıcı içindeki yola bağladığınızdan/opt/gremlin-console/conf/
emin olun.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
Gremlin konsol kapsayıcısının içinde remote-secure.yaml yapılandırma dosyasını kullanarak uzak (Gremlin için API) hesabına bağlanın.
:remote connect tinkerpop.server conf/remote-secure.yaml
Köşeler ve kenarlar oluşturma ve çapraz geçiş yapma
Konsol hesaba bağlı olduğuna göre, hem köşeleri hem de kenarları oluşturmak ve çapraz geçiş yapmak için standart Gremlin söz dizimini kullanın.
Aşağıdaki özelliklere sahip bir ürün için köşe ekleyin:
Değer 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')
Önemli
Ön ekini sisli
:>
yapma. Komutu uzaktan çalıştırmak için THis ön eki gereklidir.Şu özelliklere sahip başka bir ürün köşesi ekleyin:
Değer 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')
İki ürün arasındaki ilişkiyi tanımlamak için adlı
replaces
bir kenar oluşturun.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
Grafikteki tüm köşeleri sayma.
:> g.V().count()
öğesinin yerini alan tüm köşeleri bulmak için grafta
Kiama classic surfboard
geçiş yapma.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
Yerini alan tüm köşeleri
Montau Turtle Surfboard
bulmak için grafta geçiş yapma.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Kaynakları temizleme
Gremlin hesabı için API'ye artık ihtiyacınız kalmadığında ilgili kaynak grubunu silin.
Henüz yoksa resourceGroupName için bir kabuk değişkeni oluşturun.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"
Kaynak grubunu silmek için kullanın
az group delete
.az group delete \ --name $resourceGroupName
Sorunu nasıl çözdük?
Apache Gremlin için Azure Cosmos DB, Gremlin'i hizmet olarak sunarak sorunumuzu çözdü. Bu teklifle kendi Gremlin sunucu örneklerinizi oluşturmanız veya kendi altyapınızı yönetmeniz gerekmez. Daha da fazlası, zaman içinde gereksinimleriniz arttıkça çözümünüzü ölçeklendikleyebilirsiniz.
Gremlin hesabına yönelik API'ye bağlanmak için kapsayıcı görüntüsünü kullanarak tinkerpop/gremlin-console
gremlin konsolunu yerel yükleme gerektirmeyen bir şekilde çalıştırdınız. Ardından, çalışan kapsayıcıdan Gremlin hesabı için API'ye bağlanmak için remote-secure.yaml dosyasında depolanan yapılandırmayı kullandınız. Buradan birden çok yaygın Gremlin komutu çalıştırmıştınız.