ما هو Azure Cosmos DB ل Apache Gremlin؟

ينطبق على: العفريت

Azure Cosmos DB هي NoSQL مدارة بالكامل وقاعدة بيانات ارتباطية لتطوير التطبيقات الحديثة.

Azure Cosmos DB ل Apache Gremlin هي خدمة قاعدة بيانات الرسم البياني التي يمكن استخدامها لتخزين الرسوم البيانية الضخمة مع مليارات الذروات والحواف. يمكنك الاستعلام عن الرسوم البيانية مع زمن وصول ميلي ثانية وتطوير بنية الرسم البياني بسهولة. تم إنشاء واجهة برمجة التطبيقات ل Gremlin استنادا إلى Apache TinkerPop، وهو إطار عمل حوسبة الرسم البياني الذي يستخدم لغة استعلام Gremlin.

هام

Azure Cosmos DB محرك الرسم البياني يتبع عن كثب مواصفات Apache TinkerPop. ومع ذلك، هناك بعض الاختلافات في تفاصيل التنفيذ التي هي محددة لـ Azure Cosmos DB. بعض الميزات التي يدعمها اباتشي TinkerPop غير متوفرة في Azure كوزموس DB، لمعرفة المزيد عن الميزات غير معتمد، انظر التوافق مع مقالة Apache TinkerPop.

تجمع واجهة برمجة التطبيقات ل Gremlin بين قوة خوارزميات قاعدة بيانات الرسم البياني والبنية الأساسية المدارة بدرجة كبيرة. يوفر هذا النهج حلا فريدا ومرنا لمشاكل البيانات الشائعة المرتبطة بالقيود الارتباطية أو غير المرنة.

تلميح

هل تريد تجربة واجهة برمجة التطبيقات ل Gremlin دون التزام؟ إنشاء حساب Azure Cosmos DB باستخدام تجربة Azure Cosmos DB مجانا.

واجهة برمجة التطبيقات لفوائد Gremlin

أضافت واجهة برمجة التطبيقات ل Gremlin فوائد البناء على Azure Cosmos DB:

  • معدل النقل والتخزين القابل للتطوير بمرونة: تحتاج الرسوم البيانية في العالم الحقيقي إلى توسيع نطاقها إلى ما هو أبعد من سعة خادم واحد. يدعم Azure Cosmos DB قواعد بيانات الرسم البياني القابلة للتطوير أفقيا التي يمكن أن يكون لها حجم غير محدود من حيث التخزين ومعدل النقل المقدم. مع نمو مقياس قاعدة بيانات الرسم البياني، يتم توزيع البيانات تلقائيا باستخدام تقسيم الرسم البياني.

  • النسخ المتماثل متعدد المناطق: يمكن ل Azure Cosmos DB نسخ بيانات الرسم البياني تلقائيا إلى أي منطقة Azure في جميع أنحاء العالم. النسخ المتماثل العمومية يبسط تطوير التطبيقات التي تتطلب الوصول العمومي إلى البيانات. بالإضافة إلى تقليل زمن انتقال القراءة والكتابة في أي مكان حول العالم، يوفر Azure Cosmos DB آلية تجاوز الفشل الإقليمية المدارة بواسطة الخدمة. يمكن أن تضمن هذه الآلية استمرارية التطبيق الخاص بك في حالة نادرة من انقطاع الخدمة في منطقة ما.

  • الاستعلامات السريعة والاجتيازات مع معيار استعلام الرسم البياني الأكثر استخداما: تخزين الذروات والحواف غير المتجانسة والاستعلام عنها من خلال بناء جملة Gremlin مألوف. Gremlin هي لغة أمر واستعلام الوظيفية التي توفر واجهة غنية لتنفيذ خوارزميات الرسم البياني المشترك. تتيح واجهة برمجة التطبيقات ل Gremlin الاستعلامات الغنية في الوقت الحقيقي والاجتيازات دون الحاجة إلى تحديد تلميحات المخطط أو الفهارس الثانوية أو طرق العرض. لمزيد من المعلومات، راجع الرسوم البيانية للاستعلام باستخدام Gremlin.

  • قاعدة بيانات الرسم البياني المدارة بالكامل: يلغي Azure Cosmos DB الحاجة إلى إدارة قاعدة البيانات وموارد الجهاز. معظم منصات قاعدة بيانات الرسم البياني الموجودة ملزمة بالقيود المفروضة على بنيتها التحتية وغالباً ما تتطلب درجة عالية من الصيانة لضمان تشغيلها. كخدمة مدارة بالكامل ، يزيل Cosmos DB الحاجة إلى إدارة الأجهزة الافتراضية، أو تحديث برنامج وقت التشغيل، أو إدارة القطع أو النسخ المتماثل، أو التعامل مع ترقيات معقدة على مستوى البيانات. يتم تلقائياً دعم كل رسم بياني وحمايته من الإخفاقات الإقليمية. تسمح هذه الإدارة للمطورين بالتركيز على تقديم قيمة التطبيق بدلا من تشغيل قواعد بيانات الرسم البياني الخاصة بهم وإدارتها.

  • الفهرسة التلقائية: بشكل افتراضي، تقوم واجهة برمجة التطبيقات ل Gremlin تلقائيا بفهرسة جميع الخصائص داخل العقد (تسمى أيضا باسم الذروات) والحواف في الرسم البياني ولا تتوقع أو تتطلب أي مخطط أو إنشاء فهارس ثانوية. لمزيد من المعلومات، راجع الفهرسة في Azure Cosmos DB.

  • التوافق مع Apache TinkerPop: تدعم واجهة برمجة التطبيقات ل Gremlin معيار Apache TinkerPop مفتوح المصدر. يحتوي معيار Apache TinkerPop على نظام بيئي وافر من التطبيقات والمكتبات التي يمكن دمجها بسهولة مع واجهة برمجة التطبيقات.

  • مستويات التناسق القابلة للضبط: يوفر Azure Cosmos DB خمسة مستويات تناسق محددة جيدا لتحقيق المفاضلة الصحيحة بين التناسق والأداء للتطبيق الخاص بك. بالنسبة للاستعلامات وعمليات القراءة، يقدم Azure Cosmos DB خمسة مستويات تناسق مميزة: قوية، ومحدودة، وجلسة، وبادئة متسقة، وفي النهاية. تسمح لك مستويات التناسق الدقيقة والمحددة جيداً بإجراء مقايضات سليمة بين التناسق والتوافر والتكان. لمزيد من المعلومات، راجع مستويات تناسق البيانات القابلة للضبط في Azure Cosmos DB.

