قواعد البيانات والحاويات والعناصر في Azure Cosmos DB
ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول
Azure Cosmos DB هو نظام أساسي مدار بالكامل كخدمة (PaaS). لبدء استخدام Azure Cosmos DB، أنشئ حساب Azure Cosmos DB في مجموعة موارد Azure في اشتراكك. ثم قم بإنشاء قواعد البيانات والحاويات داخل الحساب.
يحتوي حساب Azure Cosmos DB الخاص بك على اسم فريد لنظام أسماء المجالات (DNS). يمكنك إدارة اسم DNS باستخدام العديد من الأدوات، بما في ذلك:
- مدخل Azure
- قوالب Azure Resource Manager
- قوالب Bicep
- Azure PowerShell
- Azure CLI
- Azure Management SDKs
- Azure REST API
لنسخ البيانات والإنتاجية نسخًا متماثلًأ بشكل عام عبر مناطق Azure متعددة، يمكنك إضافة مناطق Azure إلى حسابك وإزالتها في أي وقت. يمكنك تكوين حسابك ليكون إما منطقة واحدة أو مناطق كتابة متعددة. لمزيد من المعلومات، راجع إدارة حساب Azure Cosmos DB باستخدام مدخل Microsoft Azure. يمكنك أيضا تكوين مستوى التناسق الافتراضي على حساب.
العناصر الموجودة في حساب Azure Cosmos
حاليا، يمكنك إنشاء 50 حساب Azure Cosmos DB كحد أقصى ضمن اشتراك Azure. يمكنك زيادة هذا الحد عن طريق تقديم طلب دعم.
يمكنك إدارة كمية غير محدودة تقريبا من البيانات ومعدل النقل المقدم باستخدام حساب Azure Cosmos DB واحد. لإدارة بياناتك ومعدل النقل المقدم، يمكنك إنشاء قاعدة بيانات واحدة أو أكثر داخل حسابك ثم إنشاء حاوية واحدة أو أكثر لتخزين بياناتك.
تظهر الصورة التالية التسلسل الهرمي للعناصر في حساب Azure Cosmos DB.
تظهر الصورة التالية التسلسل الهرمي للكيانات في حساب Azure Cosmos DB.
قواعد بيانات Azure Cosmos DB
في قاعدة بيانات Azure Cosmos DB، تتشابه قاعدة البيانات مع مساحة اسم. قاعدة البيانات هي ببساطة مجموعة من الحاويات. يوضح الجدول التالي كيفية تعيين قاعدة بيانات إلى كيانات مختلفة محددة واجهة برمجة التطبيقات:
كيان Azure Cosmos DB | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Apache Cassandra | واجهة برمجة التطبيقات لـ MongoDB | واجهة برمجة التطبيقات ل Apache Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|
قاعدة بيانات Azure Cosmos DB | قاعدة البيانات | مساحة المفتاح | قاعدة البيانات | قاعدة البيانات | غير قابل للتطبيق |
إشعار
باستخدام واجهة برمجة التطبيقات لحسابات الجداول، يتم إنشاء جداول في Azure Cosmos DB على مستوى الحساب للحفاظ على التوافق مع Azure Table Storage.
حاويات Azure Cosmos DB
حاوية Azure Cosmos DB هي المكان الذي يتم فيه تخزين البيانات. على عكس معظم قواعد البيانات الارتباطية، التي تتوسع مع أحجام أكبر من الأجهزة الظاهرية، يتوسع Azure Cosmos DB.
يتم تخزين البيانات على خادم واحد أو أكثر يسمى الأقسام. لزيادة الأقسام، يمكنك زيادة معدل النقل، أو تنمو تلقائيا مع زيادة التخزين. توفر هذه العلاقة مقدارا غير محدود تقريبا من معدل النقل والتخزين للحاوية.
عند إنشاء حاوية، تحتاج إلى توفير مفتاح قسم. مفتاح القسم هو خاصية تحددها من العناصر الخاصة بك لمساعدة Azure Cosmos DB على توزيع البيانات بكفاءة عبر الأقسام. يستخدم Azure Cosmos DB قيمة هذه الخاصية لتوجيه البيانات إلى القسم المناسب ليتم كتابتها أو تحديثها أو حذفها. يمكنك أيضا استخدام مفتاح القسم في WHERE
عبارة في الاستعلامات لاسترداد البيانات بكفاءة.
تسمى آلية التخزين الأساسية للبيانات في Azure Cosmos DB قسما ماديا. يمكن أن تحتوي الأقسام الفعلية على معدل نقل يصل إلى 10000 وحدة طلب في الثانية، ويمكنها تخزين ما يصل إلى 50 غيغابايت من البيانات. يقوم Azure Cosmos DB بتجريد مفهوم التقسيم هذا بقسم منطقي، والذي يمكنه تخزين ما يصل إلى 20 جيجابايت من البيانات.
تسمح الأقسام المنطقية للخدمة بتوفير مرونة أكبر وإدارة أفضل للبيانات على الأقسام المادية الأساسية أثناء إضافة المزيد من الأقسام. لمعرفة المزيد حول مفاتيح التقسيم والتقسيم، راجع التقسيم والتحجيم الأفقي في Azure Cosmos DB.
عند إنشاء حاوية، يمكنك تكوين معدل النقل في أحد الأوضاع التالية:
معدل النقل المخصص: يتم حجز معدل النقل على الحاوية حصريا لتلك الحاوية. هناك نوعان من معدل النقل المخصص: قياسي وتحجيم تلقائي. لمعرفة المزيد، راجع توفير معدل النقل القياسي (اليدوي) على حاوية Azure Cosmos DB.
معدل النقل المشترك: يتم تحديد معدل النقل على مستوى قاعدة البيانات ثم مشاركته مع ما يصل إلى 25 حاوية داخل قاعدة البيانات. تستبعد مشاركة معدل النقل الحاويات التي تم تكوينها باستخدام معدل النقل المخصص الخاص بها.
يمكن أن يكون معدل النقل المشترك خيارا جيدا عندما يكون لجميع الحاويات في قاعدة البيانات طلبات واحتياجات تخزين مماثلة، أو عندما لا تحتاج إلى أداء يمكن التنبؤ به على البيانات. لمعرفة المزيد، راجع توفير معدل النقل القياسي (اليدوي) على قاعدة بيانات في Azure Cosmos DB.
إشعار
لا يمكنك التبديل بين معدل النقل المخصص والمشترك. لا يمكن تحديث الحاويات التي قمت بإنشائها في قاعدة بيانات معدل النقل المشتركة للحصول على معدل نقل مخصص. لتغيير حاوية من معدل نقل مشترك إلى معدل نقل مخصص، يجب إنشاء حاوية جديدة ونسخ البيانات إليها. يمكن لميزة نسخ الحاوية في Azure Cosmos DB تسهيل هذه العملية.
الحاويات غير محددة المخطط. يمكن أن تحتوي العناصر داخل الحاوية على مخططات عشوائية أو كيانات مختلفة، طالما أنها تشترك في نفس مفتاح القسم. على سبيل المثال، يمكن أن تحتوي الحاوية على عنصر أو مستند يحتوي على معلومات ملف تعريف العميل، إلى جانب عنصر أو مستندات واحدة أو أكثر تمثل جميع أوامر المبيعات الخاصة بالعميل. يمكنك وضع معلومات مماثلة لجميع العملاء في نفس الحاوية.
بشكل افتراضي، تتم فهرسة جميع البيانات التي تضيفها إلى حاوية تلقائيا دون الحاجة إلى فهرسة صريحة. يمكنك تخصيص الفهرسة لحاوية عن طريق تكوين نهج الفهرسة الخاص بها.
لتجنب التأثير على الأداء، يمكنك تعيين وقت للعيش (TTL) على العناصر المحددة في حاوية أو على الحاوية بأكملها لحذف هذه العناصر تلقائيا في الخلفية مع معدل نقل غير مستخدم. ومع ذلك، حتى إذا لم يتم حذف البيانات منتهية الصلاحية، فإنها لا تظهر في أي عمليات قراءة. لمعرفة المزيد، راجع تكوين الوقت للعيش في Azure Cosmos DB.
يوفر Azure Cosmos DB قدرة مضمنة لتغيير التقاط البيانات يسمى موجز التغيير. يمكنك استخدامه للاشتراك في جميع التغييرات على البيانات داخل الحاوية الخاصة بك.
يمكنك تسجيل الإجراءات المخزنة، والمشغلات، والدول المعرّفة من قبل المستخدم (UDFs)، وإجراءات الدمج للحاوية.
يجب أن يحتوي كل مستند داخل حاوية على id
خاصية فريدة ضمن قيمة خاصية مفتاح منطقي لتلك الحاوية. يمكنك استخدام هذه المجموعة من الخصائص لتوفير قيد فريد داخل حاوية، دون الحاجة إلى تعريف واحدة بشكل صريح.
يمكنك أيضا تحديد قيد مفتاح فريد على حاوية Azure Cosmos DB التي تستخدم خاصية واحدة أو أكثر. يضمن قيد المفتاح الفريد تفرد قيمة واحدة أو أكثر لكل مفتاح قسم منطقي. إذا قمت بإنشاء حاوية باستخدام نهج مفتاح فريد، فلا يمكنك إنشاء أي عناصر جديدة أو محدثة بقيم تكرر القيم التي يحددها قيد المفتاح الفريد.
الحاوية متخصصة في كيانات خاصة بواجهة برمجة التطبيقات، كما هو موضح في الجدول التالي:
كيان Azure Cosmos DB | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Cassandra | واجهة برمجة التطبيقات لـ MongoDB | واجهة برمجة التطبيقات ل Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|
حاوية Azure Cosmos DB | الحاوية | جدول | المجموعة | رسم بياني | جدول |
إشعار
تأكد من عدم إنشاء حاويتين بنفس الاسم ولكنهما مختلفتان. بعض أجزاء النظام الأساسي Azure غير حساسة لحالة الأحرف، ويمكن أن يؤدي هذا النوع من التسمية إلى ارتباك أو تضارب البيانات والإجراءات التشخيصية على الحاويات.
خصائص حاوية قاعدة بيانات Azure Cosmos
تحتوي حاوية Azure Cosmos DB على مجموعة من الخصائص المعرّفة من قبل النظام. حسب واجهة برمجة التطبيقات التي تستخدمها، قد لا يتم عرض بعض الخصائص مباشرةً. يصف الجدول التالي الخصائص المعرفة من قبل النظام:
خاصية معرّفة من قبل النظام | النظام الذي تم إنشاؤه أو المستخدم القابل للتكوين | الغرض | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Cassandra | واجهة برمجة التطبيقات لـ MongoDB | واجهة برمجة التطبيقات ل Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|---|---|
_rid |
النظام منشأ | المعرف الفريد للحاوية. | نعم | لا | لا | لا | لا |
_etag |
النظام منشأ | علامة الكيان المستخدمة للتحكم المتفائل في التزامن. | نعم | لا | لا | لا | لا |
_ts |
النظام منشأ | آخر طابع زمني محدث للحاوية. | نعم | لا | لا | لا | لا |
_self |
النظام منشأ | عنوان URI قابل للعنوان للحاوية. | نعم | لا | لا | لا | لا |
id |
المستخدم القابل للتكوين | اسم الحاوية. | نعم | نعم | نعم | نعم | نعم |
indexingPolicy |
المستخدم القابل للتكوين | نهج لبناء فهرس الحاوية. | نعم | لا | نعم | نعم | نعم |
TimeToLive |
المستخدم القابل للتكوين | الحذف التلقائي لعنصر من حاوية بعد فترة زمنية محددة. للحصول على التفاصيل، راجع مدة البقاء. | نعم | لا | لا | لا | نعم |
changeFeedPolicy |
المستخدم القابل للتكوين | نهج لقراءة التغييرات التي تم إجراؤها على العناصر في حاوية. للحصول على التفاصيل، راجع موجز التغيير. | نعم | لا | لا | لا | نعم |
uniqueKeyPolicy |
المستخدم القابل للتكوين | نهج لضمان تفرد قيمة واحدة أو أكثر في قسم منطقي. لمزيد من المعلومات، راجع قيود المفتاح الفريد. | نعم | لا | لا | لا | نعم |
AnalyticalTimeToLive |
المستخدم القابل للتكوين | الحذف التلقائي لعنصر من حاوية بعد فترة زمنية محددة، في سياق مخزن تحليلي. للحصول على التفاصيل، راجع المخزن التحليلي. | نعم | لا | نعم | لا | لا |
عناصر قاعدة بيانات Azure Cosmos
اعتمادا على واجهة برمجة التطبيقات التي تستخدمها، يمكن تمثيل كيانات البيانات الفردية بطرق مختلفة:
كيان Azure Cosmos DB | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Cassandra | واجهة برمجة التطبيقات لـ MongoDB | واجهة برمجة التطبيقات ل Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|
عنصر Azure Cosmos DB | العنصر | الصف | مستند | عقدة أو حافة | العنصر |
خصائص عنصر
يحتوي كل عنصر Azure Cosmos DB على الخصائص التالية المعرفة من قبل النظام. اعتماداً على واجهة برمجة التطبيقات التي تستخدمها، قد لا يتم عرض بعضها مباشرة.
خاصية معرّفة من قبل النظام | النظام الذي تم إنشاؤه أو تعريف المستخدم | الغرض | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Cassandra | واجهة برمجة تطبيقات DB ل MongoDB | واجهة برمجة التطبيقات ل Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|---|---|
_rid |
النظام منشأ | المعرف الفريد للعنصر | نعم | لا | لا | لا | لا |
_etag |
النظام منشأ | علامة الكيان المستخدمة للتحكم في التزامن الأفضل توقعاً | نعم | لا | لا | لا | لا |
_ts |
النظام منشأ | الطابع الزمني للتحديث الأخير للعنصر | نعم | لا | لا | لا | لا |
_self |
النظام منشأ | معرف موارد منتظم قابل للعنوان للعنصر | نعم | لا | لا | لا | لا |
id |
أي واحد | اسم فريد معرف من قبل المستخدم في قسم منطقي | نعم | نعم | نعم | نعم | نعم |
خصائص عشوائية معرّفة من قبل المستخدم | مُعرف من قِبل المستخدم | الخصائص المعرفة من قبل المستخدم في التمثيل الأصلي لواجهة برمجة التطبيقات (بما في ذلك JSON وBSON وCQL) | نعم | نعم | نعم | نعم | نعم |
إشعار
يتم فرض تفرد خاصية id
داخل كل قسم منطقي. يمكن أن يكون لمستندات متعددة نفس id
قيمة الخاصية مع قيم مفتاح قسم مختلفة.
العمليات على العناصر
تدعم عناصر Azure Cosmos DB العمليات التالية. يمكنك استخدام أي من واجهات برمجة تطبيقات Azure Cosmos DB لتنفيذ العمليات.
العملية | واجهة برمجة التطبيقات ل NoSQL | واجهة برمجة التطبيقات ل Cassandra | واجهة برمجة التطبيقات لـ MongoDB | واجهة برمجة التطبيقات ل Gremlin | واجهة برمجة التطبيقات للجدول |
---|---|---|---|---|---|
إدراج، استبدال، حذف، رفع، قراءة | نعم | نعم | نعم | نعم | نعم |