सुपर कॉलम कई समस्याओं से पीड़ित हैं, जिनमें से कम से कम यह नहीं है कि कैसंड्रा के लिए पूछताछ के दौरान सुपर कॉलम के सभी सब-कॉलम को विलुप्त करना आवश्यक है (भले ही परिणाम केवल एक छोटा सा लौटाए सबसेट)। नतीजतन, प्रति सुपर कॉलम प्रति उप-कॉलम की संख्या के लिए व्यावहारिक सीमा है जिसे प्रदर्शन से पहले संग्रहीत किया जा सकता है।
सिद्धांत रूप में, इसे उप-कॉलम को सही तरीके से अनुक्रमणित करके कैसंद्रा के भीतर तय किया जा सकता है, लेकिन सर्वसम्मति यह है कि समग्र कॉलम बेहतर समाधान हैं, और वे अतिरिक्त जटिलता के बिना काम करते हैं।
समग्र स्तंभों का उपयोग करने का सबसे आसान तरीका है CQL 3 प्रदान करता है कि अमूर्तता का लाभ लेना है। निम्न स्कीमा पर विचार करें:
CREATE TABLE messages(
username text,
sent_at timestamp,
message text,
sender text,
PRIMARY KEY(username, sent_at)
);
प्रयोक्ता नाम यहाँ पंक्ति कुंजी है, लेकिन हम प्राथमिक कुंजी परिभाषा जो पंक्ति कुंजी और sent_at स्तंभ का एक समूह बनाता है का उपयोग किया है। यह महत्वपूर्ण है क्योंकि इसमें उस विशेषता को अनुक्रमणित करने का प्रभाव है।
alice: (2012-08-01 11:42:37,message): Hi yourself, (2012-08-01 11:42:37,sender): bob
bob: (2012-08-01 11:42:15,message): Hi, (2012-08-01 11:42:15,sender): alice, (2012-08-01 11:43:00,message): What are you doing later?, (2012-08-01 11:43:00,sender): alice (2012-08-01 11:47:14,message): Bob?, (2012-08-01 11:47:14,sender): alice
लेकिन CQL 3 का उपयोग, हम "पंक्ति" एक sent_at विधेय का उपयोग कर क्वेरी कर सकता है, और एक सारणीबद्ध वापस पाने:
INSERT INTO messages (username, sent_at, message, sender) VALUES ('bob', '2012-08-01 11:42:15', 'Hi', 'alice');
INSERT INTO messages (username, sent_at, message, sender) VALUES ('alice', '2012-08-01 11:42:37', 'Hi yourself', 'bob');
INSERT INTO messages (username, sent_at, message, sender) VALUES ('bob', '2012-08-01 11:43:00', 'What are you doing later?', 'alice');
INSERT INTO messages (username, sent_at, message, sender) VALUES ('bob', '2012-08-01 11:47:14', 'Bob?', 'alice');
दृश्यों कैसेंड्रा इस तरह के ऊपर सम्मिलित डेटा कुछ स्टोर करेगा पीछे
परिणाम सेट।
SELECT * FROM messages WHERE username = 'bob' AND sent_at > '2012-08-01';
username | sent_at | message | sender
----------+--------------------------+---------------------------+--------
bob | 2012-08-01 11:43:00+0000 | What are you doing later? | alice
bob | 2012-08-01 11:47:14+0000 | Bob? | alice
यह एक उत्कृष्ट सवाल है। मुझे लगता है कि इस eBay तकनीक ब्लॉग में एक अनुकूलित और कम तकनीक (कोई तकनीकी विवरण नहीं है) एक अनुकूलित वास्तुकला का अवलोकन है। http://www.ebaytechblog.com/2012/07/16/cassandra-data-modeling-best-practices-part-1/ हालांकि, यदि आप वास्तविक सामान में हैं, तो प्रत्येक चेंजलॉग और रोडमैप को बेहतर ढंग से पढ़ें ताकि आपको एक बेहतर महसूस करें कि समस्याएं कहां और क्या हैं और उन्हें कैसे हल किया जा रहा है। यह बहुत अधिक पढ़ रहा है और यह अच्छा होगा अगर इसे कहीं व्यवस्थित किया जा सके, लेकिन मुझे इंटरनेट पर भी ज्यादा नहीं मिल रहा है। –