السيناريوهات الشائعة لواجهة برمجة التطبيقات ل Gremlin

فيما يلي بعض السيناريوهات حيث يمكن أن يكون دعم الرسم البياني لـ Azure Cosmos DB مفيدا:

  • الشبكات الاجتماعية/العميل 365: من خلال الجمع بين البيانات حول عملائك وتفاعلاتهم مع أشخاص آخرين، يمكنك تطوير تجارب مخصصة، أو التنبؤ بسلوك العملاء، أو ربط الأشخاص مع الآخرين ذوي الاهتمامات المماثلة. يمكن استخدام Azure Cosmos DB لإدارة الشبكات الاجتماعية وتتبع تفضيلات العملاء وبياناتهم.

  • محركات التوصية: يستخدم هذا السيناريو بشكل شائع في صناعة البيع بالتجزئة. من خلال دمج معلومات حول المنتجات والمستخدمين وتفاعلات المستخدم، مثل شراء عنصر أو استعراضه أو تقييمه، يمكنك إنشاء توصيات مخصصة. الكمون المنخفض، مقياس مرن، ودعم الرسم البياني الأصلي من Azure Cosmos DB مثالية لهذه السيناريوهات.

  • الجيوفضائي: تحتاج العديد من التطبيقات في الاتصالات السلكية واللاسلكية والخدمات اللوجستية وتخطيط السفر إلى العثور على موقع اهتمام داخل منطقة ما أو تحديد أقصر/أفضل طريق بين موقعين. Azure Cosmos DB هو مناسبة طبيعية لهذه المشكلات.

  • إنترنت الأشياء: باستخدام الشبكة والاتصالات بين أجهزة IoT التي تم تصميمها كرسم بياني، يمكنك بناء فهم أفضل لحالة أجهزتك وأصولك. يمكنك أيضاً معرفة كيف يمكن أن تؤثر التغييرات في جزء واحد من الشبكة على جزء آخر.

مقدمة لقواعد بيانات الرسم البياني

البيانات كما تظهر في العالم الحقيقي متصلة بشكل طبيعي. تركز نمذجة البيانات التقليدية على تعريف الكيانات بشكل منفصل وحساب علاقاتها في وقت التشغيل. في حين أن هذا النموذج له مزاياه ، يمكن أن تكون البيانات المتصلة للغاية صعبة الإدارة في ظل قيوده.

يعتمد نهج قاعدة بيانات الرسم البياني على العلاقات المستمرة في طبقة التخزين بدلاً من ذلك، ما يؤدي إلى عمليات استرداد الرسوم البيانية عالية الكفاءة. تدعم واجهة برمجة التطبيقات ل Gremlin نموذج الرسم البياني للخاصية.

كائنات الرسم البياني الخاصية

الرسم البياني للخصائص هو بنية تتكون من رؤوسوحواف. يمكن أن يكون كلا الكائنين عدد إجبارية من أزواج قيمة المفتاح كخصائص.

  • الرؤوس/العقد: تشير الرؤوس إلى كيانات منفصلة، مثل شخص أو مكان أو حدث.

  • الحواف/العلاقات: تشير الحواف إلى العلاقات بين الذروات. على سبيل المثال، قد يعرف شخص آخر، أو يشارك في حدث، أو كان مؤخرا في موقع.

  • الخصائص: تعبر الخصائص عن المعلومات (أو بيانات التعريف) حول الرؤوس والحواف. يمكن أن يكون هناك أي عدد من الخصائص في رؤوس أو حواف، ويمكن استخدامها لوصف وتصفية الكائنات في استعلام. تتضمن خصائص المثال قمة رأس لها اسم وعمر، أو حافة، والتي يمكن أن يكون لها طابع زمني و/أو وزن.

  • تسمية - التسمية هي اسم أو معرف قمة رأس أو حافة. يمكن للتسميات تجميع رؤوس أو حواف متعددة بحيث تحتوي جميع القمم/ الحواف في مجموعة على تسمية معينة. على سبيل المثال، يمكن أن يحتوي الرسم البياني على رؤوس متعددة مع تسمية "شخص".

