Cassandra جدول CQL: مثال على الإنشاء والتعديل والحذف
⚡ ملخص ذكي
Cassandra تشمل عمليات الجدول الإنشاء والتعديل والحذفpingوحذف عائلات الأعمدة باستخدام لغة CQL. تشرح هذه الصفحة كل أمر، وأشكال المفاتيح الأساسية الثلاثة التي تحدد توزيع البيانات، والاختلافات بين حذف الصفوف وحذف الجدول.

بناء جملة Cassandra لغة الاستعلام (CQL) تشبه SQL لغة.
كيفية إنشاء جدول في Cassandra
عائلة العمود في Cassandra يشبه جدول RDBMS. يتم استخدام عائلة العمود لتخزين البيانات.
يتم استخدام الأمر "إنشاء جدول" لإنشاء عائلة الأعمدة فيه Cassandra.
بناء الجملة
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. المفتاح الأساسي: هناك نوعان من المفتاح الأساسي.
- مفتاح أساسي واحد: يتم تحديد المفتاح الأساسي الفردي من خلال بناء الجملة التالي.
بناء الجملة
PRIMARY KEY (ColumnName)
في المفتاح الأساسي الواحد، يوجد عمود واحد فقط. يُسمى هذا العمود أيضًا بمفتاح التقسيم. يتم تقسيم البيانات على أساس هذا العمود. يتم توزيع البيانات على العقد المختلفة على أساس مفتاح القسم.
2. المفتاح الأساسي المركب: يتم تحديد المفتاح الأساسي المركب من خلال بناء الجملة التالي.
بناء الجملة
PRIMARY KEY (ColumnName1, ColumnName2, ...)
في بناء الجملة أعلاه، ColumnName1 هو مفتاح التقسيم وColumnName2 هو مفتاح التقسيم Clusterسيتم تقسيم البيانات على أساس ColumnName1 وسيتم تجميع البيانات على أساس ColumnName2. Clustering هي العملية التي تقوم بفرز البيانات في القسم.
3. مفتاح التقسيم المركب: يتم تحديد مفتاح التقسيم المركب من خلال بناء الجملة التالي.
بناء الجملة
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
في الصيغة المذكورة أعلاه، يُمثل ColumnName1 و ColumnName2 مفتاح التقسيم المركب. سيتم تقسيم البيانات بناءً على كلا العمودين ColumnName1 و ColumnName2، وسيتم تجميعها بناءً على ColumnName3. في حال وجود كمية كبيرة من البيانات في قسم واحد، يتم استخدام مفتاح التقسيم المركب لإنشاء أقسام متعددة للبيانات.
- مع بند
يتم استخدام "مع جملة" لتحديد أي خاصية وقيمتها للجدول المحدد. على سبيل المثال، إذا كنت تريد الضغط Cassandra بيانات الجدول. يمكنك ضبط خاصية الضغط بتحديد قيمة خاصية خوارزمية الضغط في عبارة "With". كما تقوم العبارة نفسها بتعيين CLUSTERING ORDER BY لعكس اتجاه فرز عمود التجميع، و default_time_to_live لإنهاء صلاحية كل صف تلقائيًا.
مثال
هنا يتم تنفيذ الأمر "إنشاء جدول" الذي سيؤدي إلى إنشاء اسم الجدول "الطالب" في مساحة المفاتيح "الجامعة".
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
بعد تنفيذ الأمر "إنشاء جدول" بنجاح، سيتم إنشاء جدول "الطالب" في مساحة المفاتيح "الجامعة" بأعمدة رقم الطالب، والاسم، والقسم. رقم الطالب هو المفتاح الأساسي، وهو أيضًا مفتاح تقسيم، لذا يشغل كل طالب قسمًا منفصلاً بصف واحد.
Cassandra تغيير الجدول
يتم استخدام الأمر "تعديل الجدول" لإسقاط العمود وإضافة عمود جديد وتغيير اسم العمود وتغيير نوع العمود وتغيير خاصية الجدول.
بناء الجملة
فيما يلي بناء جملة الأمر "Alter Table".
ALTER TABLE KeyspaceName.TableName ADD ColumnName ColumnDataType; ALTER TABLE KeyspaceName.TableName DROP ColumnName; ALTER TABLE KeyspaceName.TableName RENAME ColumnName TO NewColumnName; ALTER TABLE KeyspaceName.TableName WITH PropertyName = PropertyValue;
يُصدر كل نموذج كبيان منفصل. ويُطبق قيدان في الوضع الحالي. Cassandra الإصدارات: لم يعد من الممكن تغيير نوع بيانات عمود موجود، ويعمل RENAME فقط على عمود التجميع الخاص بالمفتاح الأساسي.
مثال
فيما يلي لقطة للأمر "Alter Table" الذي سيضيف عمودًا جديدًا في جدول Student.
ALTER TABLE University.Student ADD Semester int;
بعد التنفيذ الناجح للأمر "تعديل الجدول"، سيتم إضافة عمود جديد "فصل دراسي" بنوع البيانات "int" إلى جدول الطالب.
فيما يلي لقطة الشاشة التي تعرض جدول الطلاب المحدث.
Cassandra إسقاط الجدول
يقوم الأمر "حذف الجدول" بحذف الجدول المحدد بما في ذلك جميع البيانات من مساحة المفاتيح. قبل الحذفping الجدول، Cassandra يأخذ لقطة من البيانات وليس المخطط كنسخة احتياطية.
بناء الجملة
DROP TABLE IF EXISTS KeyspaceName.TableName;
مثال
فيما يلي لقطة للأمر الذي تم تنفيذه "إسقاط الجدول" والذي سيؤدي إلى إسقاط جدول الطالب من مساحة المفاتيح "الجامعة".
DROP TABLE University.Student;
بعد التنفيذ الناجح لأمر "إسقاط الجدول"، سيتم إسقاط طالب الجدول من جامعة keyspace.
فيما يلي اللقطة التي توضح الخطأ الذي تم إرجاعه بواسطة ملف Cassandra عند محاولة الوصول إلى جدول الطالب غير الموجود.
Cassandra اقتطاع الجدول
يقوم الأمر "Truncate table" بإزالة جميع البيانات من الجدول المحدد. قبل اقتطاع البيانات، Cassandra يأخذ لقطة من البيانات كنسخة احتياطية.
بناء الجملة
TRUNCATE KeyspaceName.TableName;
مثال
هناك ثلاثة سجلات في جدول الطالب. هذه هي السجلات في الجدول.
فيما يلي لقطة للأمر الذي تم تنفيذه "Truncate table" والذي سيؤدي إلى إزالة كافة البيانات من جدول Student.
بعد التنفيذ الناجح للأمر "Truncate Table"، ستتم إزالة جميع البيانات من جدول الطالب.
فيما يلي لقطة لحالة قاعدة البيانات حيث لا توجد سجلات في جدول الطالب.
يتطلب الأمر Truncate إمكانية الوصول إلى جميع العقد، لأنه يُنفذ على مستوى المجموعة بأكملها دفعة واحدة. إذا تعطلت أي عقدة، يفشل الأمر، وهذا إجراء وقائي متعمد لمنع ترك بيانات غير مكتملة.
الحذف مقابل الاقتطاع مقابل الحذف الكامل Cassandra
ثلاثة أوامر تزيل البيانات، واختيار الأمر الخاطئ إما أن يدمر المخطط أو يترك مشكلة في الأداء.
| أمر | ما الذي يزيله | تم الاحتفاظ بالمخطط | التكلفة |
|---|---|---|---|
| انخفاض الجدول | جميع الصفوف وتعريف الجدول | لا | رخيصة. يتم أخذ لقطات من جداول SSTables ثم يتم التخلص منها. |
| اقتطاع | جميع الصفوف | نعم | رخيص، لكنه يتطلب تشغيل جميع العقد. لا يتم إنشاء أي علامات حذف. |
| حذف | الصفوف أو الأعمدة المحددة | نعم | مكلفة عند تطبيقها على نطاق واسع. كل عملية إزالة تكتب علامة حذف تشير إلى ضرورة التخطي حتى الضغط. |
القاعدة العملية هي تفضيل استخدام TRUNCATE على استخدام DELETE المجمع عند مسح جدول كامل، لأن آلاف علامات الحذف ستؤدي إلى إبطاء كل قراءة لاحقة لهذا القسم. يتم تناول إزالة الصفوف في إدراج وتحديث وحذف CQL البرنامج التعليمي.








