البيانات غير الارتباطية وNoSQL

Azure Cosmos DB
Azure Blob Storage
Azure Data Lake

تعتبر قاعدة البيانات غير الارتباطية قاعدة بيانات لا تستخدم المخطط الجدولي للصفوف والأعمدة الموجودة في معظم أنظمة قواعد البيانات التقليدية. بدلاً من ذلك، تستخدم قواعد البيانات غير الارتباطية نموذج تخزين محسن للمتطلبات المحددة لنوع البيانات التي يتم تخزينها. على سبيل المثال، قد يتم تخزين البيانات كأزواج مفاتيح/قيم بسيطة، كمستندات JSON، أو كرسم بياني يتكون من حواف ورؤوس.

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

يشير مصطلح NoSQL إلى مخازن البيانات التي لا تستخدم SQL للاستعلامات. بدلاً من ذلك، تستخدم مخازن البيانات لغات برمجة وبنى أخرى للاستعلام عن البيانات. في الممارسة العملية، تعني "NoSQL" "قاعدة بيانات غير ارتباطية"، على الرغم من أن العديد من قواعد البيانات هذه تدعم الاستعلامات المتوافقة مع SQL. ومع ذلك، عادة ما تختلف استراتيجية تنفيذ الاستعلام الأساسية اختلافا كبيرا عن الطريقة التي ينفذ بها نظام إدارة قواعد البيانات الارتباطية التقليدية (RDBMS) نفس استعلام SQL.

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

مخازن بيانات المستند

يدير مخزن بيانات المستند مجموعة من حقول السلسلة المسماة وقيم بيانات العنصر في كيان يشار إليه كمستند. عادة ما تخزن مخازن البيانات هذه البيانات في شكل مستندات JSON. يمكن أن تكون كل قيمة حقل عنصرًا عدديًا، مثل رقم أو عنصر مركب، مثل قائمة أو مجموعة أصل-تابع. يمكن ترميز البيانات الموجودة في حقول المستند بطرق مختلفة، بما في ذلك XML أو YAML أو JSON أو JSON الثنائي (BSON) أو حتى تخزينها كنص عادي. يتم عرض الحقول الموجودة في المستندات لنظام إدارة التخزين، ما يتيح للتطبيق الاستعلام عن البيانات وتصفيتها باستخدام القيم الموجودة في هذه الحقول.

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

مثال على مخزن بيانات المستند

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

تدعم العديد من قواعد بيانات المستندات التحديثات الموضعية، ما يمكّن التطبيق من تعديل قيم الحقول المحددة في مستند دون إعادة كتابة المستند بأكمله. عادة ما تكون عمليات القراءة والكتابة عبر حقول متعددة في مستند واحد ذرية.

خدمة Azure ذات الصلة:

مخازن البيانات العمودية

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

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

يوضح الرسم التخطيطي التالي مثالاً مع مجموعتين من الأعمدة، Identity وContact Info. تحتوي بيانات كيان واحد على نفس مفتاح الصف في كل مجموعة أعمدة. تعتبر هذه البنية، حيث يمكن أن تختلف الصفوف الخاصة بأي عنصر معين في عائلة الأعمدة ديناميكيًا، ميزة مهمة لنهج عائلة الأعمدة، مما يجعل هذا الشكل من مخزن البيانات مناسبًا للغاية لتخزين البيانات بمخططات مختلفة.

مثال على بيانات عائلة الأعمدة

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

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

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

خدمة Azure ذات الصلة:

مخازن بيانات المفتاح/القيمة

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

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

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

مثال على البيانات في مخزن مفتاح/قيمة

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

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

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

الخدمات الخاصة بـ Azure ذات الصلة:

مخازن بيانات الرسم البياني

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

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

مثال على البيانات في مخزن بيانات الرسم البياني

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

خدمة Azure ذات الصلة:

مخازن بيانات السلاسل الزمنية

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

مثال على بيانات السلاسل الزمنية

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

الخدمات الخاصة بـ Azure ذات الصلة:

مخازن بيانات العنصر

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

مثال على بيانات الكائن

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

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

الخدمات الخاصة بـ Azure ذات الصلة:

مخازن بيانات فهرس خارجي

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

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

مثال على بيانات البحث

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

