التشغيل السريع: اجتياز الذروات والحواف باستخدام وحدة تحكم Gremlin وAzure Cosmos DB ل Apache Gremlin
ينطبق على: العفريت
Azure Cosmos DB ل Apache Gremlin هي خدمة قاعدة بيانات رسم بياني مدارة بالكامل تنفذ إطار عمل حوسبة الرسم البياني الشائع Apache Tinkerpop
باستخدام لغة استعلام Gremlin. تمنحك واجهة برمجة التطبيقات ل Gremlin طريقة منخفضة الاحتكاك للبدء في استخدام Gremlin مع خدمة يمكن أن تنمو وتتوسع بقدر ما تحتاج مع الحد الأدنى من الإدارة.
في هذا التشغيل السريع، يمكنك استخدام وحدة تحكم Gremlin للاتصال ب Azure Cosmos DB تم إنشاؤه حديثا لحساب Gremlin.
- حساب Azure مع اشتراك نشط.
- لا يوجد اشتراك في Azure؟ التسجيل للحصول على حساب Azure مجاني.
- ألا تريد اشتراك Azure؟ يمكنك تجربة Azure Cosmos DB مجانا دون الحاجة إلى اشتراك.
- مضيف Docker
- ألم يتم تثبيت Docker؟ جرب هذا التشغيل السريع في GitHub Codespaces.
- واجهة سطر أوامر Azure (CLI)
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
خيار | مثال/ رابط |
---|---|
انقر فوق جربه في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد جربه لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. | ![]() |
انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. | ![]() |
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. | ![]() |
لاستخدام Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.
ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
حدد Enter لتشغيل التعليمات البرمجية أو الأمر.
يجب إنشاء واجهة برمجة التطبيقات لحساب Gremlin قبل استخدام وحدة تحكم Gremlin. بالإضافة إلى ذلك، فإنه يساعد أيضا على وجود قاعدة البيانات والرسم البياني في مكانها.
قم بإنشاء متغيرات shell لـ accountName وresourceGroupNameوالموقع.
# 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"
إذا لم تكن قد قمت بالفعل، فسجل الدخول إلى Azure CLI باستخدام
az login
.استخدم
az group create
لإنشاء مجموعة موارد جديدة في اشتراكك.az group create \ --name $resourceGroupName \ --location $location
استخدم
az cosmosdb create
لإنشاء واجهة برمجة تطبيقات جديدة لحساب Gremlin مع الإعدادات الافتراضية.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier true
ملاحظة
يمكنك الحصول على حساب طبقةAzure Cosmos DB مجانية واحدة لكل اشتراك Azure ويجب عليك الاشتراك عند إنشاء الحساب. إذا فشل هذا الأمر في تطبيق خصم المستوى المجاني، فهذا يعني أنه تم تمكين حساب آخر في الاشتراك بالفعل مع المستوى المجاني.
احصل على واجهة برمجة التطبيقات ل Gremlin endpoint NAME للحساب باستخدام
az cosmosdb show
.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"
ابحث عن المفتاح من قائمة مفاتيح الحساب باستخدام
az-cosmosdb-keys-list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"
سجل قيم NAME وKEY. يمكنك استخدام بيانات الاعتماد هذه لاحقا.
إنشاء قاعدة بيانات باسم
cosmicworks
باستخدامaz cosmosdb gremlin database create
.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"
إنشاء رسم بياني باستخدام
az cosmosdb gremlin graph create
. قم بتسمية الرسم البيانيproducts
، ثم قم بتعيين معدل النقل إلى400
، وأخيرا قم بتعيين مسار مفتاح القسم إلى/category
.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
بالنسبة لوحدة تحكم gremlin، يستخدم هذا التشغيل السريع صورة الحاوية tinkerpop/gremlin-console
من Docker Hub. تضمن هذه الصورة أنك تستخدم الإصدار المناسب من وحدة التحكم (3.4
) للاتصال بواجهة برمجة التطبيقات ل Gremlin. بمجرد تشغيل وحدة التحكم، اتصل من مضيف Docker المحلي إلى واجهة برمجة التطبيقات البعيدة لحساب Gremlin.
3.4
اسحب إصدار صورة الحاويةtinkerpop/gremlin-console
.docker pull tinkerpop/gremlin-console:3.4
إنشاء مجلد عمل فارغ. في المجلد الفارغ، قم بإنشاء ملف remote-secure.yaml . أضف تكوين 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 } }
ملاحظة
استبدل العناصر النائبة
<account-name>
و<account-key>
بقيم NAME وKEY التي تم الحصول عليها سابقا في هذا التشغيل السريع.افتح محطة طرفية جديدة في سياق مجلد العمل الذي يتضمن ملف remote-secure.yaml .
تشغيل صورة حاوية Docker في الوضع التفاعلي (
--interactive --tty
). تأكد من تحميل مجلد العمل الحالي إلى/opt/gremlin-console/conf/
المسار داخل الحاوية.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
داخل حاوية وحدة تحكم Gremlin، اتصل بحساب (API for Gremlin) البعيد باستخدام ملف التكوين remote-secure.yaml .
:remote connect tinkerpop.server conf/remote-secure.yaml
الآن بعد أن تم توصيل وحدة التحكم بالحساب، استخدم بناء جملة Gremlin القياسي لإنشاء كل من القمم والحواف واجتيازها.
أضف ذروة لمنتج بالخصائص التالية:
القيمة تسميه product
معرف 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')
هام
لا تضج البادئة
:>
. بادئة THis مطلوبة لتشغيل الأمر عن بعد.أضف ذروة منتج آخر باستخدام هذه الخصائص:
القيمة تسميه product
معرف 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')
إنشاء حافة باسم
replaces
لتعريف علاقة بين المنتجين.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
حساب جميع الرؤوس داخل الرسم البياني.
:> g.V().count()
اجتياز الرسم البياني للعثور على جميع الرؤوس التي تحل محل
Kiama classic surfboard
.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
اجتياز الرسم البياني للعثور على جميع الذروات التي
Montau Turtle Surfboard
تحل محلها.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
عندما لم تعد بحاجة إلى واجهة برمجة التطبيقات لحساب Gremlin، احذف مجموعة الموارد المقابلة.
إنشاء متغير shell ل resourceGroupName إذا لم يكن موجودا بالفعل.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"
استخدم
az group delete
لحذف مجموعة الموارد.az group delete \ --name $resourceGroupName
حل Azure Cosmos DB ل Apache Gremlin مشكلتنا من خلال تقديم Gremlin كخدمة. مع هذا العرض، لا يطلب منك الوقوف في مثيلات خادم Gremlin الخاصة بك أو إدارة البنية الأساسية الخاصة بك. أكثر من ذلك، يمكنك توسيع نطاق الحل الخاص بك مع نمو احتياجاتك بمرور الوقت.
للاتصال بواجهة برمجة التطبيقات لحساب Gremlin، استخدمت tinkerpop/gremlin-console
صورة الحاوية لتشغيل وحدة تحكم gremlin بطريقة لا تتطلب تثبيتا محليا. ثم استخدمت التكوين المخزن في ملف remote-secure.yaml للاتصال من الحاوية قيد التشغيل واجهة برمجة التطبيقات لحساب Gremlin. من هناك، قمت بتشغيل العديد من أوامر Gremlin الشائعة.