मैं बस कैसंद्रा पर शुरुआत कर रहा हूं और मैं अलग-अलग विभाजन और क्लस्टरिंग कुंजियों के साथ टेबल बनाने की कोशिश कर रहा था ताकि यह देखने के लिए कि उन्हें अलग-अलग पूछताछ कैसे की जा सकती है।कैसंड्रा - क्लस्टरिंग कुंजियों पर पूछताछ
मैंने फॉर्म की प्राथमिक कुंजी के साथ एक तालिका बनाई - (ए), बी, सी जहां विभाजन कुंजी है और बी, सी क्लस्टरिंग कुंजी हैं।
select * from tablename where b=val;
परिणामों में:
इस क्वेरी के रूप में यह डेटा को छानने शामिल हो सकता है और इस तरह अप्रत्याशित प्रदर्शन हो सकता है नहीं चलाया जा सकता
जब से क्वेरी मुझे लगता है कि निम्न क्वेरी देखा। आप प्रदर्शन अनिश्चितता के बावजूद इस क्वेरी निष्पादित करने के लिए चाहते हैं, फ़िल्टरिंग
और का उपयोग कर "फ़िल्टरिंग की अनुमति" मुझे हो जाता है जो मैं चाहता (भले ही मैं प्रदर्शन के लिए अपने बुरे सुना है) की अनुमति का उपयोग करें।
लेकिन जब मैं निम्न क्वेरी चलाएँ:
select * from tablename where c=val;
इसे कहते हैं:
प्राथमिक कुंजी स्तंभ "सी" प्रतिबंधित नहीं किया जा सकता (पूर्ववर्ती स्तंभ "बी" है या तो प्रतिबंधित एक से है या नहीं गैर-ईक्यू संबंध)
और बिल्कुल "आवंटित फ़िल्टर" विकल्प नहीं है।
मेरा प्रश्न है - सभी क्लस्टरिंग कुंजियों का इलाज क्यों नहीं किया जाता है? कॉलम बी जो विभाजन कुंजी 'ए' के समीप है, को 'फ़िल्टरिंग की अनुमति' का विकल्प दिया जाता है जो कॉलम 'सी' पर पूछताछ करते समय उस पर पूछताछ की अनुमति देता है (इस तालिका को जिस तरह से रखा गया है)।
आवंटित फ़िल्टर सभी एसएसटीबल्स के माध्यम से स्कैन करने के लिए कैसंड्रा प्राप्त करता है और विभाजन कुंजी गायब होने पर डेटा निकालता है, तो हम एक ही कॉलम सी क्यों नहीं कर सकते?
धन्यवाद कि निश्चित रूप से कैसंड्रा कैसे काम करता है यह समझने में मदद करता है! – user3376961