اختيار واجهة برمجة تطبيقات في Azure Cosmos DB

ينطبق على: NoSQL MongoDB كاساندرا العفريت الجدول الانترنت

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

واجهات برمجة التطبيقات في Azure Cosmos DB

يقدم Azure Cosmos DB واجهات برمجة تطبيقات قاعدة بيانات متعددة، والتي تشمل NoSQL وMongoDB وPostgreSQL وCassandra وGremlin وTable. باستخدام واجهات برمجة التطبيقات هذه، يمكنك إنشاء نموذج لبيانات العالم الحقيقي باستخدام المستندات وقيمة المفتاح والرسم البياني ونماذج بيانات مجموعة الأعمدة. تسمح واجهات برمجة التطبيقات هذه للتطبيقات الخاصة بك بمعاملة Azure Cosmos DB كما لو كانت تقنيات قواعد بيانات أخرى مختلفة، بدون نفقات زائدة لنهج الإدارة والتحجيم. يساعدك Azure Cosmos DB على استخدام الأنظمة البيئية والأدوات والمهارات التي لديك بالفعل لنمذجة البيانات والاستعلام باستخدام واجهات برمجة التطبيقات المختلفة الخاصة بها.

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

الاعتبارات عند اختيار واجهة برمجة التطبيقات

واجهة برمجة التطبيقات ل NoSQL أصلية في Azure Cosmos DB.

تقوم واجهة برمجة التطبيقات ل MongoDB وPostgreSQL وCassandra وGremlin وTable بتنفيذ البروتوكول السلكي لمحركات قاعدة البيانات مفتوحة المصدر. واجهات برمجة التطبيقات هذه هي الأنسب إذا تحققت الشروط التالية:

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

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

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

رسم تخطيطي لشجرة القرار لاختيار واجهة برمجة تطبيقات في Azure Cosmos DB.

رسم تخطيطي لشجرة القرار لاختيار واجهة برمجة تطبيقات في Azure Cosmos DB. يوضح نصف الرسم التخطيطي عدد أحمال عمل قاعدة البيانات مفتوحة المصدر الموجودة التي يمكنها استخدام واجهات برمجة التطبيقات المقابلة ل Azure Cosmos DB. يوضح النصف الآخر من الرسم التخطيطي كيف يمكن للتطبيقات الجديدة إما استخدام واجهة برمجة التطبيقات ل NoSQL، أو استخدام مهاراتك الحالية مع واجهات برمجة التطبيقات لقواعد البيانات مفتوحة المصدر.

واجهة برمجة التطبيقات ل NoSQL

تخزن واجهة برمجة تطبيقات Azure Cosmos DB ل NoSQL البيانات بتنسيق المستند. إنه يوفر أفضل تجربة شاملة لأن لدينا تحكماً كاملاً في الواجهة والخدمة ومكتبات عملاء SDK. تتوفر أي ميزة جديدة يتم طرحها في Azure Cosmos DB أولا على واجهة برمجة التطبيقات لحسابات NoSQL. توفر حسابات NoSQL الدعم للاستعلام عن العناصر باستخدام بناء جملة لغة الاستعلامات المركبة (SQL)، وهي واحدة من لغات الاستعلام الأكثر شيوعا للاستعلام عن كائنات JSON. لمعرفة المزيد، راجع مقالة Azure Cosmos DB API for NoSQL التدريبية وبدء استخدام استعلامات SQL.

إذا كنت تقوم بالترحيل من قواعد بيانات أخرى مثل Oracle وDynamoDB وHBase وما إلى ذلك، وإذا كنت ترغب في استخدام التقنيات الحديثة لإنشاء تطبيقاتك، فإن واجهة برمجة التطبيقات ل NoSQL هي الخيار الموصى به. تدعم واجهة برمجة التطبيقات ل NoSQL التحليلات وتوفر عزل الأداء بين أحمال العمل التشغيلية والتحليلية.

واجهة برمجة التطبيقات لـ MongoDB

تخزن واجهة برمجة تطبيقات Azure Cosmos DB ل MongoDB البيانات في بنية مستند، عبر تنسيق BSON. إنه متوافق مع بروتوكول MongoDB السلكي؛ ومع ذلك، فإنه لا يستخدم أي تعليمات برمجية أصلية متعلقة ب MongoDB. تعد واجهة برمجة التطبيقات ل MongoDB خيارا رائعا إذا كنت ترغب في استخدام النظام البنائي ومهارات MongoDB الأوسع، دون المساومة على استخدام ميزات Azure Cosmos DB.

تتضمن الميزات التي يوفرها Azure Cosmos DB، والتي لا يتعين عليك اختراقها ما يلي:

  • تغير الحجم
  • التوافر العالي
  • النسخ الجغرافي المتماثل
  • مواقع كتابة متعددة
  • إدارة القطع التلقائية والشفافة
  • النسخ المتماثل الشفاف بين المخازن التشغيلية والتحليلية

