مقدمة إلى Azure Cosmos DB Gremlin API
ينطبق على:
واجهة برمجة تطبيقات Gremlin
Azure Cosmos DB هي خدمة قاعدة بيانات متعددة النماذج موزعة عالمياً من Microsoft للتطبيقات شديدة الأهمية. هي عبارة عن قاعدة بيانات متعددة النماذج وتدعم نماذج بيانات عائلة المستندات والقيمة الرئيسة والرسم البياني ونماذج بيانات عائلة الأعمدة. يوفر Azure Cosmos DB خدمة قاعدة بيانات الرسم البياني عبر واجهة برمجة تطبيقات Gremlin على خدمة قاعدة بيانات مدارة بالكامل مصممة لأي مقياس.
توفر هذه المقالة نظرة عامة على واجهة برمجة تطبيقات Azure Cosmos DB Gremlin وتشرح كيفية استخدامها لتخزين الرسوم البيانية الضخمة مع مليارات القمم والحواف. يمكنك الاستعلام عن الرسوم البيانية مع زمن وصول ميلي ثانية وتطوير بنية الرسم البياني بسهولة. تم بناء Azure Cosmos DB في Gremlin API على أساس Apache TinkerPop، وهو إطار الحوسبة الرسم البياني. يستخدم API Gremlin في Azure Cosmos DB لغة الاستعلام Gremlin.
تجمع واجهة برمجة تطبيقات Gremlin من Azure Cosmos DB بين قوة خوارزميات قاعدة بيانات الرسم البياني والبنية التحتية المدارة القابلة للتطوير للغاية لتوفير حل فريد ومرن لمشاكل البيانات الأكثر شيوعاً المرتبطة بعدم المرونة والنهج العلائقية.
ملاحظة
Azure Cosmos DB محرك الرسم البياني يتبع عن كثب مواصفات Apache TinkerPop. ومع ذلك، هناك بعض الاختلافات في تفاصيل التنفيذ التي هي محددة لـ Azure Cosmos DB. بعض الميزات التي يدعمها اباتشي TinkerPop غير متوفرة في Azure كوزموس DB، لمعرفة المزيد عن الميزات غير معتمد، انظر التوافق مع مقالة Apache TinkerPop.
ميزات Azure كوزموس DB في غريملين API
Azure Cosmos DB عبارة عن قاعدة بيانات رسم بياني مُدارة بالكامل توفر توزيعاً عالمياً وتحجيماً مرناً للتخزين والإنتاجية، والفهرسة والاستعلام التلقائي، ومستويات تناسق قابلة للضبط ودعمًا لمعيار TinkerPop.
ملاحظة
يتوفر وضع السعة من دون خادم الآن على واجهة برمجة تطبيقات Gremlin الخاصة بـAzure Cosmos DB.
فيما يلي الميزات المميزة التي تقدمها Azure Cosmos DB Gremlin API:
الإنتاجية والتخزين القابلان للتوسعة بشكل مرن
الرسوم البيانية في العالم الحقيقي بحاجة إلى توسيع نطاق تتجاوز قدرة خادم واحد. يدعم Azure Cosmos DB قواعد بيانات الرسم البياني القابلة للتوسع أفقياً التي يمكن أن يكون لها حجم غير محدود تقريباً من حيث التخزين والإنتاجية المقدمة. مع نمو مقياس قاعدة بيانات الرسم البياني، سيتم توزيع البيانات تلقائياً باستخدام تقسيم الرسم البياني.
النسخ المتماثل متعدد المناطق
يمكن لـ Azure Cosmos DB نسخ بيانات الرسم البياني تلقائياً إلى أي منطقة Azure في جميع أنحاء العالم. النسخ المتماثل العمومية يبسط تطوير التطبيقات التي تتطلب الوصول العمومي إلى البيانات. بالإضافة إلى تقليل زمن الوصول للقراءة والكتابة إلى أدنى حد ممكن في أي مكان حول العالم، يوفر Azure Cosmos DB آلية تجاوز الفشل الإقليمية التلقائية التي يمكن أن تضمن استمرارية التطبيق الخاص بك في حالة نادرة من انقطاع الخدمة في منطقة ما.
استعلامات سريعة واجتيازات مع معيار الاستعلام الرسم البياني الأكثر اعتمادها على نطاق واسع
تخزين الرؤوس الحواف غير المتجانسة والاستعلام عنها من خلال بناء الجملة Gremlin مألوفة. Gremlin هي لغة أمر واستعلام الوظيفية التي توفر واجهة غنية لتنفيذ خوارزميات الرسم البياني المشترك.
يتيح Azure Cosmos DB الاستعلامات واجتيازات الوقت الحقيقي الغنية دون الحاجة إلى تحديد تلميحات المخطط أو الفهارس الثانوية أو طرق العرض. تعرف على المزيد في الرسوم البيانية للاستعلام باستخدام Gremlin.
قاعدة بيانات الرسم البياني المدارة بالكامل
يلغي Azure Cosmos DB الحاجة إلى إدارة قاعدة البيانات وموارد الجهاز. معظم منصات قاعدة بيانات الرسم البياني الموجودة ملزمة بالقيود المفروضة على بنيتها التحتية وغالباً ما تتطلب درجة عالية من الصيانة لضمان تشغيلها.
كخدمة مدارة بالكامل ، يزيل Cosmos DB الحاجة إلى إدارة الأجهزة الافتراضية، أو تحديث برنامج وقت التشغيل، أو إدارة القطع أو النسخ المتماثل، أو التعامل مع ترقيات معقدة على مستوى البيانات. يتم تلقائياً دعم كل رسم بياني وحمايته من الإخفاقات الإقليمية. يسمح هذا للمطورين بالتركيز على تقديم قيمة التطبيق بدلاً من تشغيل وإدارة قواعد بيانات الرسم البياني الخاصة بهم.
الفهرسة التلقائية
بشكل افتراضي، يقوم Azure Cosmos DB تلقائياً بفهرسة جميع الخصائص داخل العقد (التي تسمى أيضاً ك رؤوس) وحواف في الرسم البياني ولا يتوقع أو يتطلب أي مخطط أو إنشاء مؤشرات ثانوية. تعرف على المزيد حول الفهرسة في Azure Cosmos DB.
التوافق مع Apache TinkerPop
يدعم Azure Cosmos DBمعيار Apache TinkerPop مفتوحة المصدر. يحتوي معيار Tinkerpop على نظام بيئي وافر من التطبيقات والمكتبات التي يمكن دمجها بسهولة مع واجهة برمجة تطبيقات Gremlin من Azure Cosmos DB.
مستويات التناسق القابلة للضبط
يوفر Azure Cosmos DB خمسة مستويات تناسق محددة جيداً لتحقيق المفاضلة الصحيحة بين التناسق والأداء للتطبيق الخاص بك. بالنسبة للاستعلامات وعمليات القراءة، يقدم Azure Cosmos DB خمسة مستويات تناسق مميزة: قوية، ومحدودة، وجلسة، وبادئة متسقة، وفي النهاية. تسمح لك مستويات التناسق الدقيقة والمحددة جيداً بإجراء مقايضات سليمة بين التناسق والتوافر والتكان. تعرف على المزيد في مستويات تناسق البيانات غير القادرة في Azure Cosmos DB.
السيناريوهات التي تستخدم واجهة برمجة Gremlin API
فيما يلي بعض السيناريوهات حيث يمكن أن يكون دعم الرسم البياني لـ Azure Cosmos DB مفيدا:
الشبكات الاجتماعية/ العميل 365
من خلال الجمع بين البيانات حول عملائك وتفاعلاتهم مع أشخاص آخرين، يمكنك تطوير تجارب مخصصة، والتنبؤ بسلوك العملاء، أو ربط الأشخاص بالآخرين ذوي الاهتمامات المماثلة. يمكن استخدام Azure Cosmos DB لإدارة الشبكات الاجتماعية وتتبع تفضيلات العملاء وبياناتهم.
محركات التوصية
يستخدم هذا السيناريو عادة في صناعة البيع بالتجزئة. من خلال دمج معلومات حول المنتجات والمستخدمين وتفاعلات المستخدم، مثل شراء عنصر أو استعراضه أو تقييمه، يمكنك إنشاء توصيات مخصصة. الكمون المنخفض، مقياس مرن، ودعم الرسم البياني الأصلي من Azure Cosmos DB مثالية لهذه السيناريوهات.
الجيومكانية
تحتاج العديد من التطبيقات في الاتصالات السلكية واللاسلكية والخدمات اللوجستية وتخطيط السفر إلى العثور على موقع اهتمام داخل منطقة ما أو تحديد أقصر/ أفضل طريق بين موقعين. Azure Cosmos DB هو مناسبة طبيعية لهذه المشكلات.
إنترنت الأشياء
مع الشبكة والاتصالات بين أجهزة IoT على غرار الرسم البياني، يمكنك بناء فهم أفضل لحالة الأجهزة والأصول. يمكنك أيضاً معرفة كيف يمكن أن تؤثر التغييرات في جزء واحد من الشبكة على جزء آخر.
مقدمة لقواعد بيانات الرسم البياني
البيانات كما تظهر في العالم الحقيقي متصلة بشكل طبيعي. تركز نمذجة البيانات التقليدية على تعريف الكيانات بشكل منفصل وحساب علاقاتها في وقت التشغيل. في حين أن هذا النموذج له مزاياه ، يمكن أن تكون البيانات المتصلة للغاية صعبة الإدارة في ظل قيوده.
يعتمد نهج قاعدة بيانات الرسم البياني على العلاقات المستمرة في طبقة التخزين بدلاً من ذلك، ما يؤدي إلى عمليات استرداد الرسوم البيانية عالية الكفاءة. يدعم واجهة برمجة تطبيقات Gremlin من Azure Cosmos DB نموذج الرسم البياني للخصائص.
كائنات الرسم البياني الخاصية
الرسم البياني للخصائص هو بنية تتكون من رؤوسوحواف. يمكن أن يكون كلا الكائنين عدد إجبارية من أزواج قيمة المفتاح كخصائص.
القمم/العقد - تشير القمم إلى كيانات منفصلة، مثل شخص أو مكان أو حدث.
الحواف / العلاقات - تدل الحواف على العلاقات بين القمم. على سبيل المثال، قد يعرف شخص ما شخصا آخر، ويشارك في حدث، وكان مؤخرا في موقع ما.
الخصائص - توضح خصائص معلومات عن القمم والحواف. يمكن أن يكون هناك أي عدد من الخصائص في رؤوس أو حواف، ويمكن استخدامها لوصف وتصفية الكائنات في استعلام. تتضمن خصائص المثال قمة رأس لها اسم وعمر، أو حافة، والتي يمكن أن يكون لها طابع زمني و/أو وزن.
تسمية - التسمية هي اسم أو معرف قمة رأس أو حافة. يمكن للتسميات تجميع رؤوس أو حواف متعددة بحيث تحتوي جميع القمم/ الحواف في مجموعة على تسمية معينة. على سبيل المثال، يمكن أن يكون الرسم البياني عدة رؤوس من نوع التسمية "شخص".
غالباً ما يتم تضمين قواعد البيانات Graph ضمن فئة قاعدة بيانات NoSQL أو غير العلائقية، حيث لا يوجد أي تبعية على مخطط أو نموذج بيانات مقيد. هذا النقص في المخطط يسمح لنمذجة وتخزين الهياكل المتصلة بشكل طبيعي وفعال.
قاعدة بيانات Graph حسب المثال
دعونا نستخدم نموذج الرسم البياني لفهم كيف يمكن التعبير عن الاستفسارات في Gremlin. يظهر الشكل التالي تطبيق عمل يقوم بإدارة البيانات حول المستخدمين والاهتمامات والأجهزة في شكل رسم بياني.
يحتوي هذا الرسم البياني على أنواع الرأس التالية (تسمى هذه أيضاً "label" في Gremlin):
- الناس: الرسم البياني لديه ثلاثة أشخاص، روبن، توماس، وبن
- المصالح: مصالحهم، في هذا المثال، لعبة كرة القدم
- الأجهزة: الأجهزة التي يستخدمها الأشخاص
- أنظمة التشغيل: أنظمة التشغيل التي تعمل عليها الأجهزة
- المكان: الأماكن التي يتم الوصول منها إلى الأجهزة
نمثل العلاقات بين هذه الكيانات عبر أنواع الحواف التالية:
- المعرفة: على سبيل المثال ، "توماس يعرف روبن"
- الاهتمام: لتمثيل مصالح الشعب في الرسم البياني لدينا، على سبيل المثال، "بن مهتم بكرة القدم"
- RunsOS: كمبيوتر محمول يعمل على نظام التشغيل Windows
- يستخدم: لتمثيل الجهاز الذي يستخدمه الشخص. على سبيل المثال، يستخدم روبن هاتف موتورولا مع الرقم التسلسلي 77
- موقع: لتمثيل الموقع الذي يتم الوصول إلى الأجهزة منه
وحدة التحكم Gremlin هو محطة تفاعلية التي تقدمها Apache TinkerPop ويستخدم هذا المحطة للتفاعل مع بيانات الرسم البياني. لمعرفة المزيد، راجع مستند التشغيل السريع حول كيفية استخدام وحدة تحكم Gremlin. يمكنك أيضاً تنفيذ هذه العمليات باستخدام برامج تشغيل Gremlin في النظام الأساسي الذي تختاره (Java أو Node.js أو Python أو .NET). توضح الأمثلة التالية كيفية تشغيل الاستعلامات مقابل بيانات الرسم البياني هذه باستخدام وحدة تحكم Gremlin.
أولاً دعونا ننظر إلى CRUD. تدرج عبارة Gremlin التالية قمة رأس "توماس" في الرسم البياني:
:> g.addV('person').property('id', 'thomas.1').property('firstName', 'Thomas').property('lastName', 'Andersen').property('age', 44)
بعد ذلك، إدراج عبارة Gremlin التالية ميزة "يعرف" بين توماس وروبن.
:> 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())
الخطوات التالية
للتعرف على المزيد حول دعم الرسم البياني في Azure Cosmos DBK، اطلع على:
- ابدأ مع الرسم البياني التعليمي لـAzure Cosmos DB.
- تعرف على كيفية الاستعلام عن الرسوم البيانية في Azure Cosmos DB باستخدام Gremlin.