غالبا ما يتم تضمين قواعد بيانات الرسم البياني ضمن فئة قاعدة البيانات NoSQL أو غير العلائقية، نظرا لعدم وجود تبعية على مخطط أو نموذج بيانات مقيد. هذا النقص في المخطط يسمح لنمذجة وتخزين الهياكل المتصلة بشكل طبيعي وفعال.

مثال على قاعدة بيانات الرسم البياني

دعونا نستخدم نموذج الرسم البياني لفهم كيف يمكن التعبير عن الاستفسارات في Gremlin. يظهر الشكل التالي تطبيق عمل يقوم بإدارة البيانات حول المستخدمين والاهتمامات والأجهزة في شكل رسم بياني.

رسم بياني نموذجي للخاصية يعرض الأشخاص والأجهزة والاهتمامات.

يحتوي هذا الرسم البياني على أنواع الذروة التالية. تسمى هذه الأنواع أيضا التسميات في Gremlin:

  • الأشخاص: يحتوي الرسم البياني على ثلاثة أشخاص؛ (روبن) و (توماس) و (بين)

  • الاهتمامات: تشمل اهتماماتهم، في هذا المثال، لعبة كرة القدم.

  • الأجهزة: الأجهزة التي يستخدمها الأشخاص.

  • أنظمة التشغيل: أنظمة التشغيل التي تعمل عليها الأجهزة.

  • المكان: المكان الذي يتم فيه الوصول إلى الأجهزة.

نمثل العلاقات بين هذه الكيانات عبر أنواع الحواف التالية:

  • يعرف: يمثل الإلمام. على سبيل المثال، "توماس يعرف روبن".

  • مهتم: تمثيل مصالح الناس في الرسم البياني لدينا. على سبيل المثال، "بن مهتم بكرة القدم".

  • RunsOS: تمثيل نظام التشغيل الذي يقوم الجهاز بتشغيله. على سبيل المثال، "يقوم الكمبيوتر المحمول بتشغيل نظام التشغيل Windows".

  • الاستخدامات: تمثيل الجهاز الذي يستخدمه الشخص. على سبيل المثال، "روبن يستخدم هاتف موتورولا مع الرقم التسلسلي 77".

  • موجود: تمثيل الموقع الذي يتم الوصول إلى الأجهزة منه.

وحدة التحكم Gremlin هو محطة تفاعلية التي تقدمها Apache TinkerPop ويستخدم هذا المحطة للتفاعل مع بيانات الرسم البياني. لمزيد من المعلومات، راجع التشغيل السريع لوحدة تحكم Gremlin. يمكنك أيضاً تنفيذ هذه العمليات باستخدام برامج تشغيل Gremlin في النظام الأساسي الذي تختاره (Java أو Node.js أو Python أو .NET). توضح الأمثلة التالية كيفية تشغيل الاستعلامات مقابل بيانات الرسم البياني هذه باستخدام وحدة تحكم Gremlin.

لنلق نظرة أولا على الإنشاء والقراءة والتحديث والحذف (CRUD). تدرج عبارة Gremlin التالية ذروة Thomas في الرسم البياني مع بعض الخصائص:

g.addV('person').
  property('id', 'thomas.1').
  property('firstName', 'Thomas').
  property('lastName', 'Andersen').
  property('age', 44)

تلميح

إذا كنت تتابع مع هذه الأمثلة، يمكنك استخدام أي من هذه الخصائص (age، ، firstName) lastNameكمفتاح قسم عند إنشاء الرسم البياني الخاص بك. الخاصية id غير معتمدة كمفتاح قسم في رسم بياني.

بعد ذلك، تدرج عبارة Gremlin التالية حافة معرفة بين Thomas و Robin.

g.V('thomas.1').
  addE('knows').
  to(g.V('robin.1'))

يقوم الاستعلام التالي بإرجاع رؤوس الأشخاص بترتيب تنازلي لأسماءهم الأولى:

g.V().
  hasLabel('person').
  order().
  by('firstName', decr)

حيث تألق الرسوم البيانية هو عندما كنت في حاجة للرد على أسئلة مثل "ما أنظمة التشغيل لا أصدقاء توماس استخدام؟". يمكنك تشغيل اجتياز Gremlin هذا للحصول على تلك المعلومات من الرسم البياني:

g.V('thomas.1').
  out('knows').
  out('uses').
  out('runsos').
  group().
  by('name').
  by(count())

الخطوات التالية