تحجيم قاعدة بيانات NoSQL: نصائح وحيل
نشرت: 2022-11-18أصبحت قواعد بيانات NoSQL أكثر شيوعًا بشكل متزايد مع استمرار زيادة كمية البيانات التي تنتجها الشركات بشكل كبير. ومع ذلك ، تحجم العديد من المؤسسات عن التبديل إلى NoSQL لأنها تخشى أن يكون التوسع أكثر صعوبة. توسيع نطاق قاعدة بيانات NoSQL لا يختلف في الواقع عن توسيع قاعدة البيانات العلائقية. يتمثل الاختلاف الرئيسي في أن قواعد بيانات NoSQL مصممة لتكون قابلة للتوسع أفقيًا ، مما يعني أنه يمكن توسيع نطاقها عن طريق إضافة المزيد من العقد إلى النظام. هذا على النقيض من قواعد البيانات العلائقية ، والتي تكون قابلة للتطوير عموديًا ، مما يعني أنه لا يمكن توسيع نطاقها إلا عن طريق إضافة المزيد من الموارد إلى خادم واحد. هناك بعض الأشياء التي يجب وضعها في الاعتبار عند توسيع نطاق قاعدة بيانات NoSQL: 1. تأكد من توزيع بياناتك بالتساوي عبر جميع العقد. 2. أضف العقد تدريجياً لتجنب التحميل الزائد على النظام. 3. مراقبة أداء النظام عن كثب لتحديد أي اختناقات. 4. ضبط النظام بانتظام لضمان الأداء الأمثل. مع وضع هذه النصائح في الاعتبار ، لا ينبغي أن يكون توسيع نطاق قاعدة بيانات NoSQL أكثر صعوبة من توسيع نطاق قاعدة بيانات علائقية.
هناك العديد من الأساليب والمبادئ لتوسيع نطاق قاعدة البيانات ، اعتمادًا على نوعها. يعتمد تحجيم قواعد بيانات NoSQL و SQL على مفهوم تقسيم قاعدة البيانات. تتراكم فوائد القدرة على تخزين المزيد من البيانات عند توزيع الخوادم ، ولكننا نرث أيضًا المشكلات التي تأتي مع التوزيع. لا يتم دعم التجزئة التلقائية بواسطة قاعدة بيانات متجانسة ، وسيتعين على المهندسين كتابة منطق يدويًا للتعامل معها. لحل هذه المشكلة ، يمكن تثبيت وكيل ، مثل موازن التحميل ، أمام خدمة الاستعلام وقاعدة البيانات. يمكننا الحصول على استعلامات أسرع عندما يكون الجزء كبيرًا لأنه يمكن استخدام هذا الوكيل مرة أخرى. نظرًا لعدم وعي المستخدمين النهائيين بها ، فإن توسيع قواعد بيانات NoSQL غير مرئي إلى حد كبير.
كل جزء فريد من نوعه ، على عكس العمارة الرئيسية والعبد. إذا كان هناك أي استعلامات قراءة على الجزء الرئيسي ، فسيتم إرسال طلب إلى أجزاء العبيد. على مستوى مركز البيانات ، يمكننا نسخ قاعدة البيانات للتأكد من أن لدينا نسخة احتياطية. العقدة هي عقدة يمكنها التواصل وتبادل المعلومات مع العقد الأخرى. تتواصل كل عقدة مع عدد ثابت من العقد الأخرى عبر بروتوكول. نظرًا لأن جميع العقد متساوية في Cassandra ، يمكن للعقدة نسخ بياناتها من واحدة إلى أخرى دون الحاجة إلى القلق بشأن فقدان أي بيانات. بروتوكول القيل والقال هو أحد الطرق العديدة التي يمكن للعقد من خلالها مشاركة المعلومات.
يمكن أن تحتوي قاعدة البيانات الموزعة على عدد من المزايا بالإضافة إلى الحصول على خصائص إضافية. يعد تكرار البيانات مكونًا حاسمًا لضمان التوافر. عند استخدام النسخ المتماثل غير المتزامن لقاعدة البيانات الخاصة بك ، فلن يكون دائمًا متسقًا تمامًا في البداية ، ولكنه سيصبح أكثر مع مرور الوقت. تُستخدم قواعد بيانات SQL في التطبيقات المالية التي تتطلب دقة عالية للبيانات ، بينما تُستخدم قواعد بيانات NoSQL في التطبيقات الأقل أهمية مثل عدد المشاهدات.
يشير القياس الرأسي إلى عملية الزيادة التدريجية في عبء العمل الحاسوبي باستخدام ترقيات الأجهزة. يستلزم الانتقال إلى بنية موزعة وإضافة المزيد من أجهزة الكمبيوتر لحل مشكلتنا توسيع نطاق ، المعروف أيضًا باسم القياس الأفقي أو التوسع.
يمكن أن تدعم NoSQL القياس على أساس الأساليب الأفقية.
تعتبر MongoDB ، باعتبارها قاعدة بيانات NoSQL ، قابلة للتطوير لأن بياناتها لا يتم تخزينها في قواعد البيانات العلائقية. يتم تخزين البيانات كمستندات تشبه JSON يمكن الوصول إليها بسهولة من خلال طلب HTTP. يمكن إجراء توزيع المستند أفقيًا عبر عقد متعددة باستخدام هذه الطريقة.
كيف يمكنك توسيع نطاق قاعدة بيانات Nosql؟
من ناحية أخرى ، فإن قواعد بيانات NoSQL قابلة للتوسع أفقيًا ، مما يعني أنها تستطيع التعامل مع حركة المرور المتزايدة حسب الحاجة عن طريق إضافة المزيد من الخوادم إلى قاعدة البيانات. نظرًا لأنه يمكن تحويل قواعد بيانات NoSQL إلى هياكل أكبر وأكثر قوة ، فهي الخيار المنطقي لمجموعات البيانات الكبيرة وقواعد البيانات المتطورة باستمرار.
لكي يعمل هذا البرنامج التعليمي ، يجب أن يكون لديك بيئة عمل Node.js. في هذا المنشور ، سأقوم بفك ضغط ملفات DynamoDB في مجلد يسمى nodejs-dynamodb-sample. للحصول على نسخة مفصلة من هذا ، انتقل إلى صفحة GitHub الخاصة بي: https://www.gofundme.com/adamfowleruk/nodesurvey.html. يمكن لتطبيق العينة البحث عن معلومات الفيلم واستردادها من DynamoDB. سنقوم بتخزين البيانات في S3 على Amazon Web Services والوصول إلى DynamoDB عبر خدمة إدارة الهوية والوصول (IAM) من Amazon. لاستخدام خدمة Amazon In-App Analytics ، يجب عليك أولاً التسجيل وإنشاء حساب. قم بتدوين السنة وعنوان كل فيلم تريد نشره / فيلم.
يمكنك إدخال حقل ذي مفتاح للبحث عن أفلام من سنة معينة. بعد ذلك ، يمكنك تصميم التطبيق الخاص بك من الألف إلى الياء. يمكنك استخدام الجداول الخاصة بك حتى تنتهي منها ، ولكن يجب عليك حذفها بمجرد استخدامها. قم بزيارة وحدة تحكم DynamoDB على Amazon Web Services لمعرفة مقدار التخزين الذي استخدمته حتى الآن. تتيح لك علامة التبويب "الأفلام" عرض العناصر في جدول والمقاييس من تطبيقك ، بالإضافة إلى التكلفة الشهرية المقدرة في علامة التبويب "السعة". يمكن العثور على هذا الرمز على صفحة GitHub الخاصة بي: https://github.com/adamfowleruk/nodejs-dynamodb-sample.
MongoDB و Apache HBase و Cassandra هي ثلاث قواعد بيانات NoSQL مثالية للقياس أفقيًا. نظرًا لأن هياكل البيانات الخاصة بهم تكون أفقية بشكل أكبر ، فإن هذا يجعل إضافة المزيد من الخوادم إلى النظام أسهل ، مع التخلص من الحاجة إلى تغييرها أيضًا. علاوة على ذلك ، تعد قواعد البيانات هذه جديدة نسبيًا ، لذا فهي لا تزال قيد التطوير والتنقيح ، مما يعني أنه من المحتمل أن تتحسن بمرور الوقت.
لماذا من السهل توسيع نطاق Nosql؟
يسهل قياس Nosql لأنه مصمم ليكون قابلاً للتوسع أفقيًا. هذا يعني أنه يمكن توسيع نطاقه عن طريق إضافة المزيد من العقد إلى كتلة nosql . من السهل أيضًا توسيع نطاق Nosql لأنه يمكنه التعامل مع كميات كبيرة من البيانات وأعداد كبيرة من الاستعلامات في الثانية.
تتطلب التطبيقات مستوى عالٍ من قابلية التوسع لكي تعمل بشكل صحيح. يعد اختيار مخازن البيانات بواجهة مستخدم بسيطة وفعالة أمرًا مهمًا بنفس القدر. نقطة الخلاف الرئيسية هي ما إذا كان استخدام قاعدة بيانات "ASL" أو "Nosql" أفضل. قواعد بيانات NoSQL ، على عكس قواعد بيانات SQL ، شائعة لأنها سهلة البناء. يعتمد إيقاف جميع العمليات في قاعدة بيانات NoSQL بشكل أساسي على التجزئة. بشكل عام ، تتطلب كل عملية بيانات استخدام عامل مؤهل ، والذي يمكن استخدامه لتحديد عقدة بالبيانات. يتم تخزين البيانات على أجهزة متعددة وهذا يجعل من السهل جدًا إجراء عمليات البيانات حتى على أصغر الأجهزة.
نتيجة لذلك ، يمكن لمتاجر NoSQL التوسع لاستخدام آلة سلعة بسيطة نسبيًا. من المفترض أن يقوم المستخدمون بتخطيط البيانات وهيكلها بطريقة يمكن من خلالها جلبها دفعة واحدة من نفس العقدة لإجراء عملية محددة على قاعدة بيانات NoSQL. قد يعني إلغاء تطبيع البيانات بهذه الطريقة أيضًا أن العقدة جاهزة لتشغيل البيانات المطبوخة مسبقًا. يمكن الانضمام إلى NoSQL ، لكنها ليست قوية مثل صلات SQL. في عالم NoSQL العملي ، يعتقد مصممو التطبيقات أن اتساق البيانات سيحدث في النهاية. بالإضافة إلى توفير محولات لضبط التناسق عبر أنظمة NoSQL المختلفة ، توفر العديد من أنظمة NoSQL إجراءات لجعل الاتساق يبدو أكثر بروزًا. جزء مهم من أي قرار معماري هو تقييم حالة الاستخدام واختيار مخزن البيانات المناسب بناءً على هذه الحالة.
هل جميع قواعد بيانات Nosql قابلة للتطوير؟
نتيجة لعصور الإنترنت والحوسبة السحابية ، تم إنشاء قواعد بيانات NoSQL من أجل تسهيل تنفيذ بنية قابلة للتوسيع. يتم تحقيق قابلية التوسع من خلال الجمع بين تخزين البيانات والعمل المطلوب لمعالجتها على عدد كبير من أجهزة الكمبيوتر في بنية قابلة للتوسيع.
يجب أن يكون النظام قادرًا على التعامل مع قواعد البيانات الكبيرة جدًا بزمن انتقال منخفض جدًا مع التعامل أيضًا مع معدلات طلب عالية جدًا. عندما يتعلق الأمر بالمواقع ذات الحجم الكبير مثل eBay و Amazon و Twitter و Facebook ، فإن قابلية التوسع والتوافر العالي أمر بالغ الأهمية. يمكنك تشغيل مثيلات متعددة من الخادم في نفس الوقت باستخدام مقياس أفقي.
قاعدة بيانات MongoDB قابلة للتطوير أفقيًا وعموديًا من حيث الحجم وعدد المستخدمين. في MongoDB ، يمكنك قياس مجموعتك عموديًا أو أفقيًا عن طريق إضافة المزيد من الموارد وتقسيم بياناتك إلى أجزاء أصغر. نتيجة لذلك ، يعد MongoDB خيارًا شائعًا للتطبيقات واسعة النطاق ومخازن البيانات.
أفضل قواعد بيانات Nosql للقياس السريع وحجم البيانات الكبير
يمكن تحجيم قواعد بيانات NoSQL الأخرى لتلبية احتياجاتك الخاصة ، تمامًا كما يمكنك مع قواعد البيانات الأخرى. MongoDB ، على سبيل المثال ، هي لغة برمجة شائعة لأنها يمكن أن تتوسع بسرعة وتتعامل مع الكثير من البيانات. تُستخدم مخازن البيانات القائمة على Redis على نطاق واسع نظرًا لقدراتها وسرعتها في الذاكرة.
Nosql التحجيم الرأسي
قواعد بيانات Nosql قابلة للتطوير أفقيًا ، مما يعني أنها تستطيع التعامل مع حركة المرور المتزايدة عن طريق إضافة المزيد من العقد إلى النظام. هذا على عكس القياس الرأسي ، حيث يتم قياس النظام عن طريق إضافة المزيد من الموارد إلى عقدة واحدة.
يجب تحجيم كل قاعدة بيانات للتعامل مع حجم البيانات التي يتم إنشاؤها على أساس يومي. يُصنف مصطلح "التحجيم" إلى نوعين: الرأسي والأفقي. إذا كنت ترغب في تخزين المزيد من البيانات ، فعليك الاستثمار في خادم سعة 2 تيرابايت. أصبح خادم واحد مكلفًا بشكل متزايد وأكبر. ينتج عن عملية إضافة آلات إلى الخادم تحجيم أفقي. في هذه الحالة ، يتم تقسيم البيانات إلى مجموعة وتوزيعها عبر عدة خوادم أو أجزاء. نظرًا لأنه يتبع نموذج إزالة التطبيع ، فلا حاجة إلى نقطة واحدة للحقيقة. قد لا يؤدي هذا الأسلوب إلى تحديث المعلومات عندما يفشل السيد في إجراء الكتابة لأنه لا يقوم بتحديث المعلومات الموجودة على النسخ المتماثلة التابعة عندما يفشل الرئيسي في إجراء الكتابة.
ما هو القياس العمودي في SQL؟
الهدف من نهج القياس الرأسي هو زيادة قدرة جهاز واحد عن طريق زيادة موارد نفس الخادم المنطقي. يجب ترقية البرامج الحالية بموارد مثل الذاكرة والتخزين وقوة المعالجة من أجل أداء أفضل ما لديها.
كيفية تحجيم قاعدة البيانات أفقيا
ما هو القياس الأفقي وكيف يعمل؟ طريقة القياس الأفقي هي الطريقة التي تتطلب إضافة عقد إضافية من أجل استيعاب الحمل. هذا صعب للغاية مع قواعد البيانات العلائقية بسبب صعوبة توزيع البيانات ذات الصلة عبر العقد.
بالإضافة إلى إضافة المزيد من المثيلات لمشاركة الحمل ، فإن التحجيم أفقيًا (أو التصغير) يستلزم زيادة عدد مثيلات التطبيق أو الخدمة. في المقابل ، يتطلب القياس الرأسي إضافة المزيد من الموارد إلى المثيل ، مثل طاقة وحدة المعالجة المركزية والذاكرة. نظرًا للبروتوكولات الأساسية لـ HTTP ، ومعظم تطبيقات الويب ، وواجهات برمجة التطبيقات ، يمكن تحجيمها بسهولة بشكل مستقل عن بعضها البعض. تسمح لك بعض قواعد البيانات الآن بمزامنة ومشاركة بياناتك المكتوبة بين مثيلات متعددة. إذا تم توجيه حركة المرور بهذه الطريقة ، فسيتم تخصيص المزيد من الموارد للعناصر المطلوبة بشكل متكرر. على الرغم من استخدام الوكلاء العكسيين بشكل شائع للتعامل مع طلبات HTTP ، إلا أن قواعد البيانات لا تُستخدم دائمًا للقيام بذلك. يمكن إعادة توجيه معظم قواعد البيانات باستخدام برامج مثل nginx أو HAproxy ، وكلاهما يمكن إجراؤه على مستوى TCP.
إذا كان الوكيل الخاص بك يمكنه فهم كيفية عمل الاتصالات على مستوى البروتوكول ، فيمكنه تحديد ما إذا كانت النسخة المتماثلة المقروءة غير متزامنة أو غير قادرة على الاستجابة حتى إذا كان اتصال الشبكة نشطًا. يمكن ضبط المسار اعتمادًا على الحمل على النسخة المتماثلة بالإضافة إلى عدد الاتصالات. هناك بعض الخوادم الوكيلة التي يمكنها أداء مجموعة متنوعة من الوظائف. تم إجراء بعض التطورات في مجلدات ومطالبات ثابتة ، ولكن هناك أيضًا صعوبات متأصلة إذا لم تحدد قاعدة بيانات تقدر كل مثيل بالتساوي. نظرًا لأنه يتم نقل الحاويات حول المجموعة ، يجب أن تكون إعادة تشغيل إحدى النسخ المتماثلة المقروءة أمرًا جيدًا. إذا حدث هذا لقاعدة البيانات الرئيسية ، فمن غير المحتمل أن تشعر بالإثارة.