قيود المفتاح الفريدة في Azure Cosmos DB
ينطبق على: NoSQL
تضيف المفاتيح الفريدة طبقة من تكامل البيانات إلى حاوية Azure Cosmos DB. يمكنك إنشاء نهج مفتاح فريد عند إنشاء حاوية Azure Cosmos DB. باستخدام المفاتيح الفريدة، تتأكد من أن قيمة واحدة أو أكثر داخل القسم المنطقي فريدة. يمكنك أيضا ضمان التفرد لكل مفتاح قسم.
بعد إنشاء حاوية بسياسة مفاتيح فريدة، يتم منع إنشاء عنصر جديد أو تحديث لعنصر موجود ينتج عنه تكرار داخل قسم منطقي، كما هو محدد بواسطة قيد المفتاح الفريد. يضمن مفتاح القسم جنباً إلى جنب مع المفتاح الفريد تفرد عنصر داخل نطاق الحاوية.
على سبيل المثال، ضع في اعتبارك حاوية Azure Cosmos DB مع Email address
كقيد مفتاح فريد وكمفتاح CompanyID
القسم. عند تكوين عنوان البريد الإلكتروني للمستخدم باستخدام مفتاح فريد، يكون لكل عنصر عنوان بريد إلكتروني فريد داخل معين CompanyID
. لا يمكن إنشاء عنصرين باستخدام عناوين بريد إلكتروني مكررة وبنفس قيمة مفتاح القسم. في واجهة برمجة تطبيقات Azure Cosmos DB ل NoSQL، يتم تخزين العناصر كقيم JSON. قيم JSON هذه حساسة لحالة الأحرف. عندما تختار خاصية كمفتاح فريد، يمكنك إدراج قيم حساسة لحالة الأحرف لتلك الخاصية. على سبيل المثال، إذا كان لديك مفتاح فريد محدد في خاصية الاسم، فإن "Gaby" يختلف عن "gaby" ويمكنك إدراج كليهما في الحاوية.
لإنشاء عناصر بنفس عنوان البريد الإلكتروني، ولكن ليس نفس الاسم الأول واسم العائلة وعنوان البريد الإلكتروني، أضف المزيد من المسارات إلى نهج المفتاح الفريد. بدلاً من إنشاء مفتاح فريد بناءً على عنوان البريد الإلكتروني فقط، يمكنك أيضاً إنشاء مفتاح فريد بمزيج من الاسم الأول واسم العائلة وعنوان البريد الإلكتروني. يُعرف هذا المفتاح بالمفتاح الفريد المركب. في هذه الحالة، يسمح بكل تركيبة فريدة من القيم الثلاث داخل معين CompanyID
.
على سبيل المثال، يمكن أن تحتوي الحاوية على عناصر بالقيم التالية، حيث يكرم كل عنصر قيد المفتاح الفريد.
هوية الشركة | الاسم الأول | اسم العائلة | عنوان البريد الإلكتروني |
---|---|---|---|
Contoso | Gaby | Duperre | gaby@contoso.com |
Contoso | Gaby | Duperre | gaby@fabrikam.com |
Fabrikam | Gaby | Duperre | gaby@fabrikam.com |
Fabrikam | Ivan | Duperre | gaby@fabrikam.com |
Fabrkam | Duperre | gaby@fabraikam.com | |
Fabrkam | gaby@fabraikam.com |
إذا حاولت إدراج عنصر آخر مع المجموعات المدرجة في الجدول السابق، تتلقى خطأ. يشير الخطأ إلى أنه لم يتم استيفاء قيد المفتاح الفريد. تتلقى إما Resource with specified ID or name already exists
أو Resource with specified ID, name, or unique index already exists
كرسالة إرجاع.
حدد مفتاحاً فريداً
يمكنك تعريف مفاتيح فريدة فقط عند إنشاء حاوية Azure Cosmos DB. يتم تحديد نطاق مفتاح فريد إلى قسم منطقي. في المثال السابق، إذا قسمت الحاوية بناءً على التعليمة البرمجية الخاصة بالرمز البريدي، فسينتهي بك الأمر بعناصر مكررة في كل قسم منطقي. ضع في الاعتبار الخصائص التالية عند إنشاء مفاتيح فريدة:
لا يمكنك تحديث حاوية موجودة لاستخدام مفتاح فريد مختلف. بمعنى آخر، بعد إنشاء حاوية بسياسة مفاتيح فريدة، لا يمكن تغيير السياسة.
لتعيين مفتاح فريد لحاوية موجودة، قم بإنشاء حاوية جديدة بقيد المفتاح الفريد. استخدم أداة ترحيل البيانات المناسبة لنقل البيانات من الحاوية الحالية إلى الحاوية الجديدة. بالنسبة لحاويات SQL، استخدم مهام نسخ الحاوية لنقل البيانات. بالنسبة لحاويات MongoDB، استخدم mongoimport.exe أو mongorestore.exe لنقل البيانات.
يمكن أن يكون لسياسة المفاتيح الفريدة 16 قيمة مسار كحد أقصى. على سبيل المثال، يمكن أن تكون
/firstName
القيم و/lastName
و./address/zipCode
يمكن أن تحتوي كل سياسة مفتاح فريدة على 10 قيود أو مجموعات مفاتيح فريدة كحد أقصى. في المثال السابق، يمثل الاسم الأول واسم العائلة وعنوان البريد الإلكتروني معاً قيداً واحداً. يستخدم هذا القيد 3 من أصل 16 مساراً ممكناً.عندما تحتوي الحاوية على نهج مفتاح فريد، تكون رسوم وحدة الطلب (RU) لإنشاء عنصر وتحديثه وحذفه أعلى قليلا.
المفاتيح الفريدة المتفرقة غير مدعومة. إذا كانت بعض قيم المسار الفريدة مفقودة، فسيتم التعامل معها كقيم خالية، والتي تشارك في قيد التفرد. لهذا السبب، يمكن أن يكون هناك عنصر واحد فقط بقيمة فارغة لتلبية هذا القيد.
أسماء المفاتيح الفريدة حساسة لحالة الأحرف. على سبيل المثال، ضع في اعتبارك حاوية مع تعيين قيد المفتاح الفريد إلى
/address/zipcode
. إذا كانت بياناتك تحتوي على حقل يسمىZipCode
، فإن Azure Cosmos DB يدرج "خال" كمفتاح فريد لأنzipcode
ليس هو نفسهZipCode
. نظراً لحساسية حالة الأحرف هذه، لا يمكن إدراج جميع السجلات الأخرى التي تحتوي على الرمز البريدي نظراً لأن "القيمة الفارغة" المكررة تنتهك قيد المفتاح الفريد.
الخطوات التالية
- تعرف على المزيد حول الأقسام المنطقية
- استكشاف كيفية تعريف مفاتيح فريدة عند إنشاء حاوية
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vcores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs