Cassandra CQL टेबल: निर्माण, परिवर्तन और ट्रंकेट का उदाहरण
⚡ स्मार्ट सारांश
Cassandra टेबल संचालन में बनाना, बदलना और हटाना शामिल है।pingऔर CQL का उपयोग करके कॉलम फ़ैमिली को ट्रंकेट करना। यह पृष्ठ प्रत्येक कमांड, डेटा वितरण निर्धारित करने वाले तीन प्राथमिक कुंजी रूपों और पंक्तियों को हटाने और एक तालिका को हटाने के बीच के अंतर को समझाता है।
का वाक्य विन्यास Cassandra क्वेरी भाषा (CQL) मिलती-जुलती है एसक्यूएल भाषा।
टेबल कैसे बनाएं? Cassandra
कॉलम परिवार में Cassandra RDBMS टेबल के समान है। कॉलम परिवार का उपयोग डेटा संग्रहीत करने के लिए किया जाता है।
कमांड 'Create Table' का उपयोग कॉलम परिवार बनाने के लिए किया जाता है 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 टेबल डेटा। आप "विद क्लॉज़" में कम्प्रेशन एल्गोरिदम प्रॉपर्टी वैल्यू निर्दिष्ट करके कम्प्रेशन प्रॉपर्टी सेट कर सकते हैं। यही क्लॉज़ क्लस्टरिंग कॉलम की सॉर्ट दिशा को उलटने के लिए CLUSTERING ORDER BY और प्रत्येक पंक्ति के स्वचालित रूप से समाप्त होने के लिए default_time_to_live भी सेट करता है।
उदाहरण
यहां 'Create table' कमांड का निष्पादन दिया गया है, जो कुंजीस्पेस 'University' में 'Student' नाम की टेबल बनाएगा।
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
'Create table' कमांड के सफलतापूर्वक निष्पादन के बाद, 'University' कीस्पेस में 'Student' नामक एक टेबल बनाई जाएगी जिसमें RollNo, Name और dept कॉलम होंगे। RollNo प्राथमिक कुंजी है। 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;
'Alter Table' कमांड के सफल निष्पादन के बाद, 'int' डेटा प्रकार वाला एक नया कॉलम 'Semester', Student टेबल में जोड़ दिया जाएगा।
यहां स्क्रीनशॉट है जो अद्यतन छात्र तालिका दिखाता है।
Cassandra ड्रॉप टेबल
'Drop table' कमांड निर्दिष्ट टेबल को कीस्पेस से सभी डेटा सहित हटा देता है। हटाने से पहलेping टेबल, Cassandra बैकअप के रूप में स्कीमा का नहीं बल्कि डेटा का स्नैपशॉट लेता है।
वाक्य - विन्यास
DROP TABLE IF EXISTS KeyspaceName.TableName;
उदाहरण
यहां निष्पादित कमांड 'ड्रॉप टेबल' का स्नैपशॉट दिया गया है जो कुंजीस्पेस 'यूनिवर्सिटी' से टेबल स्टूडेंट को हटा देगा।
DROP TABLE University.Student;
'ड्रॉप टेबल' कमांड के सफल निष्पादन के बाद, टेबल स्टूडेंट को यूनिवर्सिटी कुंजीस्पेस से हटा दिया जाएगा।
यहाँ स्नैपशॉट है जो दिखाता है कि त्रुटि क्या है Cassandra जब छात्र तालिका तक पहुंचने का प्रयास किया गया जो मौजूद नहीं थी।
Cassandra ट्रंकेट टेबल
कमांड 'ट्रंकेट टेबल' निर्दिष्ट टेबल से सारा डेटा हटा देता है। डेटा को ट्रंकेट करने से पहले, Cassandra बैकअप के रूप में डेटा का स्नैपशॉट लेता है।
वाक्य - विन्यास
TRUNCATE KeyspaceName.TableName;
उदाहरण
तालिका Student में तीन रिकॉर्ड हैं। ये तालिका में रिकॉर्ड हैं।
यहां निष्पादित कमांड 'ट्रंकेट टेबल' का स्नैपशॉट दिया गया है जो स्टूडेंट टेबल से सभी डेटा को हटा देगा।
'ट्रंकेट टेबल' कमांड के सफल निष्पादन के बाद, स्टूडेंट टेबल से सारा डेटा हटा दिया जाएगा।
यहां डेटाबेस स्थिति का स्नैपशॉट दिया गया है जहां विद्यार्थी तालिका में कोई रिकॉर्ड नहीं है।
ट्रंकेट कमांड के लिए सभी नोड्स का पहुंच योग्य होना आवश्यक है, क्योंकि यह पूरे क्लस्टर में एक साथ निष्पादित होता है। यदि कोई भी नोड डाउन हो जाता है, तो कमांड विफल हो जाता है, जो आंशिक डेटा छूटने से बचने के लिए जानबूझकर किया गया एक सुरक्षा उपाय है।
ड्रॉप बनाम ट्रंकेट बनाम डिलीट Cassandra
तीन कमांड डेटा को हटाते हैं, और गलत कमांड चुनने से या तो स्कीमा नष्ट हो जाता है या प्रदर्शन संबंधी समस्या उत्पन्न हो जाती है।
| आदेश | यह क्या हटाता है | स्कीमा रखा गया | लागत |
|---|---|---|---|
| ड्रॉप तालिका | सभी पंक्तियाँ और तालिका परिभाषा | नहीं | सस्ता। एसएसटेबल का स्नैपशॉट लिया जाता है और फिर उसे हटा दिया जाता है। |
| TRUNCATE | सभी पंक्तियाँ | हाँ | सस्ता है, लेकिन इसके लिए सभी नोड्स का चालू होना आवश्यक है। कोई मकबरा नहीं बनाया जाता है। |
| हटाएँ | चयनित पंक्तियाँ या स्तंभ | हाँ | बड़े पैमाने पर महंगा पड़ता है। हर बार हटाने पर एक खामी सी बन जाती है जिस पर लिखा होता है कि संघनन होने तक इसे छोड़ना होगा। |
किसी पूरी टेबल को खाली करते समय, बल्क डिलीट की बजाय ट्रंकेट का उपयोग करना एक व्यावहारिक नियम है, क्योंकि हजारों टैब उस विभाजन के प्रत्येक बाद के रीड को धीमा कर देंगे। पंक्ति-स्तर से हटाने के बारे में विस्तार से बताया गया है। CQL सम्मिलित करें, अद्यतन करें और हटाएं ट्यूटोरियल।









