INDEX बनाएं और छोड़ें Cassandra
Cassandra इंडेक्स बनाएं
कमांड 'इंडेक्स बनाएँ' उपयोगकर्ता द्वारा निर्दिष्ट कॉलम पर एक इंडेक्स बनाता है। यदि उस कॉलम के लिए डेटा पहले से मौजूद है जिसे आप इंडेक्स करना चाहते हैं, Cassandra 'create index' कथन निष्पादन के दौरान डेटा पर इंडेक्स बनाता है।
- सूचकांक बनाने के बाद, Cassandra डेटा सम्मिलित होने पर नए डेटा को स्वचालित रूप से अनुक्रमित करता है।
- सूचकांक प्राथमिक कुंजी पर नहीं बनाया जा सकता क्योंकि प्राथमिक कुंजी पहले से ही अनुक्रमित है।
- संग्रह पर अनुक्रमणिकाएँ समर्थित नहीं हैं Cassandra.
- स्तंभ पर अनुक्रमणिका के बिना, Cassandra उस कॉलम को तब तक फ़िल्टर नहीं किया जा सकता जब तक कि वह प्राथमिक कुंजी न हो।
इसीलिए, कॉलम फ़िल्टर करने के लिए Cassandra, अनुक्रमणिका बनाने की जरूरत है.
वाक्य - विन्यास
Create index IndexName on KeyspaceName.TableName(ColumnName);
उदाहरण
यहाँ वह स्नैपशॉट है जहाँ इंडेक्स बनाए बिना “dept” कॉलम को फ़िल्टर करने का प्रयास किया गया था। जवाब में, त्रुटि वापस आ गई।
यहां स्नैपशॉट है जहां dept कॉलम पर इंडेक्स बनाया गया है।
Create index DeptIndex on University.Student(dept);
यहां स्नैपशॉट है जहां इसे सफलतापूर्वक 'dept' कॉलम फ़िल्टर किया जाएगा।
select * from University.Student where dept='CS';
Cassandra ड्रॉप इंडेक्स
कमांड 'ड्रॉप इंडेक्स' निर्दिष्ट इंडेक्स को हटा देता है। यदि इंडेक्स निर्माण के दौरान इंडेक्स नाम नहीं दिया गया था, तो इंडेक्स नाम TableName_ColumnName_idx है।
- यदि सूचकांक मौजूद नहीं है, तो यह त्रुटि लौटाएगा, जब तक कि IF EXISTS का उपयोग न किया जाए, जो no-op लौटाएगा।
- इंडेक्स निर्माण के दौरान, आपको इंडेक्स नाम के साथ कीस्पेस नाम निर्दिष्ट करना होगा अन्यथा इंडेक्स वर्तमान कीस्पेस से हटा दिया जाएगा।
वाक्य - विन्यास
Drop index IF EXISTS KeyspaceName.IndexName
उदाहरण
यहां निष्पादित कमांड 'ड्रॉप इंडेक्स' का स्नैपशॉट दिया गया है जो इंडेक्स DeptIndex को हटा देता है।
drop index IF EXISTS University.DeptIndex;
कमांड के सफल निष्पादन के बाद, DeptIndex को कीस्पेस से हटा दिया जाएगा। अब डेटा को कॉलम dept द्वारा फ़िल्टर नहीं किया जा सकता है।