شرح هندسة كاساندرا: برنامج تعليمي شامل

نشرت: 2021-03-10

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

يشمل مستخدمو حل قاعدة البيانات القوية هذا أمثال IBM و Facebook و Reddit و eBay و Twitter.

ومع ذلك ، للتعرف على كاساندرا ، يجب أن تعرف عن هندستها المعمارية ويمكن أن تكون هندسة Apache Cassandra صعبة بعض الشيء لفهمها.

لهذا السبب قمنا بإنشاء الدليل التمهيدي التالي حول هندسة كاساندرا. ستجعلك على دراية بجميع المفاهيم الضرورية لعمارة كاساندرا:

جدول المحتويات

أساسيات هندسة كاساندرا

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

تسمح بنية Cassandra للنظام بالعمل بغض النظر عن نقطة فشل واحدة. هذا يعني أنه إذا كانت الكتلة تحتوي على مائة عقدة وفشلت إحداها ، فستظل الكتلة تعمل. من ناحية أخرى ، مع Hadoop ، فإن فشل namenode قد يفشل النظام بأكمله.

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

بصرف النظر عن الميزات التي ناقشناها أعلاه ، تدعم بنية Apache Cassandra أيضًا مراكز بيانات متعددة وتتيح نسخ البيانات عبر مراكز البيانات.

الطوبولوجيا والتصميم

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

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

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

نميمة

القيل والقال هو بروتوكول كاساندرا الذي تستخدمه عقده للاتصال من نظير إلى نظير. يُعلم العقدة عن حالات العقد الأخرى. كل ثانية ، تؤدي عقدة واحدة ثرثرة مع ما يصل إلى ثلاث عقد أخرى وكل رسالة ثرثرة تتبع تنسيقات وأرقام إصدار محددة للحفاظ على كفاءة الاتصال.

بذور

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

هيكل قاعدة البيانات

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

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

التقسيم في كاساندرا

في Cassandra ، يقوم المُقسم بتحويل مفاتيح التقسيم إلى رموز مميزة. هناك العديد من خيارات التقسيم الموجودة في Cassandra حيث يكون Murmur3Partitioner هو الخيار الافتراضي. يتم تعيين قيمة عدد صحيح لكل رمز مميز بين -2 ^ 63 إلى + 2 ^ 63-1 ، واسم هذا النطاق هو نطاق الرمز المميز.

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

يمكنك فهم نظام الملكية من خلال هذا المفهوم: إذا كان للمجموعة عقدة واحدة فقط ، فستمتلك هذه العقدة نطاق الرمز المميز الكامل. مع إضافة المزيد من العقد ، سيتم تقسيم ملكية نطاق الرمز المميز وفقًا لذلك.

العقد الافتراضية

يبسط Cassandra حساب الرمز المميز وتحديات التعيين باستخدام العقد الافتراضية ، والمعروفة أيضًا باسم Vnodes.

يقسم الكتلة إلى العديد من العقد الافتراضية لتعيين الرموز وتحصل كل عقدة فعلية على كمية متساوية من Vnodes. العدد الافتراضي لعقد Vnodes الذي تملكه العقدة هو 256. يمكنك تعيينه باستخدام خاصية num_tokens. عند إضافة عقدة جديدة إلى مجموعة ، فإن خوارزمية تخصيص الرمز المميز ستخصص الرموز المميزة المطلوبة باستخدام Vnodes.

تكرار

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

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

تم تعيين استراتيجية النسخ على مستوى keyspace وهناك اثنان منهم: NetworkTopologyStrategy واستراتيجية بسيطة. الأول هو الرف ومركز البيانات على دراية بينما الأخير ليس كذلك.

نظرية CAP

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

في Cassandra ، يمكنك الاختيار بين التوافر والاتساق. هذا يعني أن البيانات يمكن أن تكون إما متسقة بدرجة كبيرة مع توافر أقل أو متوفرة بدرجة عالية مع تناسق منخفض.

يُطلق على مفهوم طلب عدد محدد من الإقرارات اسم التناسق القابل للضبط ويمكنك تطبيقه على مستوى الاستعلام الفردي.

عملية الكتابة

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

بعد ذلك ، تكتب العقد البيانات إلى جدول في الذاكرة يسمى جدول الذاكرة حيث تتم كتابة البيانات على "ثابت" في الذاكرة. بعد ذلك ، يتم تحديثه إلى الجدول الفعلي.

إذا كانت العقدة المسؤولة معطلة لسبب ما ، فسيتم كتابة البيانات إلى عقدة أخرى.

تعرف على المزيد حول هندسة كاساندرا

سيساعدك فهم بنية Apache Cassandra على فهم كيفية عمل هذا الحل. الآن ، أنت تعرف أيضًا سبب تميز كاساندرا في المنافسة ولماذا تحظى بشعبية كبيرة.

إذا كنت مهتمًا بمعرفة المزيد عن قواعد البيانات ، فيمكنك الاطلاع على الموارد التالية:

SQL لعلوم البيانات: لماذا SQL ، قائمة الفوائد والأوامر

20 أسئلة وأجوبة مقابلة SQL الأكثر شيوعًا [للمستجدين]

دورة مجانية عبر الإنترنت مع شهادة SQL [2021]

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

خاتمة

إذا كنت مهتمًا بمعرفة المزيد عن برنامج البيانات الضخمة ، فراجع دبلومة PG في تخصص تطوير البرمجيات في برنامج البيانات الضخمة المصمم للمهنيين العاملين ويوفر أكثر من 7 دراسات حالة ومشاريع ، ويغطي 14 لغة وأدوات برمجة ، وأيدٍ عملية- في ورش العمل ، أكثر من 400 ساعة من التعلم الصارم والمساعدة في التوظيف مع الشركات الكبرى.

تحقق من دورات هندسة البرمجيات الأخرى لدينا في upGrad.

مع مناهج متطورة في البيانات الضخمة

منهج حافة القطع في البيانات الكبيرة من IIIT-B
برنامج الشهادة المتقدم في البيانات الضخمة من معهد IIIT بنغالور