جدول المحتوى
يختلف نموذج بيانات Cassandra بشكل كبير عما نراه عادةً في نظام RDBMS. يقدم هذا الفصل نظرة عامة على كيفية قيام Cassandra بتخزين بياناتها.
Cluster
يتم توزيع قاعدة بيانات Cassandra على عدة أجهزة تعمل معًا. تُعرف الحاوية الخارجية باسم Cluster. لمعالجة الفشل، تحتوي كل عقدة node على نسخة متماثلة، وفي حالة الفشل، تتولى النسخة المتماثلة المسؤولية. تقوم كاساندرا بترتيب العقد في كتلة، بتنسيق حلقة، وتخصيص البيانات لها.
Keyspace
Keyspace هي الحاوية الخارجية للبيانات في Cassandra. السمات الأساسية لـ Keyspace في Cassandra هي –
عامل النسخ Replication factor – هو عدد الأجهزة الموجودة في المجموعة التي ستتلقى نسخًا من نفس البيانات.
استراتيجية وضع النسخ المتماثلة Replica placement strategy – إنها ليست سوى استراتيجية وضع النسخ المتماثلة في الحلبة. لدينا إستراتيجيات مثل الإستراتيجية البسيطة (استراتيجية الرفوف)، واستراتيجية طوبولوجيا الشبكة القديمة (استراتيجية الرفوف)، واستراتيجية طوبولوجيا الشبكة (استراتيجية مركز البيانات المشتركة).
عائلات الأعمدة Column families – بجد أن Keyspace عبارة عن حاوية لقائمة مكونة من عائلة أعمدة واحدة أو أكثر. عائلة الأعمدة، بدورها، عبارة عن حاوية لمجموعة من الصفوف. يحتوي كل صف على أعمدة مرتبة. تمثل عائلات الأعمدة بنية بياناتك. تحتوي كل مساحة مفاتيح على مجموعة أعمدة واحدة على الأقل وغالبًا ما تكون متعددة.
بناء جملة إنشاء Keyspace كما يلي –
CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
يوضح الرسم التوضيحي التالي عرضًا تخطيطيًا لمساحة المفاتيح.
Column Family
Column family عبارة عن حاوية لمجموعة مرتبة من الصفوف. وكل صف بدوره عبارة عن مجموعة مرتبة من الأعمدة. يسرد الجدول التالي النقاط التي تميز عائلة الأعمدة عن جدول قواعد البيانات العلائقية.
Cassandra column Family | Relational Table |
في Cassandra، على الرغم من تعريف عائلات الأعمدة، إلا أن الأعمدة ليست كذلك. يمكنك إضافة أي عمود بحرية إلى أي عائلة أعمدة في أي وقت. | تم إصلاح المخطط في النموذج العلائقي. بمجرد تحديد أعمدة معينة للجدول، أثناء إدراج البيانات، يجب ملء جميع الأعمدة في كل صف بقيمة فارغة على الأقل. |
في Cassandra، يحتوي الجدول على أعمدة، أو يمكن تعريفه على أنه عائلة أعمدة فائقة. | تحدد الجداول العلائقية الأعمدة فقط ويقوم المستخدم بملء الجدول بالقيم. |
تتمتع عائلة عمود كاساندرا بالسمات التالية –
keys_cached – يمثل عدد المواقع التي سيتم الاحتفاظ بها في ذاكرة التخزين المؤقت لكل SSTable.
rows_cached – يمثل عدد الصفوف التي سيتم تخزين محتوياتها بالكامل في الذاكرة مؤقتًا.
preload_row_cache – يحدد ما إذا كنت تريد ملء ذاكرة التخزين المؤقت للصف مسبقًا.
ملاحظة – على عكس الجداول العلائقية حيث لم يتم إصلاح مخطط عائلة الأعمدة، لا تفرض Cassandra على الصفوف الفردية أن تحتوي على جميع الأعمدة.
يوضح الشكل التالي مثالاً لعائلة عمود كاساندرا.
Column
العمود هو بنية البيانات الأساسية لـ Cassandra مع ثلاث قيم، وهي اسم المفتاح أو العمود والقيمة والطابع الزمني. أدناه هو هيكل العمود.
SuperColumn
super column هو عمود خاص، وبالتالي فهو أيضًا زوج من القيمة الرئيسية. لكن super column يخزن خريطة للأعمدة الفرعية.
بشكل عام، يتم تخزين عائلات الأعمدة على القرص في ملفات فردية. لذلك، لتحسين الأداء، من المهم الاحتفاظ بالأعمدة التي من المحتمل أن تقوم بالاستعلام عنها معًا في نفس عائلة الأعمدة، ويمكن أن يكون العمود المميز مفيدًا هنا.
نموذج البيانات لـ Cassandra و RDBMS
يسرد الجدول التالي النقاط التي تميز نموذج بيانات Cassandra عن نموذج بيانات RDBMS.
Cassandra | RDBMS |
تتعامل كاساندرا مع البيانات غير المنظمة. | يتعامل RDBMS مع البيانات المنظمة. |
لدى كاساندرا مخطط مرن. | لديها مخطط ثابت. |
في كاساندرا، الجدول عبارة عن قائمة “أزواج القيمة الرئيسية المتداخلة”. (الصف × مفتاح العمود × قيمة العمود) | في RDBMS، الجدول عبارة عن مصفوفة من المصفوفات. (الصف × العمود) |
Keyspace هي الحاوية الخارجية التي تحتوي على البيانات المقابلة لأحد التطبيقات. | قاعدة البيانات هي الحاوية الخارجية التي تحتوي على البيانات المقابلة لأحد التطبيقات. |
الجداول أو عائلات الأعمدة هي كيان مساحة المفاتيح. | الجداول هي كيانات قاعدة البيانات. |
الصف هو وحدة النسخ المتماثل في كاساندرا. | الصف هو سجل فردي في RDBMS. |
العمود هو وحدة تخزين في كاساندرا. | يمثل العمود سمات العلاقة. |
يتم تمثيل العلاقات باستخدام المجموعات. | يدعم RDBMS مفاهيم المفاتيح الخارجية والانضمامات. |