غالبًا ما تستخدم مخازن بيانات الفهرس الخارجي لدعم النص الكامل والبحث المستند إلى الويب. في هذه الحالات، يمكن أن يكون البحث دقيقًا أو غامضًا. يعثر البحث غير الواضح على المستندات التي تطابق مجموعة من المصطلحات ويحسب مدى تطابقها. تدعم بعض الفهارس الخارجية أيضًا التحليل اللغوي الذي يمكن أن يرجع التطابقات استنادًا إلى المرادفات، وتوسيعات النوع (على سبيل المثال، مطابقة "الكلاب" مع "الحيوانات الأليفة")، والمصدر (على سبيل المثال، البحث عن "تشغيل" يطابق أيضًا "تم تشغيله" و"قيد التشغيل").

خدمة Azure ذات الصلة:

المتطلبات النموذجية

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

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

يقارن ما يلي متطلبات كل من مخازن البيانات غير الارتباطية:

المتطلبات تاريخ المستند بيانات مجموعة الأعمدة ⁧⁩بيانات قيمة/مفتاح⁧⁩ بيانات رسم بياني
التسوية تم نشر تكراره تم نشر تكراره تم نشر تكراره تم تقليل تكراره
مخطط المخطط عند القراءة مجموعات الأعمدة المعرفة عند الكتابة، ومخطط العمود عند القراءة المخطط عند القراءة المخطط عند القراءة
التناسق (عبر العمليات المتزامنة) تناسق قابل للضبط، وضمانات على مستوى المستند الضمانات على مستوى عائلة العمود الضمانات على مستوى المفتاح الضمانات على مستوى الرسم البياني
الذرية (نطاق العملية) المجموعة جدول جدول رسم بياني
استراتيجية التأمين الأمثل (إلغاء تأمين) الأسوأ (تأمين الصف) متفائل (علامة الكيان (ETag))
نمط الوصول الوصول العشوائي التجميعات على البيانات الطويلة/واسعة النطاق الوصول العشوائي الوصول العشوائي
الفهرسة الفهارس الأساسية والثانوية الفهارس الأساسية والثانوية الفهرس الأساسي فقط الفهارس الأساسية والثانوية
شكل البيانات مستند جدولي مع عائلات الأعمدة التي تحتوي على أعمدة المفتاح والقيمة رسم بياني يحتوي على حواف ورؤوس
متفرق ‏‏نعم‬ نعم نعم لا
واسع النطاق (الكثير من الأعمدة/السمات) ‏‏نعم‬ نعم لا لا
حجم مرجع الإسناد صغير (كيلوبايت) إلى متوسط (ميجابايت منخفضة) متوسط (ميجابايت) إلى كبير (جيجابايت منخفضة) صغير (كيلوبايت) صغير (كيلوبايت)
الحد الأقصى الإجمالي للمقياس كبير جدًا (بيتابايت) كبير جدًا (بيتابايت) كبير جدًا (بيتابايت) كبير (تيرابايت)
المتطلبات البيانات الخاصة بالسلاسل الزمنية بيانات العنصر بيانات فهرس خارجي
التسوية تم تقليل تكراره تم نشر تكراره تم نشر تكراره
مخطط المخطط عند القراءة المخطط عند القراءة مخطط عند الكتابة
التناسق (عبر العمليات المتزامنة) ‏‫غير متوفر‬ غير متاح ‏‫غير متوفر‬
الذرية (نطاق العملية) ‏‫غير متوفر‬ ‏‏الكائن ‏‫غير متوفر‬
استراتيجية التأمين ‏‫غير متوفر‬ الأسوأ (أقفال كائن ثنائي كبير الحجم) ‏‫غير متوفر‬
نمط الوصول الوصول العشوائي والتجميع الوصول التسلسلي الوصول العشوائي
الفهرسة الفهارس الأساسية والثانوية الفهرس الأساسي فقط ‏‫غير متوفر‬
شكل البيانات Tabular كائن ثنائي كبير الحجم وبيانات تعريف مستند
متفرق لا ‏‫غير متاح لا
واسع النطاق (الكثير من الأعمدة/السمات) لا نعم ‏‏نعم‬
حجم مرجع الإسناد صغير (كيلوبايت) كبير (جيجابايت) إلى كبير جدًا (تيرابايت) صغير (كيلوبايت)
الحد الأقصى الإجمالي للمقياس كبير (تيرابايت منخفضة) كبير جدًا (بيتابايت) كبير (تيرابايت منخفضة)

المساهمون

تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.

الكاتب الرئيسي:

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