يمكنك استخدام تطبيقات MongoDB الموجودة مع واجهة برمجة التطبيقات لـ MongoDB عن طريق تغيير سلسلة الاتصال فقط. يمكنك نقل أي بيانات موجودة باستخدام أدوات MongoDB الأصلية مثل mongodump & mongorestore أو استخدام أداة ترحيل قاعدة بيانات Azure. هناك أدوات مثل MongoDB shell وMongoDB Compass وRobo3T يمكنها تشغيل الاستعلامات والعمل مع البيانات كما تفعل مع MongoDB الأصلي. لمعرفة المزيد، راجع API للحصول على مقال MongoDB.

واجهة برمجة التطبيقات ل PostgreSQL

Azure Cosmos DB ل PostgreSQL هي خدمة مدارة لتشغيل PostgreSQL على أي نطاق، مع Citus مصدر مفتوح القوة العظمى للجداول الموزعة. يقوم بتخزين البيانات إما على عقدة واحدة، أو موزعة في تكوين متعدد العقد.

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

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

واجهة برمجة التطبيقات ل Apache Cassandra

تخزن واجهة برمجة تطبيقات Azure Cosmos DB ل Cassandra البيانات في مخطط موجه للعمود. تقدم Apache Cassandra نهجا عالي التوزيع والتحجيم أفقيا لتخزين كميات كبيرة من البيانات مع تقديم نهج مرن لمخطط موجه نحو العمود. تتوافق واجهة برمجة التطبيقات ل Cassandra في Azure Cosmos DB مع هذه الفلسفة للاقتراب من قواعد بيانات NoSQL الموزعة. واجهة برمجة التطبيقات هذه ل Cassandra هي بروتوكول سلكي متوافق مع Apache Cassandra الأصلي. يجب مراعاة واجهة برمجة التطبيقات ل Cassandra إذا كنت ترغب في الاستفادة من المرونة والطبيعة المدارة بالكامل ل Azure Cosmos DB ولا تزال تستخدم معظم ميزات Apache Cassandra الأصلية والأدوات والنظام البنائي. تعني هذه الطبيعة المدارة بالكامل على واجهة برمجة التطبيقات ل Cassandra أنك لا تحتاج إلى إدارة نظام التشغيل، وJava VM، وجامع البيانات المهملة، وأداء القراءة/الكتابة، والعقد، والمجموعة، وما إلى ذلك.

يمكنك استخدام برامج تشغيل عميل Apache Cassandra للاتصال بواجهة برمجة التطبيقات ل Cassandra. تمكنك واجهة برمجة التطبيقات ل Cassandra من التفاعل مع البيانات باستخدام لغة استعلام Cassandra (CQL)، وأدوات مثل CQL shell وبرامج تشغيل عميل Cassandra التي تعرفها بالفعل. تدعم واجهة برمجة التطبيقات ل Cassandra حاليا سيناريوهات OLTP فقط. باستخدام واجهة برمجة التطبيقات ل Cassandra، يمكنك أيضا استخدام الميزات الفريدة ل Azure Cosmos DB مثل موجز التغيير. لمعرفة المزيد، راجع مقالة واجهة برمجة التطبيقات ل Cassandra . لمزيد من المعلومات إذا كنت على دراية بالفعل ب Apache Cassandra، ولكنك حديث العهد ب Azure Cosmos DB، فشاهد كيفية التكيف مع واجهة برمجة التطبيقات ل Cassandra.

واجهة برمجة التطبيقات ل Apache Gremlin

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

استخدم واجهة برمجة التطبيقات ل Gremlin للسيناريوهات:

  • إشراك البيانات الديناميكية
  • إشراك البيانات مع العلاقات المعقدة
  • إشراك بيانات معقدة جدا بحيث لا يمكن تصميمها مع قواعد البيانات الارتباطية
  • إذا كنت ترغب في استخدام النظام البيئي Gremlin الحالي والمهارات

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

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

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

تخزن واجهة برمجة تطبيقات Azure Cosmos DB للجدول البيانات بتنسيق المفتاح/القيمة. إذا كنت تستخدم حاليا تخزين Azure Table، فقد ترى بعض القيود في زمن الانتقال، والتحجيم، ومعدل النقل، والتوزيع العمومي، وإدارة الفهرس، وانخفاض أداء الاستعلام. تتغلب واجهة برمجة التطبيقات للجدول على هذه القيود ويوصى بترحيل تطبيقك إذا كنت تريد استخدام مزايا Azure Cosmos DB. تدعم واجهة برمجة التطبيقات للجدول سيناريوهات OLTP فقط.

يمكن ترحيل التطبيقات المكتوبة لتخزين Azure Table إلى واجهة برمجة التطبيقات للجدول مع القليل من تغييرات التعليمات البرمجية والاستفادة من الإمكانات المتميزة. لمعرفة المزيد، راجع مقالة واجهة برمجة التطبيقات للجدول .

تخطيط السعة عند ترحيل البيانات

هل تحاول القيام بتخطيط السعة لترحيل إلى Azure Cosmos DB ل NoSQL أو MongoDB من مجموعة قاعدة بيانات موجودة؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.

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